1

我想插入 DataSetIterator 并将其添加到 DataSet 中。迭代很容易:

while (iterator.hasNext()) {
    DataSet next = iterator.next();
    dataSet.addRow(next, dataSet.numExamples()); // isn't work
}

如果 DataSetIterator 批量大小为 1,当我这样做时,dataSet.addRow(next, 1);只需将第一个元素替换为下一个元素。如果批量大小为 2,则引发异常:Exception in thread "main" java.lang.IllegalArgumentException: NDArrayIndex is out of range. Beginning index: 2 must be less than its size: 2

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

4

2 回答 2

1

DataSet类有静态merge()方法。在此方法中,您传递 aList<DataSet>并将所有DataSet包含返回到Listlike one only DataSet

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
于 2018-03-20T20:03:29.143 回答
0

语句抛出的异常:

dataSet.addRow(next, dataSet.numExamples()); // isn't work

应该给你一个线索,为什么它不工作。

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

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

希望这可以帮助!

于 2018-03-18T20:03:11.633 回答