Search code examples
ibm-cloudibm-watsonvisual-recognition

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


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

curl -u "user":"password"  \
-X POST \
-F "[email protected]" \
-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?


Solution

  • 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 "[email protected]" \
    -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 "[email protected]" \
    -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.