मैं इसे प्रशिक्षित करने के बाद अपने कस्टम विज़न इटरेशन को प्रकाशित करने का प्रयास कर रहा हूं। लेकिन मुझे हमेशा "खराब अनुरोध" त्रुटि मिलती है।
मैं कोड की निम्न पंक्ति के साथ कोशिश कर रहा हूँ:
trainingApi.PublishIteration(ProjectID, iteration.Id, "Model", predictionResourceId);
इसे मेरा इटरेशन प्रकाशित करना चाहिए लेकिन मुझे बस एक त्रुटि मिलती है।
मैंने अपनी सभी आईडी की दोबारा जांच की लेकिन सब कुछ ठीक लग रहा है। क्या मॉडल का नाम कुछ विशिष्ट है (निचले अक्षर या कुछ और से शुरू करें)?
संपादित करें:
मैंने इसे अब पोस्टमैन में एक पोस्ट अनुरोध के साथ करने की कोशिश की, लेकिन अब मुझे यह प्राप्त होता है:
{
"code": "BadRequestInvalidPublishTarget",
"message": "Invalid prediction resource id"
}
लेकिन मैंने अपनी भविष्यवाणी संसाधन आईडी की दोबारा जांच की और यह सही है।
2 संपादित करें:
मैं पतला हूं मैंने गलत चीज को POST अनुरोध में भविष्यवाणी में डाल दिया है, मैंने अभी एक आईडी डाली है लेकिन मुझे लगता है कि यह माइक्रोसॉफ्ट द्वारा वर्णित/सदस्यता/... भाग होना चाहिए था। समस्या अब है:
{
"code": "BadRequestInvalidPublishTarget",
"message": "Invalid prediction id, please pass a prediction resource id."
}
मेरे लिए इसका मतलब है कि यह एक भविष्यवाणी संसाधन आईडी प्राप्त नहीं करता है, लेकिन मैं खो गया हूं इसलिए मैं विचारों से बाहर हूं कि समस्या क्या हो सकती है।
3 संपादित करें:
मैं अपना पोस्ट अनुरोध जोड़ना भूल गया:
https://xxx.cognitiveservices.azure.com/customvision/v3.0/training/projects/xxx/
iterations/xxx/publish?publishName=Model&predictionId=/subscriptions/xxx/
resourceGroups/CustomVision/providers/Microsoft.CognitiveServices/accounts/xxx
1 उत्तर
POST अनुरोध का उपयोग करके प्रकाशित करें
यदि आप यह सुनिश्चित करना चाहते हैं कि आपके पास सही सिंटैक्स है, तो आप उन्हीं चरणों को करके कस्टम विज़न पोर्टल का उपयोग करके जाँच कर सकते हैं।
उदाहरण के लिए जब मैं किसी प्रोजेक्ट की पुनरावृत्ति प्रकाशित करने का प्रयास करता हूं, तो मैं कंसोल में निम्न कॉल देख सकता हूं:
तो हाँ, "प्रकाशन आईडी" मान आपके द्वारा बताए गए जैसा दिख रहा है लेकिन आपको इस स्ट्रिंग के मान को एन्कोड करना होगा।
तो इसे बदलें:
predictionId=/subscriptions/xxx/
resourceGroups/CustomVision/providers/Microsoft.CognitiveServices/accounts/xxx
प्रति
predictionId=%2Fsubscriptions%2Fxxx%2F
resourceGroups%2FCustomVision%2Fproviders%2FMicrosoft.CognitiveServices%2Faccounts%2Fxxx
आपके कॉल में।
और भविष्यवाणी संसाधन का उपयोग करने के लिए सावधान रहें, प्रशिक्षण संसाधन का नहीं।
सी # का उपयोग करके प्रकाशित करें
यहां C# और Nuget पर होस्ट किए गए आधिकारिक कस्टम विज़न पैकेज का उपयोग करते हुए एक डेमो दिया गया है (यहां)
using System;
using Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training;
namespace so65714960
{
class Program
{
private static CustomVisionTrainingClient _trainingClient;
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
_trainingClient = new CustomVisionTrainingClient(new ApiKeyServiceClientCredentials("PUT_YOUR_TRAINING_KEY_HERE"));
// I'm specifying my endpoint here as I'm working on West Europe region
_trainingClient.Endpoint = "https://westeurope.api.cognitive.microsoft.com/";
var projectId = new Guid("4b...a5"); // Put your Project Id here
var iterationId = new Guid("9d...e"); // Put your iteration Id here
// Get iteration information
var targetIteration = _trainingClient.GetIteration(projectId, iterationId);
Console.WriteLine($"Iteration publish resource Id: '{targetIteration.OriginalPublishResourceId}'");
// If originalPublishResourceId is not null, it is already published
// For this demo purpose, we unpublish first to publish again after if it is already published
if (!string.IsNullOrWhiteSpace(targetIteration.OriginalPublishResourceId))
{
_trainingClient.UnpublishIteration(projectId, iterationId);
// Force status refresh
targetIteration = _trainingClient.GetIteration(projectId, iterationId);
Console.WriteLine($"Iteration publish resource Id after unpublish: '{targetIteration.OriginalPublishResourceId}'");
}
// Publish
var publicationResourceId = "/subscriptions/7c...e8/resourceGroups/Cognitive_Demo/providers/Microsoft.CognitiveServices/accounts/NRO-Cognitive-CustomVision-WestEurope-Prediction-S0";
var publication = _trainingClient.PublishIteration(projectId, iterationId, "Publication1", publicationResourceId);
// Force status refresh
targetIteration = _trainingClient.GetIteration(projectId, iterationId);
Console.WriteLine($"Iteration publish resource Id after publish: '{targetIteration.OriginalPublishResourceId}'");
}
}
}
मेरे उपयोग किए गए Azure संसाधन देखें:
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।