Ваша программа представляет собой проблему регрессии, когда ваша модель состоит из 2 слоев lstm с 18 и 50 слоями каждый и, наконец, плотного слоя для отображения значения регрессии.
LSTM требует трехмерного ввода. Так как выход вашего первого слоя LSTM поступает на вход для второго слоя LSTM. Вход второго слоя LSTM также должен быть в 3D. поэтому мы устанавливаем последовательность повторного запуска как истинную в 1-м, поскольку она будет возвращать 3D-вывод, который затем можно будет использовать в качестве ввода для второго LSTM.
Ваше второе значение LSTM не возвращает последовательность, потому что после второго LSTM у вас есть плотный слой, который не нуждается в 3D-значении в качестве входных данных.
[обновление]
В кератах по умолчанию состояния LSTM сбрасываются после каждой партии обучающих данных, поэтому, если вы не хотите, чтобы состояния сбрасывались после каждой партии, вы можете установить состояние = True. Если LSTM установлен с сохранением состояния, конечное состояние пакета будет использоваться в качестве исходного состояния для следующего пакета.
Позже вы можете сбросить состояния, позвонив reset_states()