尝试使用Keras实现堆叠LSTM层

时间:2017-11-15 22:12:56

标签: python keras

我试图在我的神经网络中添加更多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
_________________________________________________________________

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:1)

您的标签数组有三个维度:return_sequence=True

那么,你的目的是什么?

  • 对每个序列中的所有步骤进行分类? - 所有LSTM必须使用(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

https://github.com/fchollet/keras/issues/8481