Tensorflow中Seq2Seq的多层双向编码器

时间:2017-06-11 11:55:13

标签: python tensorflow

我正在尝试为Seq2Seq实现多层双向编码器。

我现在正在做的是:

cell = tf.contrib.rnn.LSTMCell(num_size) 
cell = tf.nn.bidirectional_dynamic_rnn(cell_fw =encoder_cell, cell_bw =encoder_cell, .... )

这会创建一个双向的rnn,但是如何使它成为多层?

我想要实现的是架构,其中每个LSTM块都是双向的,第n层编码器的输出进入第n层解码器。

enter image description here

我正在使用Tensorflow 1.0并使用 tf.contrib.seq2seq 库进行解码。

1 个答案:

答案 0 :(得分:1)

这很简单:

tf.contrib.rnn.MultiRNNCell([范围内的单元格(num_layers)])

请注意,在此上下文中所有内容都称为单元格(这是一个非常糟糕的命名),包括真正的单个神经单元,图层和多个图层。尝试避免*操作以创建多个层(以便将来兼容),如1.2版(https://github.com/tensorflow/tensorflow/releases)的发行说明中所述。