RNN 理解 和 keras 中 RNN 参数的理解

之前一直不理解 keras 调用 RNN 函数中一些参数的理解,看了一些文章,慢慢有所理解,下面记录一下,希望对大家有用。

keras 中调用 LSTM 的代码形式如下

 simpleRnn = keras.layers.LSTM(batch_input_shape=(None, TIME_STEPS, INPUT_SIZE),
                                        unroll=True, units=CELL_SIZE)(x)

其中最主要的参数有3个,分别是

INPUT_SIZE 是输入的维度
TIME_STEPS 是输入的个数
CELL_SIZE 是输出的维度

举个例子,假设有n天的天气数据(数据包括:CO, PM2.5, PM10, 风速,下雨概率等5个特征),预测明天是否下雨数据。
你将每 10 天的数据作为一组数据,输入 RNN,RNN 的最终结果就当输出 。
则此时 INPUT_SIZE = 5,TIME_STEPS =10,CELL_SIZE = 2((0,1)代表下雨, (1,0)代表不下雨)


下面通过图片的形式来讲解

在这里插入图片描述
为了表达方便,下面也用上面天气的例子进行说明。

上图是一个 LSTM 的网络结构,如果只看上图,可以知道TIME_STEPS=3, 即TIME_STEPS=绿框的个数,那对于天气的例子,则有10个绿色的框。

那么 INPUT_SIZE 代表上图中的什么呢,INPUT_SIZE 代表 Xt 的维度,也就是说上面图上看到的 Xt 看起来只有一个,其实他是由 5 个神经元组成的。你可以把上面的图理解成是3维的,你只是从正面看过去,前面的神经元正好挡住了后面的神经元。如果从侧面看过去,Xt 是下面这样的。

在这里插入图片描述
CELL_SIZE 就是输出的维度,也就是 h(t) 的维度。
h(t) 是通过中间绿框中的那些黄色的神经元和输入计算得出的。
其实那些黄色的神经元看起来是一个,他其实和 Xt 一样是很多个,从侧面看过去和 Xt 类似,他们的个数正好是 CELL_SIZE 的个数。


从公式的角度理解一下

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

INPUT_SIZE 和CELL_SIZE 的大小,决定了 U,W,b,V的维度
TIME_STEPS 决定了 公式要迭代几次


还有一个参数要记录一下:
return_sequence
关于Keras中LSTM的输出问题,在搭建网络时有两个参数,一个是output_dim表示输出的维度,这个参数其实就是确定了四个小黄矩形中权重矩阵的大小。另一个可选参数return_sequence,这个参数表示LSTM返回的时一个时间序列还是最后一个,也就是说当return_sequence=True时返回的是(samples, time_steps, output_dim)的3D张量,如果return_sequence=Flase时返回的是(samples, output_dim)的2D张量。比如输入shape=(N, 2, 8),同时output_dim=32,当return_sequence=True时返回(N, 2, 32);当return_sequence=False时返回(N, 32),这里表示的时输出序列的最后一个输出。

参考文献

Keras关于LSTM的units参数,还是不理解?
RNN
https://www.jianshu.com/p/3edff278f021
RNN的输入输出以及keras参数解析
https://www.jianshu.com/p/3edff278f021

#2022字节跳动-视频架构职位校招提前批#

2022年毕业的同学们,大家期待的校招提前批开始啦,我们支持抖音、TikTok、今日头条、Faceu等多个APP,多种研发岗位机会任你挑选,快来投递吧~

【岗位类型】:前端/后端/客户端/大数据/多媒体/算法等

投递方式:
投递链接-字节跳动校园招聘
内推码:HMWZ1JC
【邮箱】dss875914213@163.com

还有其他岗位,如果想咨询面试流程、投递进度,欢迎随时沟通

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值