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
网友评论