LSTM的stateful
Stateful
简单来说
LSTM stateful=True:能够让模型学习到输入的samples之间的时序特征,适合一些长序列的预测,且具有顺序,比如哪个sample在前,哪个sample在后对模型具有一定的影响。
LSTM stateless:输入sampels后,默认就会shuffle,可以说每个sample都是独立的,之间没有前后关系,适合输入一些没有关系的样本。
网上有个例子:
stateful LSTM: 根据一篇1000句的文章来预测第1001句,每个句子都是一个sample, 这个时候前后语句有时序关系且有前后关联,不能丢掉时序特征。stateful能够将第一句的特征传递到1001句。
stateless LSTM: 比如训练LSTM自动写文章,训练1000篇文章,这些样本之间不存在关系,是相互独立的,哪怕打乱顺序也没有关系,因此模型训练起来也没区别。
Shuffle:
shuffle = True 会在每个epoch开始之前打乱训练集数据顺序,使用stateful LSTM肯定要设置shuffle = False
具体可以看:
https://www.zydarchen.top/20180925/21_stateful_LSTM/