Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 双向LSTM问题_Python_Tensorflow_Machine Learning_Keras_Lstm - Fatal编程技术网

Python 双向LSTM问题

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

最初我使用了一个带有两个隐藏层的LSTM,然后决定看看使用双向层是否会有任何改进。我没有将输入的形状从LSTM更改为双向LSTM。当我运行LSTM版本时,它运行得很好,但是当我运行双向版本时,我得到了一个关于第二层的错误,该层预期为4维。我的问题是为什么会这样,我能做什么

错误消息:ValueError:输入0与层2不兼容:预期ndim=3,发现ndim=2

训练集的输入形状为
(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层处理