1

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

INFO: <-- HTTP FAILED: java.net.SocketException: Connection reset by peer: socket write error (Error Screenshot)

这是我 从 IBM Watson 文档中找到的内容

  1. 该服务最多接受 10,000 张图像或每个 .zip 文件 100 MB
  2. 该服务要求每个 .zip 文件至少包含 10 个图像。
  3. 该服务每次培训调用最多接受 256 MB。
  4. 图片的最小推荐尺寸为 32X32 像素。

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

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

总拉链:大约 1000 个。

每个 zip 包含大约 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() +   "\n\n");
4

1 回答 1

0

感谢您对 Visual Recognition 的关注。

编写文档时假设您在训练中提交 1 个 zipclass文件classifier

您是否将同一类中的示例拆分为不同的 .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 像素。

澄清一下,这些是最低要求 -您正在训练class的每个图像必须至少有 10 个示例图像。classifier最好将您可以使用的所有训练图像class放入一个 .zip 文件中,但每个 .zip 文件的大小限制为 100MB。如果您的示例多于每个类,则可以使用再训练功能添加更多示例。

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

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

总拉链:大约 1000 个。

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

每个 zip 包含大约 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

于 2017-05-28T14:33:42.227 回答