TensorFlow tf.keras.layers.RNN

参数

参数描述
cell
input_shape(timestep, input_dim),timestep可以设置为None,由输入决定,input_dime根据具体情况
return_sequences返回最后序列最后一个词,或者所有词
return_state
go_backwards
stateful
unroll
time_major

输入形状

n维的张量(batch_size, timesteps, input_dim)
例如:
1.100个句子,每个句子20个词,每个词80维度的向量,那么形状就是(100,20,80)
2.如果是简单的时间序列,则input_dime为1,也就是说该step的值就是它的特征
一个两个步长的序列表示为:[[1],[2]]

输出形状

return_sequences:
False:(batch_size, output_size)
True:(batch_size, timesteps, output_size)

init

__init__(
    cell,
    return_sequences=False,
    return_state=False,
    go_backwards=False,
    stateful=False,
    unroll=False,
    time_major=False,
    **kwargs
)

理论

在这里插入图片描述

W a a W_{aa} Waa是指上一个时间步的权重矩阵,形状是( c e l l ∗ c e l l cell*cell cellcell),就是该循环层的隐藏单元(输入是上一时间步的输出cell,输出是这一个时间步的cell);
W a x W_{ax} Wax是这个时间步特征的权重矩阵(和全连接层相同),形状是( f e a t u r e s ∗ c e l l features*cell featurescell).features是上一层的输入,比如一句话中一个单词的词向量维度, c e l l cell cell是本层的隐藏单元
b a b_a ba是偏置量,形状是( c e l l cell cell),有多少个隐藏单元就有多少个偏置量

所以权重的个数计算是(特征权重+上一个时间步输出权重+偏置量)
c e l l ∗ f e a t u r e s + c e l l ∗ c e l l + c e l l cell*features+cell*cell+cell cellfeatures+cellcell+cell
当然这个公式也可以简化为( w a [ a &lt; t − 1 &gt; , x &lt; t &gt; ] + b a w_a[a^{&lt;t-1&gt;},x^{&lt;t&gt;}]+b_a wa[a<t1>,x<t>]+ba):
c e l l ∗ ( f e a t u r e s + c e l l ) + c e l l cell*(features+cell)+cell cell(features+cell)+cell

参考:
官网
LSTM神经网络输入输出究竟是怎样的?
如何理解lstm的输入输出
完全解析RNN, Seq2Seq, Attention注意力机制
循环神经网络RNN打开手册

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值