Java 交互DataSetInterator并将intto添加到DataSet

Java 交互DataSetInterator并将intto添加到DataSet,java,deeplearning4j,dl4j,Java,Deeplearning4j,Dl4j,我想要交互一个DataSetIterator并将其添加到数据集中。迭代很容易: while (iterator.hasNext()) { DataSet next = iterator.next(); dataSet.addRow(next, dataSet.numExamples()); // isn't work } 如果DataSetIterator批处理大小为1,当我执行dataSet.addRow(下一步,1)时这只是用下一个元素替换第一个元素。如果批大小为2,则引发

我想要交互一个DataSetIterator并将其添加到数据集中。迭代很容易:

while (iterator.hasNext()) {
    DataSet next = iterator.next();
    dataSet.addRow(next, dataSet.numExamples()); // isn't work
}
如果DataSetIterator批处理大小为1,当我执行
dataSet.addRow(下一步,1)时这只是用下一个元素替换第一个元素。如果批大小为2,则引发异常:
线程“main”java.lang.IllegalArgumentException中的异常:NDArrayIndex超出范围。开始索引:2必须小于其大小:2


我还想知道如何将数据集添加到另一个数据集中。

语句引发的异常:

dataSet.addRow(next, dataSet.numExamples()); // isn't work
应该给你一个线索,为什么它不工作

上述引发异常的可能原因是,addRow()的第二个参数指定的行索引基于0,因此有效值的范围为0到numExamples()-1

关于向数据集中添加行,请检查数据集中是否存在不要求调用方指定行索引的append()方法或addRow()方法。要将一个数据集实例与另一个数据集实例合并,请检查是否有可用的merge()方法


希望这有帮助

DataSet
类具有静态的
merge()
方法。在这个方法中,您传递一个
列表
,并将所有
数据集
包含的内容返回到
列表
中,就像只返回一个
数据集
一样

ArrayList<DataSet> data_list = new ArrayList<DataSet>();
// add some data into data_list
DataSet allData = DataSet.merge(data_list); // all DataSet into data_list are merged into allData
ArrayList data_list=new ArrayList();
//将一些数据添加到数据列表中
DataSet allData=DataSet.merge(数据列表);//数据列表中的所有数据集都合并到所有数据中

我想添加一行或多行,但此方法无效。我已更新了上面的原始帖子,请检查它是否有助于解决问题。