tensorflow深度学习之描述循环计算层与循环计算过程(超详细)

描述循环计算层

tf.keras.layers.SimpleRNN(记忆体个数,activation=‘激活函数’, return_sequences=是否每个时刻输出ht到下一层)
activation=‘激活函数’(不写,默认使用tanh)
return_sequences=Ture 各时间步输出ht(一般中间层的核用Ture)
return_sequences=False 仅最后时间步输出ht(默认)(一般最后一层的循环核用False,仅在最后一个时间步输出ht)

当return_sequences=Ture
循环核在每个时间步均输出ht,即循环核各时刻会把ht推送到下一层
在这里插入图片描述
当return_sequences=False
循环核仅在最后一个时间步输出ht,即循环核仅在最后一个时刻把ht推送到下一层

API对送入循环层的数据维度是有要求的

要求送入循环层的数据是三维的
三维:[送入样本数,循环核时间展开步数,每个时间步输入特征个数]
示例一:
一共要输入RNN层两组数据,每组数据经过一个时间步就会得到输出结果,每个时间步送入三个数值
在这里插入图片描述
故需要输入循环层的数据维度就是[2, 1, 3]

示例二:
只有一组数据,分四个时间步送入循环层,每个时间步送入两个数值
在这里插入图片描述
故输入循环层的数据维度就是[1, 4, 2]

循环计算过程

用字母预测例子理解循环计算过程(即输入a输出b,输入b输出c)

  1. 送入神经网络的都是数字,所以先用独热码把五个字母表示出来
  2. 随机生成Wxh、Whh、Why三个参数矩阵
  3. 记忆体的个数选取3
  4. 记忆体状态信息ht=tanh(xtWxh+ht-1Whh+bh)
  5. 令当前输入xt为[0, 1, 0, 0, 0],乘以矩阵Wxh
  6. 得ht=tanh(xtWxh+ht-1Whh+bh)=tanh([-2.3 0.8 1.1]+[0 0 0]*Whh+[0.5 0.3 -0.2])=tanh[-1.8 1.1 0.9]
  7. 记忆体存储的状态信息被刷新为ht=[-0.9 0.8 0.7]
  8. 输出yt是把提取到的时间信息通过全连接进行识别预测的过程,是整个网络的输出层
  9. 输出yt=softmax(ht*Why+by)=softmax([-0.7 -0.6 2.9 0.7 -0.8]+[0.0 0.1 0.4 -0.7 0.1])=softmax([-0.7 -0.5 3.3 0.0 -0.7])=[0.02 0.02 0.91 0.03 0.02]
  10. 模型认为有91%的可能性输出字母c,所以循环网络输出了预测结果c

下一讲:tensorflow深度学习之基于RNN的字母预测(onehot)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值