深度学习·神经网络·计算机视觉大数据,机器学习,人工智能

Keras之stateful LSTM全面解析+实例测试

2018-03-13  本文已影响0人  youyuge

Keras中的stateful LSTM可以说是所有学习者的梦魇,令人混淆的机制,说明不到位的文档,中文资料的匮乏。
通过此文,旨在帮助有困惑的人理解statefulness这一状态。

警告: 永远不要在不熟悉stateful LSTM的情况下使用它

参考目录:

官方文档简介

stateful: Boolean (default False). If True, the last state for each sample at index i in a batch will be used as initial state for the sample of index i in the following batch.

使 RNN 具有状态意味着每批样品的状态将被重新用作下一批样品的初始状态。

注意,此处的状态表示的是原论文公式里的c,h,即LSTM特有的一些记忆参数,并非w权重。

当使用有状态 RNN 时,假定:

要在 RNN 中使用状态,你需要:

重置累积状态:

疑问解答:

用图片可以更好地展示,如下图,蓝色箭头就代表了记忆参数的传递,如果stateful = False,则没有这些蓝色箭头。

stateful_lstm.jpg

总结

如果你还是不理解,没关系,简单的说:

如果你还是不理解,没关系……举个例子:

实战

如果感兴趣,可以看看官方的example——lstm_stateful.py,个人不推荐,用例繁琐,还没画图,讲的不清楚。

本实战代码地址:GitHub

具体代码里面可以自己看,我就不多说细节了,这里主要来展示下结果。

上一篇 下一篇

猜你喜欢

热点阅读