Keras中的LSTM

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Keras中的LSTM相关的知识,希望对你有一定的参考价值。

参考技术A 最近做一个关于用电负荷预测的项目,想用循环神经网络试一下,具有时间特性的数据预测当然非LSTM莫属了啦,但是感觉自己对LSTM的输入和输出不是很明白,就学习顺便整理一下吧。

说到LSTM当然先来一张cell的图了:

使用LSTM搭建多层LSTM网络还是比较方便的,我们只需要使用 Sequential() 进行堆叠即可。
在进行多层LSTM网络时,需要注意一下几点:

参数 lstm_layers=5 , dense_layers=3 ,结果如下:

前面提到了LSTM的计算其实和普通神经网络类似,那我们就来推一下参数量,看是否符合我们的预期。

最终,总共的参数值为 112+16=128 。和程序打印出来的结果一致。
通过上面的推导我们发现,其实实际的参数量和步长是没有关系的,这一点我也验证了一下,通过改变输入 shape=(samples, time_steps, input_dim) 中的 time_stpes 的值,参数量不会发生变化。如下(输入 shape=[N, 2, 3] , time_steps=10 ):

以上是关于Keras中的LSTM的主要内容,如果未能解决你的问题,请参考以下文章

Keras 的 LSTM 中的时间步长是多少?

Keras 中的 LSTM 实现是如何工作的

Keras 中的多对一和多对多 LSTM 示例

Keras 的 LSTM 层中的 4D 输入

向 Keras 中的 LSTM 提供训练任务

Keras 中的 LSTM 序列预测只输出输入的最后一步