input_shape
требуется только для первого слоя.Последующие слои принимают выходные данные предыдущего слоя в качестве входных данных (так что их значение аргумента input_shape
игнорируется)
Модель ниже
model = Sequential()
model.add(LSTM(64, return_sequences=True, input_shape=(5, 2)))
model.add(LSTM(32))
представляет нижеприведенную архитектуру
Который вы можете проверить это по model.summary()
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
lstm_26 (LSTM) (None, 5, 64) 17152
_________________________________________________________________
lstm_27 (LSTM) (None, 32) 12416
=================================================================
Замена строки
model.add(LSTM(32))
на
model.add(LSTM(32, input_shape=(1000000, 200000)))
все равно предоставит вам ту же архитектуру (проверьте, используя model.summary()
), потому что input_shape
игнорируется, поскольку он принимает в качестве входных данных тензорный выход предыдущего слоя.
И если вам нужна последовательность для последовательности архитектуры, как показано ниже
![enter image description here](https://i.stack.imgur.com/KT9ln.png)
, вы должны использовать код:
model = Sequential()
model.add(LSTM(64, return_sequences=True, input_shape=(5, 2)))
model.add(LSTM(32, return_sequences=True))
который должен вернуть модель
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
lstm_32 (LSTM) (None, 5, 64) 17152
_________________________________________________________________
lstm_33 (LSTM) (None, 5, 32) 12416
=================================================================