网上随便一搜很多keras的lstm简单教程。
主要讲讲一些比较偏门比较少用,但我觉得挺重要挺好用的部分:
1.多输入多输出(相当于通用的了),
2.stateful的LSTM,
3.结合多输入多输出的stateful,
4.结合多输入多输出的stateful,且在LSTM前增加全连接或卷积或dropout(大部分网上的input直接进入lstm,但lstm好像最多也只能够叠3层)
对于1的,要多输入多输出的稍微少一些(同时搜搜bing,百度现在很LJ了),但基本上满足主要lstm应用
对于2,3的,有国外一编介绍很全面,有介绍有代码:https://ahstat.github.io/RNN-Keras-time-series/ 。简单来说stateful就是,模型会一直记录输入的顺序(不同batch之间的也会),而不是只记着设置的time period。只到model.reset_state。否则,学习时也会跨batch有记忆地来学习。当然,设置一个大的batch 跨越所有数据也可以做到这样的效果。文中也有介绍也可代码重现。
对于4的,现在网上一个竞赛的可能的需求。尝试用这种方法看看效果是否好,因为输入的参数可能很多,想先筛选一下再进lstm,不然lstm也不能建很多层。现在,还在等训练结果。初步看,loss跳动比较厉害,还不确定什么原因。