认知服务自定义视觉 SDK NotFound 错误
Cognitive Services Custom Vision SDK NotFound Error
我遇到了一个奇怪的行为。在 Azure 上部署了自定义视觉服务。它包含一个没有已发布模型的项目。
使用 HTTP REST Api 并查询项目,它正确地 returns 如下所示的(一个)项目列表:
GET https://westeurope.api.cognitive.microsoft.com/customvision/v3.0/training/projects HTTP/1.1
Host: westeurope.api.cognitive.microsoft.com
Training-Key: {MY_TRAINING_APIKEY}
apim-request-id: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
Date: Thu, 02 May 2019 18:57:25 GMT
Content-Length: 605
Content-Type: application/json; charset=utf-8
[{
PROJECT_DATA
}]
但是,如果我尝试通过 C# SDK 使用该服务,使用:
Microsoft.Azure.CognitiveServices.Vision.CustomVision.Prediction
Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training
都是1.0版本,每次都得到:
Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training.Models.CustomVisionErrorException:
'Operation returned an invalid status code 'NotFound''
这是使用 SDK 的代码片段。
using (CustomVisionTrainingClient client = new CustomVisionTrainingClient())
{
client.ApiKey = "{MY_TRAINING_APIKEY}";
client.Endpoint = "https://westeurope.api.cognitive.microsoft.com/customvision/v3.0/Training/";
var projects = client.GetProjects();
}
有趣的事实:尝试在当前工作的 Custom Vision 项目(也有已部署的模型)上同时使用训练和预测客户端,我在每个 SDK 方法上都不断收到 NotFound 错误。
我错过了什么吗?
提前致谢。
法比奥.
对于 CognitiveServices Vision 客户端,您需要提供基本 URI 作为 Endpoint
属性,而不是整个 API 端点。客户端 SDK 本身将根据您调用的方法添加路径的其余部分(包括版本)。
因此,对于您的情况,您需要执行以下操作:
using (CustomVisionTrainingClient client = new CustomVisionTrainingClient())
{
client.ApiKey = "{MY_TRAINING_APIKEY}";
client.Endpoint = "https://westeurope.api.cognitive.microsoft.com";
var projects = client.GetProjects();
}
我遇到了一个奇怪的行为。在 Azure 上部署了自定义视觉服务。它包含一个没有已发布模型的项目。
使用 HTTP REST Api 并查询项目,它正确地 returns 如下所示的(一个)项目列表:
GET https://westeurope.api.cognitive.microsoft.com/customvision/v3.0/training/projects HTTP/1.1
Host: westeurope.api.cognitive.microsoft.com
Training-Key: {MY_TRAINING_APIKEY}
apim-request-id: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
Date: Thu, 02 May 2019 18:57:25 GMT
Content-Length: 605
Content-Type: application/json; charset=utf-8
[{
PROJECT_DATA
}]
但是,如果我尝试通过 C# SDK 使用该服务,使用:
Microsoft.Azure.CognitiveServices.Vision.CustomVision.Prediction
Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training
都是1.0版本,每次都得到:
Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training.Models.CustomVisionErrorException: 'Operation returned an invalid status code 'NotFound''
这是使用 SDK 的代码片段。
using (CustomVisionTrainingClient client = new CustomVisionTrainingClient())
{
client.ApiKey = "{MY_TRAINING_APIKEY}";
client.Endpoint = "https://westeurope.api.cognitive.microsoft.com/customvision/v3.0/Training/";
var projects = client.GetProjects();
}
有趣的事实:尝试在当前工作的 Custom Vision 项目(也有已部署的模型)上同时使用训练和预测客户端,我在每个 SDK 方法上都不断收到 NotFound 错误。
我错过了什么吗? 提前致谢。 法比奥.
对于 CognitiveServices Vision 客户端,您需要提供基本 URI 作为 Endpoint
属性,而不是整个 API 端点。客户端 SDK 本身将根据您调用的方法添加路径的其余部分(包括版本)。
因此,对于您的情况,您需要执行以下操作:
using (CustomVisionTrainingClient client = new CustomVisionTrainingClient())
{
client.ApiKey = "{MY_TRAINING_APIKEY}";
client.Endpoint = "https://westeurope.api.cognitive.microsoft.com";
var projects = client.GetProjects();
}