美文网首页
DataVec/数据拆分/数字标记文件名

DataVec/数据拆分/数字标记文件名

作者: hello风一样的男子 | 来源:发表于2019-03-25 16:06 被阅读0次
    package org.datavec.inputsplit;
    
    import org.datavec.api.split.NumberedFileInputSplit;
    
    import java.net.URI;
    
    /**
     * 
     * 当你有一系列以数字命名的文件时,{@link org.datavec.api.split.NumberedFileInputSplit}是很有用的,
     * 遵循一个共同的模式。例如,如果你的目录包含以下格式的文件:
     * file1.txt
     * file2.txt
     * file3.txt
     * file4.txt
     * ...
     * file100.txt
     * 然后 {@link org.datavec.api.split.NumberedFileInputSplit}
     * 可以按如下方式使用:
     * {@code NumberedFileInputSplit numberedFileInputSplit = new NumberedFileInputSplit("file%d.txt",1,100);}.
     * 如你所见,在构造器中,indexes, starting/ending被包括
     * 另外,请记住,你只能以"\%(0\d)?d"的形式指定基本字符串正则表达式。因为这只会以顺序格式生成文件路径。
     */
    public class Ex03_NumberedFileInputSplitExample {
        public static void main(String[] args) {
    
            /*
              A basic usage of the NumberedFileInputSplit is shown below:
              如下显示的是NumberedFileInputSplit的基本用法:
              指定部分非绝对路径 (例如 "file%d.txt" 将用根工作目录的绝对路径(和一个文件://schema)预先设置路径. 例如:
              "file:///E:/Projects/Java/dl4j-examples/datavec-examples/file5.txt"
             */
            NumberedFileInputSplit split1 = new NumberedFileInputSplit("file%d.txt",1,5);
    
            System.out.println("--------------- 示例 1: 加载简单的数字标记文件 ---------------");
            URI[] split1Uris = split1.locations();
            for (URI uri: split1Uris) {
                System.out.println(uri);
            }
            System.out.println("------------------------------------------------------------\n\n\n");
    
            /*
           
              有时文件用前面为0编号。例如
              file001.txt
              file002.txt
              ...
              file425.txt
              这通常是为了更容易阅读文件名,并使它们具有相同的长度。
              由于NumberedFileInputSplit在内部使用String.format(),因此我们可以遵循零开头字符串模式,
              例如:“prefix-%03d.suffix”,其中%03d将把编号文件格式化为最多3位的0开头。
             */
            NumberedFileInputSplit split2 = new NumberedFileInputSplit("/path/to/files/prefix-%03d.suffix",
                1,
                15);
    
            System.out.println("--------------- 示例 2: 加载有0开头的文件 ---------------");
            URI[] split2Uris = split2.locations();
            for (URI uri: split2Uris) {
                System.out.println(uri);
            }
            System.out.println("------------------------------------------------------------\n\n\n");
    
            /*
              有关如何使用String.format()格式化的更多示例,你可以访问此链接:
              https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax
              确保只使用类型为“%d”的格式
              此外,你还可以在这里看到单元测试的更多示例:
              https://github.com/deeplearning4j/deeplearning4j/blob/79d4110eee96f6b7f331931f4775233c4264d999/datavec/datavec-api/src/test/java/org/datavec/api/split/NumberedFileInputSplitTests.java
             */
        }
    }
    
    
    
    

    翻译:风一样的男子

    image

    相关文章

      网友评论

          本文标题:DataVec/数据拆分/数字标记文件名

          本文链接:https://www.haomeiwen.com/subject/xrkbvqtx.html