参数

参数描述
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打开手册

GitHub 加速计划 / te / tensorflow
184.55 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:2 个月前 )
a49e66f2 PiperOrigin-RevId: 663726708 2 个月前
91dac11a This test overrides disabled_backends, dropping the default value in the process. PiperOrigin-RevId: 663711155 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐