Watson Visual Recognition创建分类器413请求实体太大

时间:2016-06-13 10:07:36

标签: rest curl nginx ibm-watson

我正在尝试使用文档https://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/doc/visual-recognition/customizing.shtml#goodclassifying后面的其余API的v3创建一个Watson Visual Recognition Create Classifier,其中声明:

  

培训呼叫和数据存在大小限制:   该服务最多接受10,000个图像或每个.zip文件100 MB   该服务要求每个.zip文件至少有10个图像。   该服务每次接受培训最多可接受256 MB。

然而,使用48MB包含594张图像的“正面”zip文件(图像的最大尺寸为144Kb)和包含218张图像的16MB的“负面”zip文件(图像的最大尺寸为114Kb)但我保留得到错误:

<html>
<head><title>413 Request Entity Too Large</title></head>
<body bgcolor="white">
<center><h1>413 Request Entity Too Large</h1></center>
<hr><center>nginx</center>
</body>
</html>

回应:

curl -X POST -F "good_positive_examples=@positive.zip" 
-F "negative_examples=@negative.zip" 
-F "name=myclassifier" 
-H "X-Watson-Learning-Opt-Out=true" 
"https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classifiers?api_key=<mykey>&version=2016-05-20"

我一直在尝试通过删除拉链内的图片并重新尝试来减小文件大小,但我远低于规定的限制。

有人有任何想法吗?

由于

2 个答案:

答案 0 :(得分:1)

在为培训分类器提交作业时,此(413实体太大)错误是间歇性的。我编写了一个脚本来处理图像的目录结构作为训练类,包括训练(51%)和测试(49%)。由于API将有效负载大小限制为每个ZIP文件100MB,因此我将ZIP类文件zipsplit(1)分批。提交这些批次时,我收到此错误,但丢弃并重试;在2-3次尝试之后,API调用成功。

我猜你的入站连接管理器正在计算字节数,包括通过套接字重新传输而不报告实际的有效负载大小。

我建议将ZIP拆分为<95 MB的大小,以避免在将图像提交到培训API时出现这种复杂情况。

该代码位于github.com上的dcmartin下的家庭年龄项目;训练脚本位于bin / train_vr中,测试脚本位于bin / test_vr中。您的里程可能会有所不同。

答案 1 :(得分:0)

我刚尝试了2个zip文件(每个约45 MB)并且可以正常工作。 我认为这是nginx服务器中的临时问题。在进入实际服务之前,对视觉识别的请求转到nginx