认知服务自定义视觉SDK未找到错误

时间:2019-05-02 19:27:06

标签: microsoft-cognitive azure-cognitive-services microsoft-custom-vision

我遇到一个奇怪的行为。获得了在Azure上部署的自定义视觉服务。它包含一个没有发布模型的项目。

使用HTTP REST Api并查询项目,它会正确返回(一个)项目的列表,如下所示:

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

两个版本,每次我得到:

  

Microsoft.Azure.CognitiveServices.Vision.CustomVision.Training.Models.CustomVisionErrorException:   '操作返回了无效的状态码'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项目(也包括已部署的模型)上同时使用Training和Prediction客户端,我在每种SDK方法上都会遇到NotFound错误。

我想念什么吗? 提前致谢。 法比奥。

1 个答案:

答案 0 :(得分:1)

对于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();
}