【发布时间】:2019-11-24 05:57:43
【问题描述】:
如果我错了,请纠正我,但根据官方 Keras documentation,默认情况下,fit 函数具有参数“shuffle=True”,因此它会在每个 epoch 上对整个训练数据集进行随机播放。
但是,使用 LSTM 或 GRU 等循环神经网络的重点是使用每个数据的精确顺序,以便先前数据的状态影响当前数据。
如果我们打乱所有的数据,所有的逻辑序列都会被破坏。因此,我不明白为什么有这么多 LSTM 示例,其中参数未设置为 False。不使用序列的 RNN 有什么意义?
此外,当我将 shuffle 选项设置为 False 时,即使数据之间存在依赖关系,我的 LSTM 模型的性能也会降低:我使用链接连接的 KDD99 数据集。
【问题讨论】:
-
这是一篇有用的文章,不复杂,有例子。它主要讨论
stateful参数,还讨论了如何在 LSTM/RNN 中传播训练,并且还提到了洗牌。还有一个关于如何拆分训练序列的建议philipperemy.github.io/keras-stateful-lstm 另外,这里的这个答案可能会有所帮助stackoverflow.com/a/44789322/5838180
标签: tensorflow keras lstm shuffle recurrent-neural-network