【问题标题】:DeepLearning4j and DataVec read csv file with labelDeepLearning4j 和 DataVec 读取带有标签的 csv 文件
【发布时间】:2017-08-07 08:00:28
【问题描述】:

我已经构建了一个 DL4j 项目。如果我使用 MNIST 数据集,一切都很好:

    DataSetIterator mnistTrain = new MnistDataSetIterator(batchSize, true, rngSeed);
    DataSetIterator mnistTest = new MnistDataSetIterator(batchSize, false, rngSeed);

但是,我想切换到我自己的 csv 文件,格式如下:

A  |  B  |  C  |  X  |  Y
-------------------------
1  | 100 |  5  |  15 |  6
...

XY 是结果(或标签)。因为我计划进行回归分析,所以XY 都是实数。所以我使用以下代码读取了 csv 文件:

    RecordReader recordReaderTrain = new CSVRecordReader(1, ",");
    recordReaderTrain.initialize(new FileSplit(new File("src/main/resources/data/Data.csv")));
    DataSetIterator dataIterTrain = new RecordReaderDataSetIterator(recordReaderTrain, batchSize, 3, 2);

代码中的3 表示index of the labels2 表示number of possible labels。这两个参数没有太多解释。我猜他们的意思是标签从第 4 列开始,有 2 个标签。

当我运行代码时,它显示以下异常:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 14

我认为这是因为 dl4j 无法将 15 识别为标签。

所以我的问题是:如何正确读取 csv 文件进行回归分析?

非常感谢。

【问题讨论】:

    标签: deeplearning4j


    【解决方案1】:

    是的,所以我们有回归的例子: https://github.com/deeplearning4j/dl4j-examples/tree/cc383de91bdf4e28e36859aa2e8749100cd63177/dl4j-examples/src/main/java/org/deeplearning4j/examples/feedforward/regression

    您需要将回归真(它是构造函数的额外部分)传递给 RecordReaderDataSetIterator。

    【讨论】:

    • 感谢您的回复。它工作正常。我可以再问一个问题。如何将 DataSetIterator 中的 DataSet 转换为 5 by 3 图形输入,以便我可以使用卷积网络?
    • 介意发布第二个问题并提供更多详细信息吗?谢谢!
    猜你喜欢
    • 2018-06-15
    • 2018-07-17
    • 2015-03-14
    • 1970-01-01
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    相关资源
    最近更新 更多