[英]DL4J Load Array of Arrays as DataSet
如果我想從帶有 DL4j 的文本文件中的雙精度數組(例如{1, 2, 3, 4}
加載數據集,我使用以下代碼:
int numLinesToSkip = 0;
char delimiter = ',';
String filePath = "data.txt";
File file = new File(filePath);
Path path = file.toPath();
RecordReader recordReader = new CSVRecordReader(numLinesToSkip, delimiter);
recordReader.initialize(new FileSplit(file));
int variables = 2;
int labelIndex = 50;
int numClasses = variables;
int batchSize = (int) lineCount;
DataSetIterator iterator = new RecordReaderDataSetIterator(recordReader, batchSize, labelIndex, numClasses);
DataSet allData = iterator.next();
allData.shuffle();
//DataSet is now created
我想做同樣的事情,但使用 3D 數組數組,例如: {{1, 1, 1,}{2, 2, 2}{3,4,5}{6, 6, 6}}
等.
我可以隨意格式化文件。 我只是希望能夠為每個項目加載一個數組而不是單個雙精度數 - 換句話說,是一個數組數組,而不是一個雙精度數組。
也可以使用 2 個 INDArrays 創建數據集。 如果您只想跳過使用 CSV 並只使用您自己的數組,您可以執行以下操作:
INDArray yourInput = Nd4j.create(double[][]);
INDArray yourLabels = Nd4j.create(double[][]);
DataSet d = new DataSet(yourInput,yourLabels);
通常,您使用的抽象假設每個都是一行。 如果您要嘗試進行 2d,那么唯一的用例通常是時間序列。 否則我們強制執行 1 行,因為在訓練/推理時設置批量大小是慣例。 為了處理該批大小,我們實際上不能允許超過 1 行。 必須在某處進行標准化,以便我們能夠為您執行某些任務,例如批處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.