Python 多层双向\u动态\u rnn:与MultiRNNCell不兼容?
我想在Tensorflow中创建一个多层双向LSTM。目前,我的单层模型如下所示: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, ...) 为了将其转变为多层结构,我怀疑我不能
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)],…)
那应该行。我的处境和你一样。从你以前的经验中有什么结论吗?我只是坚持我的解决方案,使用循环来创建层。它可以工作,但没有人们希望的那么优雅。