Python 从双向\u rnn切换到双向\u rnn后的结果更糟

Python 从双向\u rnn切换到双向\u rnn后的结果更糟,python,tensorflow,recurrent-neural-network,Python,Tensorflow,Recurrent Neural Network,基本上尝试用双向动态输入(重塑输入)代替双向输入,但在分类任务中得到了更糟糕的结果。 我做错什么了吗?重塑 双向版本(代码摘录): 分类准确率:95% 双向动态版本(代码摘录): 分类准确率:70%好的,所以我发现tf.reformate不适合这个任务,我应该使用tf.stack和tf.transpose。 所以基本上它使用的是乱七八糟的输入,无法再学习 错: birnn_inputs = tf.reshape(encoder_embedded_inputs, [-1,enc_size,emb_

基本上尝试用双向动态输入(重塑输入)代替双向输入,但在分类任务中得到了更糟糕的结果。 我做错什么了吗?重塑

双向版本(代码摘录):

分类准确率:95%

双向动态版本(代码摘录):


分类准确率:70%

好的,所以我发现tf.reformate不适合这个任务,我应该使用tf.stack和tf.transpose。 所以基本上它使用的是乱七八糟的输入,无法再学习

错:

birnn_inputs = tf.reshape(encoder_embedded_inputs, [-1,enc_size,emb_size])
对:

birnn_inputs = tf.stack(encoder_embedded_inputs)
birnn_inputs = tf.transpose(birnn_inputs, [1,0,2])

所以现在它工作得很好。

好的,所以我发现tf.reforme不适合这个任务,我应该使用tf.stack和tf.transpose来代替。 所以基本上它使用的是乱七八糟的输入,无法再学习

错:

birnn_inputs = tf.reshape(encoder_embedded_inputs, [-1,enc_size,emb_size])
对:

birnn_inputs = tf.stack(encoder_embedded_inputs)
birnn_inputs = tf.transpose(birnn_inputs, [1,0,2])
所以现在它工作得很好