我正在尝试为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层解码器。
我正在使用Tensorflow 1.0并使用 tf.contrib.seq2seq
库进行解码。
答案 0 :(得分:1)
这很简单:
tf.contrib.rnn.MultiRNNCell([范围内的单元格(num_layers)])
请注意,在此上下文中所有内容都称为单元格(这是一个非常糟糕的命名),包括真正的单个神经单元,图层和多个图层。尝试避免*操作以创建多个层(以便将来兼容),如1.2版(https://github.com/tensorflow/tensorflow/releases)的发行说明中所述。