我想知道为什么当我创建一个分类器时,我想要包含在我的分类器中的大多数类都没有生成?
我使用以下代码来训练我的分类器(使用curl -k而不是curl -x),但并不是我想要创建的所有类都显示在输出/响应中:
输入:
curl.exe -k POST -F "Hairline Cracking
Severe_positive_examples=@HairLineCracking_Severe.zip" -F "Durability
Cracking_positive_examples=@DCracking.zip" -F
"Scaling_positive_example=@Scaling.zip" -F "Pop
Outs_positive_example=@PopOuts.zip" -F "Offset
Cracking_positive_example=@OffsetCracking.zip" -F "Map
Cracking_positive_example=@MapCracking.zip" -F "Hairline
Cracking_positive_example=@HairLineCracking.zip" -F
"negative_examples=@NotConcrete.zip" -F "name=concreteIssues"
"https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classifiers?
api_key={apikey}=2017-05-20"输出:
url: (6) Could not resolve host: GET; Host not found
"classifier_id": "concreteIssues_580100916",
"name": "concreteIssues",
"owner": "6217d8a0-8995-4b94-9e96-bfacd090bfcb",
"status": "training",
"created": "2017-01-11T09:17:09.558Z",
"classes": [
{"class": "Hairline Cracking Severe"},
{"class": "Durability Cracking"}
]然后,我尝试通过添加响应中没有显示的剩余类来更新分类器,但它的响应是413请求实体太大
(注意:我所有的.zips都小于3mb,所以这不是压缩文件太大的问题)
发布于 2017-01-12 12:39:02
谢谢你的问题。在发布的代码中有几个问题。
在你的标题中,错误“url: (6) Could not resolve host: POST; Host not found”来自于curl - on the client。这意味着它试图将字符串POST解释为URL,但事实并非如此。
您提到使用-k而不是-x。-k选项告诉curl允许不安全的证书,我认为您在这里不需要这样的证书。您应该删除-k和字符串POST。使用-F选项意味着POST。
此外,字符串的"https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classifiers?api_key={apikey}=2017-05-20“部分似乎缺少=2017-05-20部分之前的字符串"version”。我想这是一个打字错误。
现在,转到为什么有些类没有出现的问题,比如你的例子中的"Scaling“。在我看来,你的命令没有明显的问题。但是,如果Scaling.zip文件中至少有10个所需的正数示例,则可能会发生这种情况。这有可能吗?
关于重新训练和收到413错误代码-由于内部超时,如果您总共有大约100个训练图像,则可能会发生这种情况。这是一个已知的问题-在7月5日的发行说明中进行了描述。https://www.ibm.com/watson/developercloud/doc/visual-recognition/releasenotes.shtml
但是,好消息是,尽管您可能会收到此错误消息,但重新培训过程很可能会在后台继续并成功。您应该遵循此工作流程,并且在第一个分类器成功或失败完成之前,不要为同一分类器提交额外的再培训请求:
因此,对于再培训,解决方法工作流程是:
retrained时间戳(如果有的话)的值这是它最后一次成功重新训练的时间。retrained时间戳是否已更新。这表示成功,如果需要,您可以重复此过程以添加更多图像。ready,但retrained时间戳与步骤1中的相同,则表示重新训练失败,分类器回滚到步骤1中的状态。现在,分类器描述中可能添加了explanation字段。retraining,且retrained时间戳未更新,则表示很可能发生了故障。使用分类器进行/classify应该会得到与重新训练请求之前相同的结果。https://stackoverflow.com/questions/41588756
复制相似问题