首页 > 解决方案 > DeepLearning4J LSTM 网络的输入数据模型

问题描述

我正在尝试在 DeepLearning4J 中创建一个 LSTM 网络来对 N 个字符的随机长度字符串进行分类。

我相信我的网络设置正确,但我找不到描述如何形成 SequenceRecordReader 输入的文档。

我发现它是列主要格式 - 所以我每个字符都有一个特征,我的第一个维度是 N 个特征。我尝试第二个维度是序列,第三个维度是序列中的字符 - 所以第三个维度在第二个条目之间的长度不会均匀。条目是简单的 DoubleWritables,值为 0 或 1。

但是,这给了我一个越界异常,因为它正在遍历数据。

有谁知道我的尺寸应该是多少?更有帮助的是,有人知道在哪里有关于各种 DL4J 算法的输入格式/尺寸描述的文档吗?

下面的 Gibson 先生要求提供堆栈跟踪:

Exception in thread "AMDSI prefetch thread" java.lang.RuntimeException: java.lang.IndexOutOfBoundsException: 12000
    at org.nd4j.linalg.dataset.AsyncMultiDataSetIterator$AsyncPrefetchThread.run(AsyncMultiDataSetIterator.java:389)
Caused by: java.lang.IndexOutOfBoundsException: 12000
    at org.bytedeco.javacpp.indexer.Indexer.checkIndex(Indexer.java:94)
    at org.bytedeco.javacpp.indexer.FloatRawIndexer.put(FloatRawIndexer.java:95)
    at org.nd4j.linalg.api.buffer.BaseDataBuffer.put(BaseDataBuffer.java:1130)
    at org.nd4j.linalg.api.ndarray.BaseNDArray.putScalar(BaseNDArray.java:1449)
    at org.deeplearning4j.datasets.datavec.RecordReaderMultiDataSetIterator.convertWritablesSequence(RecordReaderMultiDataSetIterator.java:676)
    at org.deeplearning4j.datasets.datavec.RecordReaderMultiDataSetIterator.convertFeaturesOrLabels(RecordReaderMultiDataSetIterator.java:369)
    at org.deeplearning4j.datasets.datavec.RecordReaderMultiDataSetIterator.nextMultiDataSet(RecordReaderMultiDataSetIterator.java:327)
    at org.deeplearning4j.datasets.datavec.RecordReaderMultiDataSetIterator.next(RecordReaderMultiDataSetIterator.java:213)
    at org.deeplearning4j.datasets.datavec.SequenceRecordReaderDataSetIterator.next(SequenceRecordReaderDataSetIterator.java:365)
    at org.deeplearning4j.datasets.datavec.SequenceRecordReaderDataSetIterator.next(SequenceRecordReaderDataSetIterator.java:344)
    at org.deeplearning4j.datasets.datavec.SequenceRecordReaderDataSetIterator.next(SequenceRecordReaderDataSetIterator.java:48)
    at org.nd4j.linalg.dataset.adapter.MultiDataSetIteratorAdapter.next(MultiDataSetIteratorAdapter.java:77)
    at org.nd4j.linalg.dataset.adapter.MultiDataSetIteratorAdapter.next(MultiDataSetIteratorAdapter.java:28)
    at org.nd4j.linalg.dataset.AsyncMultiDataSetIterator$AsyncPrefetchThread.run(AsyncMultiDataSetIterator.java:361)

标签: deep-learningdeeplearning4j

解决方案


推荐阅读