Я пытаюсь предсказать временные ряды с помощью LSTM и пишу свой код в Keras с помощью внутреннего интерфейса Tendorflow.У меня есть 30 входных функций (непрерывное значение) и 1 двоичный выход.Я хотел бы использовать 20 предыдущих временных шагов каждой входной функции, чтобы предсказать выходные данные следующего временного шага.Мой размер пакета 52. Однако у меня возникают трудности при попытке определить форму входного слоя.
Согласно примеру LSTM с накоплением в документе Keras, последним измерением трехмерного тензора будет 'data_dim',Это входное измерение или выходное измерение?Если это выходное измерение, то я не могу использовать более одной входной функции, так как в моем случае input_shape будет (batch_size = 52, time_step = 20, data_dim = 1).
С другой стороны,если data_dim является входной формой, то я попытался определить четырехслойный LSTM, а форма модели выглядит следующим образом.
Слой (тип) Выходная форма Параметр #
input_2 (InputLayer) (52, 20, 30) 0
lstm_3 (LSTM) (52, 20, 128) 81408
lstm_4 (LSTM) (52, 128) 131584
density_2 (Плотный) (52, 1) 129
Всего параметров: 213,121 Обучаемые параметры: 213,121 Необучаемые параметры: 0
Правильно ли я написал эту часть кода?Мой фрагмент кода выглядит следующим образом.
input_layer=Input(batch_shape=(batch_size,input_timesteps,input_dims))
lstm1=LSTM(num_neurons,activation = 'relu',dropout=0.0,stateful=False,return_sequences=True)(input_layer)
lstm2=LSTM(num_neurons,activation = 'relu',dropout=0.0,stateful=False,return_sequences=False)(lstm1)
output_layer=Dense(1, activation='sigmoid')(lstm2)
model=Model(inputs=input_layer,outputs=output_layer)
Я не получаю очень хороший результат и, таким образом, пытаюсь понять, есть ли какие-либо проблемы с моим кодом.