我试图在我的神经网络中添加更多LSTM图层,但我不断收到以下错误:
ValueError: Error when checking target: expected dense_4 to have 2 dimensions, but got array with shape (385, 128, 1)
我模型的代码如下:
model = Sequential()
model.add(LSTM(60, return_sequences=True, input_shape=(128, 14)))
model.add(LSTM(60, return_sequences=False))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(data_train, RUL_train, epochs=number_epochs, batch_size=batch_size, verbose=1)
当我删除第二个LSTM图层时,它工作正常。或者如果我添加更密集的图层。只是当我添加LSTM层时。 RUL_train有形状(385,128,1)。 model.summary的输出如下:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
lstm_15 (LSTM) (None, 128, 60) 18000
_________________________________________________________________
lstm_16 (LSTM) (None, 60) 29040
_________________________________________________________________
dense_7 (Dense) (None, 1) 61
=================================================================
Total params: 47,101
Trainable params: 47,101
Non-trainable params: 0
_________________________________________________________________
任何帮助表示感谢。
答案 0 :(得分:1)
您的标签数组有三个维度:return_sequence=True
。
那么,你的目的是什么?
(samples,1)
curl
。答案 1 :(得分:0)
这是Keras 2.1.0中引入的一个错误(并没有在2.1.1中完全修复)。尝试安装Keras 2.0.9或更早版本:
pip uninstall keras
pip install keras==2.0.9