正确理解LSTM在keras API中的stateful参数

理解LSTM中的return_sequence和return_state看这里。解释的很详细:

理解LSTM在keras API中参数return_sequences和return_state

推荐英语原文Stateful LSTM in Keras

文中使用三个问题来解释了这个参数:

  1. 给定了一个长序列(eg 时间序列),然后把它分为一些更小的子序列来构造输入矩阵X,LSTM是否能在序列之间找到依赖的关系?

    除非我们指定使用有状态的LSTM,否则LSTM无法找到序列之间的依赖关系。

    但大多数问题都可以通过无状态LSTM来解决,所以确保你真的需要有状态模式,再将stateful设为True

    在无状态模式下,长期记忆并不意味着LSTM将记住先前批次的内容,这里的批次指的是batch

  2. 为什么我们在Keras中区分无状态LSTM和有状态LSTM?

    LSTM具有cell,因此根据定义是有状态的(这个指的是隐藏层的状态)。

    Fabien Chollet给出了有状态的定义:
    stateful:Boolean(默认为False)。 如果为True,则批次中索引i处的每个样本的最后状态将用作后续批次中索引i的样本的初始状态。

    换句话说,无论何时训练或测试LSTM,首先必须构建形状为(nb_samples,时间步长,input_dim)的输入矩阵X,其中batch批量大小除以nb_samples

    例如,如果nb_samples = 1024batch_size = 64,则表示您的模型将接收64个样本的块,计算每个输出(无论每个样本的时间步数是多少)的平均梯度并传播它以更新参数向量 。

    默认情况下,Keras在X中对样本进行shuffles(置换),并且 X i X_i X<

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值