Python 双向LSTM问题
最初我使用了一个带有两个隐藏层的LSTM,然后决定看看使用双向层是否会有任何改进。我没有将输入的形状从LSTM更改为双向LSTM。当我运行LSTM版本时,它运行得很好,但是当我运行双向版本时,我得到了一个关于第二层的错误,该层预期为4维。我的问题是为什么会这样,我能做什么 错误消息:ValueError:输入0与层2不兼容:预期ndim=3,发现ndim=2 训练集的输入形状为Python 双向LSTM问题,python,tensorflow,machine-learning,keras,lstm,Python,Tensorflow,Machine Learning,Keras,Lstm,最初我使用了一个带有两个隐藏层的LSTM,然后决定看看使用双向层是否会有任何改进。我没有将输入的形状从LSTM更改为双向LSTM。当我运行LSTM版本时,它运行得很好,但是当我运行双向版本时,我得到了一个关于第二层的错误,该层预期为4维。我的问题是为什么会这样,我能做什么 错误消息:ValueError:输入0与层2不兼容:预期ndim=3,发现ndim=2 训练集的输入形状为(284,1,3) 双向LSTM的代码: model = Sequential() model.add(Bidirec
(284,1,3)
双向LSTM的代码:
model = Sequential()
model.add(Bidirectional(LSTM(units=steps,input_shape=(1,steps))))
model.add(Bidirectional(LSTM(steps),merge_mode= 'ave'))
model.add(LSTM(units=steps,return_sequences=True,activation='relu'))
model.compile(loss='mse', optimizer='sgd',metrics=[Gavg])
model.fit(X_train, y_train, batch_size=1, epochs= 200, validation_data=(X_test,y_test), verbose=1)
由于要将多个LSTM层堆叠在彼此的顶部,因此需要在前两层上使用
return\u sequences=True
。否则,它们的输出将具有(批大小,n个单位)
的形状,因此将不是序列,无法由以下LSTM层处理