【问题标题】:How to create a class (not a classifier) with a variable in IBM Watson Visual Recognition with Python?如何在 IBM Watson Visual Recognition with Python 中使用变量创建类(不是分类器)?
【发布时间】:2019-04-17 09:59:05
【问题描述】:

我正在尝试使用 API 创建一个新类,如 API 文档 https://cloud.ibm.com/apidocs/visual-recognition?code=python#update-a-classifier 中所示

Watson 用作类名的部分是“_positive_examples”的前缀。我需要使用变量的内容作为前缀,但它是一个关键字,我不能在那里添加任何变量(代码中的variableNotWorking)。

我尝试将格式设置为字符串,并尝试在 Python 中创建字典并将其引入其中,但我总是从 Python 或 Watson 获得错误。

    positive = nuevaClase + '_positive_examples'
    visual_recognition = credencials()
    with open(aprDirFitxer1, 'rb') as nuevaClase:
            updated_model = visual_recognition.update_classifier(
                classifier_id=classifId,
                positive_examples={positive : nuevaClase}).get_result()

我总是从 Watson 得到的错误是:

watson_developer_cloud.watson_service.WatsonApiException: Error: Cannot execute learning task.  Did not find any files to process in the POST request body. , Code: 400 

【问题讨论】:

  • 您使用的是哪个版本的 Watson Python SDK?最近发布了一个新版本,它使用不同的格式来指定分类器,因此了解您使用的版本很重要。
  • 版本为VisualRecognitionV3
  • 我将其更新为新格式,但始终得到相同的响应:watson_developer_cloud.watson_service.WatsonApiException: Error: Cannot execute learning task。在 POST 请求正文中未找到任何要处理的文件。 ,代码:400

标签: python python-3.x machine-learning ibm-watson visual-recognition


【解决方案1】:

我认为您的问题可能是您使用的是旧版本的 SDK,因为包名称在版本 3 中更改为“ibm-watson”。您需要使用

安装新的 SDK 包
pip install --upgrade ibm-watson

然后在您的 Python 代码中,从这个新包中导入:

from ibm_watson import VisualRecognitionV3

【讨论】:

  • 非常感谢!现在可以了。我如何知道或在哪里可以找到包名称是否更改或是否必须更新?我现在正在使用以下服务:Assistant、VisualRecognition、SpeechToText 和 TextToSpeech。
猜你喜欢
  • 2017-05-22
  • 2018-06-09
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-23
  • 2018-02-14
  • 1970-01-01
相关资源
最近更新 更多