沃森视觉识别:Curl命令“;url:(6)无法解析主机:POST;“找不到主机”;

沃森视觉识别:Curl命令“;url:(6)无法解析主机:POST;“找不到主机”;,curl,nginx,visual-recognition,Curl,Nginx,Visual Recognition,我想知道为什么我想要包含在分类器中的大多数类在我创建分类器时都没有生成 我使用以下代码来训练分类器(使用curl-k而不是curl-x),但并不是我想要创建的所有类都显示在输出/响应中: 输入: curl.exe -k POST -F "Hairline Cracking Severe_positive_examples=@HairLineCracking_Severe.zip" -F "Durability Cracking_positive_examples=@DCracking.zip"

我想知道为什么我想要包含在分类器中的大多数类在我创建分类器时都没有生成

我使用以下代码来训练分类器(使用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请求实体太大


(注意:我所有的.zip都小于3mb,因此这不是zip文件太大的问题)

谢谢您的提问。发布的代码有一些问题

从标题中,错误
“url:(6)无法解析主机:POST;找不到主机”
来自客户端上的curl。这意味着它试图将字符串
POST
解释为URL,但事实并非如此

您提到使用-k而不是-x。k选项告诉curl允许不安全的证书,我认为这里不需要。您应该删除-k和字符串
POST
。使用-F选项意味着POST

还有,字符串的那部分“? api_key={apikey}=2017-05-20“似乎缺少
=2017-05-20
部分之前的字符串“version”。我想那是个打字错误

现在,我们来看看为什么一些类没有出现,例如示例中的“缩放”。我看他们对你的命令没有明显的问题。但是,如果Scaling.zip文件中所需的正示例少于至少10个,则可能会发生这种情况。可能吗

关于重新培训和接收413错误代码-如果由于内部超时,您总共有超过100张培训图像,则可能发生这种情况。这是一个已知的问题-在7月5日的发行说明中描述

然而,好消息是,尽管您可能会收到此错误消息,但重新培训过程很可能会在后台继续并成功。您应遵循此工作流程-在第一个重新培训请求完成之前,无论是否成功,都不要为同一个分类器提交额外的重新培训请求:

因此,对于再培训,变通工作流程是:

  • 注意从GET/classifiers/{cid}重新训练的
    时间戳(如果有)的值。这是它最后一次成功地重新训练的时间
    
  • 启动一个重新培训请求。为单个分类器并行提交重新训练请求可能会导致未定义的结果。VR试图阻止这一点,但有一个竞赛条件,即哪一个是“第一”
  • 忽略此调用中的413错误或500错误
  • 每个训练图像(新的和以前的/原始图像)等待1秒
  • 开始轮询GET/classifiers/{cid}以获取最准确的状态
  • 检查重新训练的
    时间戳是否已更新。这表示成功,如果需要,您可以重复此过程以添加更多图像
    
  • 如果状态为
    ready
    ,但
    重新训练的时间戳与步骤1相同,则表示重新训练失败,分类器回滚到步骤1的状态。现在可能会在分类器描述中添加一个
    解释
    字段
  • 如果在每个训练映像等待和轮询10秒后,状态仍然是
    retaining
    ,并且
    retained
    时间戳未更新,则表示很可能发生故障。使用分类器进行/分类的结果应与再培训请求之前相同