Разница в том, что когда вы передаете input_dim=x
слою RNN, включая слои LSTM, это означает, что входная форма равна (None, x)
, т. Е. Существует различное количество временных шагов, где каждый из них является вектором длины x
,Однако в примере с функциональным API вы указываете shape=(3, 1)
в качестве формы ввода, и это означает, что есть 3 шага, каждый из которых имеет одну особенность.Поэтому число параметров будет: 4 * output_dim * (output_dim + input_dim + 1) = 4 * 2 * (2 + 1 + 1) = 32
, то есть число, указанное в сводке модели.
Далее, если вы используете Keras 2.xx, вы получите предупреждение в случае использования аргумента input_dim
для слоя RNN:
UserWarning: Аргументы input_dim
и input_length
в повторяющихся слоях устарели.Вместо этого используйте input_shape
.
Предупреждение пользователя: Обновите ваш LSTM
вызов API Keras 2: LSTM(2, input_shape=(None, 3))