Visual Recognition error 400: Cannot execute learning task no classifier name given

為{幸葍}努か 提交于 2019-12-22 16:59:28

问题


I am using Visual Recognition curl command to add a classification to an image:

curl -u "user":"password"  \
-X POST \
-F "images_file=@image0.jpg" \
-F "classifier_ids=classifierlist.json" \
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classifiers?version=2015-12-02"

json file:

{
  "classifiers": [
    { 
        "name": "tomato",
        "classifier_id": "tomato_1",
        "created": "2016-03-23T17:43:11+00:00",
        "owner": "xyz"
    }
  ]
}        

(Also tried without the classifiers array. Got the same error) and getting an error: {"code":400,"error":"Cannot execute learning task : no classifier name given"}

Is something wrong with the json?


回答1:


To specify the classifiers you want to use you need to send a JSON object similar to:

{"classifier_ids": ["Black"]}

An example using Black as classifier id in CURL:

curl -u "user":"password"  \
-X POST \
-F "images_file=@image0.jpg" \
-F "classifier_ids={\"classifier_ids\":[\"Black\"]}"
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classify?version=2015-12-02"

If you want to list the classifier ids in a JSON file then:

curl -u "user":"password"  \
-X POST \
-F "images_file=@image0.jpg" \
-F "classifier_ids=@classifier_ids.json"
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classify?version=2015-12-02"

Where classifier_ids.json has:

{
 "classifier_ids": ["Black"]
}

You can test the Visual Recognition API in the API Explorer.
Learn more about the service in the documentation.




回答2:


The model schema you are referencing, and what is listed in the API reference, is the format of the response json. It is an example of how the API will return your results.

The format of the json that you use to specify classifiers should be a simple json object, as German suggests. In a file, it would be:

{
"classifier_ids": ["tomato_1"]
}

You also need to use < instead of @ for the service to read the contents of the json file correctly. (And you might need to quote the < character on a command line since it has special meaning (redirect input).) So your curl would be:

curl -u "user":"password"  \
-X POST \
-F "images_file=@image0.jpg" \
-F "classifier_ids=<classifier_ids.json"
"https://gateway.watsonplatform.net/visual-recognition-beta/api/v2/classify?version=2015-12-02"


来源:https://stackoverflow.com/questions/36189964/visual-recognition-error-400-cannot-execute-learning-task-no-classifier-name-gi

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!