Я пытаюсь реализовать LSTM с Keras.
Я знаю, что для LSTM в Keras требуется трехмерный тензор с формой (nb_samples, timesteps, input_dim)
в качестве входных данных. Однако я не совсем уверен, как должны выглядеть входные данные в моем случае, поскольку у меня есть только одна выборка из T
наблюдений для каждого входа, а не несколько выборок, т.е. (nb_samples=1, timesteps=T, input_dim=N)
. Лучше ли разделить каждый из моих входов на выборки длины T/M
? T
составляет около нескольких миллионов наблюдений для меня, так как долго каждый образец в этом случае должно быть, т.е., как бы я выбрал M
?
Кроме того, я прав, что этот тензор должен выглядеть примерно так:
[[[a_11, a_12, ..., a_1M], [a_21, a_22, ..., a_2M], ..., [a_N1, a_N2, ..., a_NM]],
[[b_11, b_12, ..., b_1M], [b_21, b_22, ..., b_2M], ..., [b_N1, b_N2, ..., b_NM]],
...,
[[x_11, x_12, ..., a_1M], [x_21, x_22, ..., x_2M], ..., [x_N1, x_N2, ..., x_NM]]]
где M и N определены как прежде, а x соответствует последнему образцу, который я получил бы при расщеплении, как обсуждалось выше?
Наконец, учитывая кадр данных pandas с T
наблюдениями в каждом столбце и N
столбцами, по одному на каждый вход, как я могу создать такой вход для подачи в Keras?