对等方连接重置:套接字写入错误 IBM Watson 视觉识别



尝试上传zip文件时,会给出错误:

信息:<- HTTP失败:java.net.Socket异常:对等方重置连接:套接字写入错误 (错误截图)

在这里我发现了什么 来自 IBM Watson 文档

  1. 该服务最多接受 10,000 张图像或每张.zip 100 MB 文件
  2. 该服务要求每个.zip文件至少 10 张图像。
  3. 该服务每次训练调用最多接受 256 MB。
  4. 建议的最小图像大小为 32X32 像素。

因此,我已经处理了上述各个方面。

我已经为服务付费,并更改了 api 密钥。

拉链总数:约1000个。

每个压缩包含大约 15 张图像。

我认为问题可能是,如果我检查所有zip文件的总大小,那么它大约是1GB。那么这是拥有大量zip文件的问题吗? 相同的代码适用于较少数量的 zip 文件。

List<File> allZipPath = new ArrayList<File>();
// add zip paths
Builder classBuilder = new ClassifierOptions.Builder();
for(int i=0; i<allZipPath.size(); i++){
//Take the name and add as a name to the class
classBuilder.addClass(allZipPath.get(i).getName(), allZipPath.get(i));  
}
ClassifierOptions createCanaryOptions = classBuilder.classifierName(classifierName).build();
//   you can add negative zip by using ".negativeExamples(new File(myFilePath +"cats.zip")).build()" 
result = service.createClassifier(createCanaryOptions).execute();
//System.out.println(result);
System.out.println("Classifier created with Id: " + result.getId() +   "nn");

感谢您对视觉识别的兴趣。

编写文档时假设您在训练classifier内每class提交 1 个 zip 文件。

您是否将同一类中的示例拆分为不同的.zip文件? 这是可能的,但不是必需的,除非您的单个类的示例超过 100MB。

建议的训练模式是发出一个请求,该请求总计小于 256 MB,其中包含其中每个类的所有示例。 如果您有比这更多的训练数据,您可以提交额外的"再训练"请求,这些请求向现有类添加更多类和/或更多示例。再培训记录如下:https://www.ibm.com/watson/developercloud/doc/visual-recognition/tutorial-custom-classifier.html#to-add-new-classes-to-an-existing-classifier

该服务要求每个.zip文件至少 10 张图像。

建议的最小图像大小为 32X32 像素。

澄清一下,这些是最小值 - 在您训练classifier中,每个class必须至少有 10 个示例图像。 最好将class的所有训练图像放入单个.zip文件中,每个.zip文件的限制为 100MB。 如果每个类的示例数多,则可以使用重新训练函数添加更多示例。

此外,32x32 是最小大小。 理想情况下,您应该提交原始大小的图像,但如果您需要缩小它们以节省时间或带宽,您现在可以调整为 224x224,而不会损失训练质量。(具体尺寸可能会在未来发生变化)

我已经为服务付费,并更改了 api 密钥。

拉链总数:约1000个。

这是否意味着您的 POST/分类器请求包含大约 1000 个表单字段? 这可能是客户端代码和服务器之间连接中某个点问题的根源。

每个压缩包含大约 15 张图像。

虽然系统每个类至少有 10 张图像,但提供更多示例(如 100-200 张)通常会带来更好的结果。

我认为问题可能是,如果我检查所有zip文件的总大小,那么它大约是1GB。那么这是拥有大量zip文件的问题吗?相同的代码适用于较少数量的 zip 文件。

如您所指出的,如果总请求大小为 1GB,这将超过 256 MB 的限制:

该服务每次训练调用最多接受 256 MB。

这可能会导致您观察到的错误。

我的建议是训练少于 1000 个的类开始,每个类尽可能多地使用示例,以便在进入 1000 个类之前评估您的结果。 如果你已经这样做了,最好的策略(因为你说你总共有大约1GB的数据)是将其拆分为1个原始训练请求(总大小在256MB以下)和3-4个额外的请求,每个请求小于256MB。 重新训练的账单等于请求中提交的图像数量(与原始训练一样),因此成本与单个大型请求成功相同。 您可以预期每个训练请求每个图像需要 1-2 秒。

有关培训指南的其他信息,请访问:https://www.ibm.com/watson/developercloud/doc/visual-recognition/customizing.html#guidelines-for-good-training

最新更新