ValueError:输入0与层lstm_55不兼容:预期ndim = 3,找到的ndim = 2

时间:2018-09-03 17:31:21

标签: python keras lstm

我使用了2个LSTM具有致密层的多层堆栈,这向我显示了一个错误。
这是我的代码:

model.add(LSTM(5, batch_input_shape=(batch_size, X.shape[1], X.shape[2]), stateful=True))
model.add(Dropout(0.2))
model.add(LSTM(5,return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(units=1))
model.add(Activation('relu'))
batch_input_shape=(1,1,4)

它向我显示以下错误:

ValueError: Input 0 is incompatible with layer lstm_57: expected ndim=3, found ndim=2

1 个答案:

答案 0 :(得分:0)

您的第二个LSTM接受形状为[batch_size, time_steps, features]的输入。第一个LSTM产生形状为[batch_size, output_units]的输出,因为参数return_sequences默认为False

您需要在第一个LSTM中显式设置return_sequences = True,以使两个循环层兼容。