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

时间:2017-05-27 21:43:25

标签: java ibm-watson visual-recognition

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

INFO:< - HTTP FAILED:java.net.SocketException:通过对等方重置连接:套接字写入错误 (Error Screenshot)

这是我发现的 from IBM Watson Documentation

  1. 该服务最多接受10,000张图片或每个.zip 100 MB 文件
  2. 该服务每个.zip文件至少需要10张图片。
  3. 该服务每次接听培训最多可接受256 MB。
  4. 图像的最小建议尺寸为32X32像素。
  5. 因此,我已经处理了上述每一个方面。

    我已经支付了服务费用,并更改了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");
    

1 个答案:

答案 0 :(得分:0)

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

编写本文档时假设您在class内的classifier内提交了1个zip文件。

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

建议的培训模式是发出一个总计低于256 MB的请求,其中包含其中每个类的所有示例。如果您有比这更多的培训数据,您可以提交额外的&#34;再培训&#34;向现有类添加更多类和/或更多示例的请求。此处记录了再培训: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中,每个classifier必须至少有10个示例图像。最好将class的所有训练图像放入单个.zip文件中,每个.zip文件的限制为100MB。如果您有比每个类更多的示例,则可以使用再训练功能添加更多。

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

  

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

     

拉链总数:约1000。

这是否意味着您的POST /分类器请求包含大约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