Я изучаю прогнозирование временных рядов с использованием модели LSTM.Я нашел хороший учебник https://machinelearningmastery.com/how-to-develop-lstm-models-for-time-series-forecasting/ Я пытаюсь использовать Stacked LSTM для проблемы в части «Многократный параллельный ввод и многошаговый выход».
Набор данных выглядит следующим образом:
[[10 15 25]
[20 25 45]
[30 35 65]
[40 45 85]
[50 55 105]
[60 65 125]
[70 75 145]
[80 85 165]
[90 95 185]]
Задача состоит в том, чтобы использовать последние три временных шага из каждого из трех временных рядов в качестве входных данных для модели и прогнозировать следующие временные шаги каждого из трех временных рядов в качестве выходных.
Например, вотX-вход:
[[10 15 25]
[20 25 45]
[30 35 65]]
И это у-выход:
[[40 45 85]
[50 55 105]]
В учебнике используется структура Encoder-Decoder
, но я хочу применить структуру Stacked LSTM, аналогичную следующей StackedПример LSTM.Но мой вывод - это последовательность последовательности, и я не знаю, как выбрать n_steps_out для плотного слоя.
model = Sequential()
model.add(LSTM(100, activation='relu', return_sequences=True, input_shape=(n_steps_in, n_features)))
model.add(LSTM(100, activation='relu'))
model.add(Dense(n_steps_out))
model.compile(optimizer='adam', loss='mse')
# fit model
model.fit(X, y, epochs=200, verbose=0)