首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无tf.contrib.rnn.MultiRNNCell的多层光波导

无tf.contrib.rnn.MultiRNNCell的多层光波导
EN

Stack Overflow用户
提问于 2020-08-08 13:26:00
回答 1查看 91关注 0票数 1

为了实现多层LSTM网络,我通常使用以下代码:

代码语言:javascript
复制
def lstm_cell():
    return tf.contrib.rnn.LayerNormBasicLSTMCell(model_settings['rnn_size'])
    
attn_cell = lstm_cell
    
def attn_cell():
    return tf.contrib.rnn.DropoutWrapper(lstm_cell(), output_keep_prob=0.7)
    
cell = tf.contrib.rnn.MultiRNNCell([attn_cell() for _ in range(num_layers)], state_is_tuple=True)
outputs_, _ = tf.nn.dynamic_rnn(cell, x, dtype=tf.float32)

但是,这样,如果我想要操作隐藏层输出的安排,我就无法访问隐藏层输出。在不使用tf.contrib.rnn.MultiRNNCell的情况下,有没有其他方法可以建立一个多层LSTM网络?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-08 15:16:40

您可以简单地堆叠几个LSTM层,例如通过顺序模块:

代码语言:javascript
复制
model = Sequential()
model.add(layers.LSTM(..., return_sequences = True, input_shape = (...)))
model.add(layers.LSTM(..., return_sequences = True)
...
model.add(layers.LSTM(...))

在这种情况下,return sequences关键字对于中间层至关重要。

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

https://stackoverflow.com/questions/63315923

复制
相关文章

相似问题

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