Я хочу создать нейронную сеть LSTM с использованием Keras, которая получает в качестве входных данных некоторую длину из четырех объектов и прогнозирует 10 следующих значений. И я не могу установить правильные входные размеры. X_train
- это массив формы (34,5,4) (повторные наблюдения, последовательность наблюдений, особенности) y_train
- это массив формы (34,10). Я не могу удовлетворить требуемые размеры.
Есть идеи, что я делаю не так?
X_train = X_train.reshape((X_train.shape[0], X_train.shape[1], 4))
model.add(LSTM(30, dropout=0.2, batch_size=window_size))
model.add(LSTM(10, activation=None))
model.compile(optimizer='adam',loss='mse')
model.fit(X_train,y_train,epochs= epochs,validation_split=0.2,shuffle=True)
Если вы укладываете два слоя lstm
, вам нужно использовать return_sequence
для первого слоя, которые возвращают выходные данные для каждого временного шага, которые будут подаваться во второй слой lstm
.
Вот объясненный пример, с помощью которого вы можете решить свою проблему.