Deeplearning4j — Как заполнить RNN INDArray?

Я хочу написать RNN в Deeplearning4j для прогнозов фондового рынка, но я борюсь с созданием и заполнением трехмерного INDArrays. Итак, если у меня есть следующий временной ряд:

1 2 3 4 5 6 7 8 9 10

и я хочу использовать 5 значений в качестве входных данных и предсказать 6-е значение:

Ввод: 1 2 3 4 5 Ввод обучения: 6

Ввод: 2 3 4 5 6 Ввод обучения: 7

...

Я бы заполнил INDArrays так:

int numExamples = 5; //1-5, 2-6,..., 5-9
int inputSize = 5; 
int timeSeriesLength = 10;
INDArray features =  Nd4j.create(new int[]{numExamples,inputSize,timeSeriesLength}, 'f');

int outputSize = 1;
INDArray labels =  Nd4j.create(new int[]{numExamples,outputSize,timeSeriesLength}, 'f');

Это правильно? Если да, то как выглядят заполненные INDArrays для features, labels, featuresMask и labelsMask?

Спасибо.


person M. Lohmann    schedule 31.08.2016    source источник


Ответы (1)


Вы можете проверить deeplearning4j.org/usingrnns

Если вам по какой-то причине нужно свернуть вручную, посмотрите, что мы делаем в итераторе sequencerecordreaderdatasetiterator.

Я настоятельно рекомендую использовать datavec, если вы можете. Мы уже решили эту проблему для вас.

Ознакомьтесь с https://github.com/deeplearning4j/deeplearning4j/blob/master/deeplearning4j-core/src/main/java/org/deeplearning4j/datasets/datavec/SequenceRecordReaderDataSetIterator.java

внутренности.

person Adam Gibson    schedule 01.09.2016