【问题标题】:Keras - How to get GRU cell state?Keras - 如何获取 GRU 单元状态?
【发布时间】:2019-09-20 12:31:34
【问题描述】:

对于 LSTM,我们可以检索最后一个输出和最后一个单元状态,如下所示

outputs, state_h, state_c= LSTM(lstm_dim, return_sequences=True, return_state=True)(inputs)

其中 state_h 是最后一个输出序列; output[-1]=state_h 和 state_c 是LSTM 的最后一个 CELL STATE

但是对于 GRU,它没有这样的选项,而只给出与 state_h 等效的选项。如何从 Keras GRU 获取 state_c 的最后一个单元状态?

【问题讨论】:

    标签: keras lstm recurrent-neural-network keras-layer


    【解决方案1】:

    GRU 中没有内存,也就是说没有cell state

    GRU,一般直接对隐藏状态进行操作得到输出值。在大多数情况下,GRULSTM 具有相同的性能,但计算量更少(参数数量更少)。

    欢迎提问。

    【讨论】:

    • 让我再澄清一点。我正在研究 LSTM 和 GRU 单元的结构。对于 LSTM,ht 是时间 t 的输出,Ct 是细胞状态?而对于 GRU 只有 ht 所以你说没有单元状态并且它严格应用于 Keras?我一直认为单元状态意味着单元中的一些权重用于进行 LSTM 和 GRU 的计算。我的猜测是后者,这是我的想法,是错误的?
    • 如果是这样,我怎样才能从 Keras LSTM 层获取细胞状态序列?是否需要对图层进行一些自定义修改?
    • 当您使用return_sequence 时,它会返回每个单元格的输出以及隐藏状态,即使它已被滚动。当您附加 LSTM 或 GRU 的其他层时,这很有用,这可以从那些隐藏的信息中受益。更多内容可以参考link
    • 您的任务不需要任何自定义层。请阅读 keras documentation
    • 对不起,您的回答不正确。 return_sequences 只返回 LSTM 序列的输出,而不是 LSTM 序列的单元状态。即使使用 return_state,它也只给出 LSTM 序列的最后一个单元状态。我想知道序列的每个细胞状态。我什至测试了示例代码,看看它们提供了什么。
    猜你喜欢
    • 1970-01-01
    • 2022-09-23
    • 2019-04-06
    • 1970-01-01
    • 2016-11-09
    • 2019-08-11
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多