Python 多层双向\u动态\u rnn:与MultiRNNCell不兼容?

Python 多层双向\u动态\u rnn:与MultiRNNCell不兼容?,python,machine-learning,tensorflow,Python,Machine Learning,Tensorflow,我想在Tensorflow中创建一个多层双向LSTM。目前,我的单层模型如下所示: cell_fw = tf.contrib.rnn.LSTMCell(hidden_size) cell_bw = tf.contrib.rnn.LSTMCell(hidden_size) (self.out_fw, self.out_bw), _ = tf.nn.bidirectional_dynamic_rnn(cell_fw, cell_bw, input, ...) 为了将其转变为多层结构,我怀疑我不能

我想在Tensorflow中创建一个多层双向LSTM。目前,我的单层模型如下所示:

cell_fw = tf.contrib.rnn.LSTMCell(hidden_size)
cell_bw = tf.contrib.rnn.LSTMCell(hidden_size)

(self.out_fw, self.out_bw), _ = tf.nn.bidirectional_dynamic_rnn(cell_fw, cell_bw, input, ...)
为了将其转变为多层结构,我怀疑我不能简单地将几个
LSTMCell
s包装成
MultiRNNCell
s,如下所示:

multi_cell_fw = tf.contrib.rnn.MultiRNNCell([cell_fw] * num_layers, ...)
并将它们输入到
双向动态\u rnn
,因为每层中的前向和后向LSTM都需要前一层的前向和后向输出。目前,我的解决方案是在一个循环中创建我的
双向\u dynamic\n
s,输入前面层的LSTM的串联输出

然而,它不是很干净,坦率地说,我不确定它是否正确,尽管它确实适用于玩具数据集。有没有比使用类似于
MultiRNNCell
的东西更优雅的方法

我正在使用Tensorflow API r1.0。

只需执行以下操作:

multi_cell_fw=tf.contrib.rnn.multirncell([cell_fw for uu in range(num_layers)],…)


那应该行。

我的处境和你一样。从你以前的经验中有什么结论吗?我只是坚持我的解决方案,使用循环来创建层。它可以工作,但没有人们希望的那么优雅。