[英]Problem with Keras LSTM input_shape: expected lstm_1_input to have shape (500, 2) but got array with shape (500, 5)
x_train
and y_train
are input and output of my model with shapes of (6508, 500, 5), (6508, 5)
respectively. x_train
和y_train
是我的 model 的输入和 output,形状分别为(6508, 500, 5), (6508, 5)
。
And the model is like this:而model是这样的:
model = Sequential()
model.add(LSTM(units=96, return_sequences=True, input_shape=x_train.shape[1:]))
model.add(Dropout(0.2))
model.add(LSTM(units=96, return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(units=96))
model.add(Dropout(0.2))
model.add(Dense(units=5))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['mse'])
model.fit(x_train, y_train, epochs=epochs, batch_size=batch_size)
Model Summary: Model 总结:
Model: "sequential_1"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
lstm_1 (LSTM) (None, 500, 96) 39168
_________________________________________________________________
dropout_1 (Dropout) (None, 500, 96) 0
_________________________________________________________________
lstm_2 (LSTM) (None, 500, 96) 74112
_________________________________________________________________
dropout_2 (Dropout) (None, 500, 96) 0
_________________________________________________________________
lstm_3 (LSTM) (None, 96) 74112
_________________________________________________________________
dropout_3 (Dropout) (None, 96) 0
_________________________________________________________________
dense_1 (Dense) (None, 5) 485
=================================================================
Total params: 187,877
Trainable params: 187,877
Non-trainable params: 0
The problem is lstm_1
requires input_shape (500, 2) and my data shape is (500, 5):问题是
lstm_1
需要 input_shape (500, 2) 而我的数据形状是 (500, 5):
ValueError: Error when checking input: expected lstm_1_input to have shape (500, 2) but got array with shape (500, 5)
And I print layers' shape:我打印图层的形状:
for layer in model.layers:
print(layer.input_shape, end='\t')
# (None, 500, 5) (None, 500, 96) (None, 500, 96) (None, 500, 96) (None, 500, 96) (None, 96) (None, 96)
It prints (None, 500, 5)
for lstm_1
so I can't figure out the problem.它为
lstm_1
打印(None, 500, 5)
所以我无法找出问题所在。
Keras==2.3.0
tf==1.14.0
UPDATE:更新:
Using keras==2.2.5
or tf.keras
solves the problem.使用
keras==2.2.5
或tf.keras
可以解决问题。
Mentioning the Solution in Answer Section for the Benefit of the Community.为了社区的利益,在回答部分提到解决方案。
Using tf.keras
instead of keras
has resolved the problem.使用
tf.keras
代替keras
已经解决了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.