首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多层bidirectional_dynamic_rnn:与MultiRNNCell不兼容?

多层bidirectional_dynamic_rnn:与MultiRNNCell不兼容?
EN

Stack Overflow用户
提问于 2017-03-08 00:10:55
回答 1查看 876关注 0票数 5

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

代码语言:javascript
复制
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, ...)

为了将其转换为多层结构,我想我不能简单地将一些LSTMCellMultiRNNCell包装成这样:

代码语言:javascript
复制
multi_cell_fw = tf.contrib.rnn.MultiRNNCell([cell_fw] * num_layers, ...)

并将它们输入到bidirectional_dynamic_rnn中,因为每个层的前向和后向都需要前一层的正向和后向的输出。目前,我的解决方案是在一个循环中创建我的bidirectional_dynamic_rnn,输入前几层LSTM的级联输出。

然而,它并不是很干净,坦率地说,我不确定它是否正确,尽管它确实在一个玩具数据集上工作。有比使用MultiRNNCell之类的东西更优雅的方法吗?

我使用的是Tensorflow API r1.0。

EN

回答 1

Stack Overflow用户

发布于 2018-03-09 21:52:01

只要做:

multi_cell_fw = tf.contrib.rnn.MultiRNNCell([cell_fw for _ in range(num_layers)], ...)

那应该管用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42660701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档