Tensorflow中LSTM的各张量维度名称和别名,及特定名称的解释

LSTM是由每个cell组成的,每个cell里有3个门:输入门、遗忘门、输出门;每个cell有4个前馈网络层,其实就是4个激活函数,分别是σ、σ、tanh、σ;这些前馈网络层里有神经元,即隐藏神经元,每个前馈网络层里的隐藏神经元个数都是相同的,即num_units,也写作hidden_size
每个ht的向量维度即为hidden_size
当前时刻t的输入是xt,xt的维度是input_size,或input_dim,xt的维度是自己定义的,在NLP中就是词向量的维度,每一列(每一个xt)代表一个词向量。
在LSTM中,每时刻既要考虑当前的输入,也要考虑以往的信息,因此向cell中输入的是ht-1和xt的组合,组合方式是concat(结合),其实就是把两者直接拼起来,比如ht-1是128位,xt是28位,则输入向量是156位。
LSTM的公式是:在这里插入图片描述
由上式可见,每个前馈网络层都有两个参数,W和b,权重参数W的维度是[hidden_size+input_size,hidden_size],b的维度是hidden_size,因此每个cell的维度是[hidden_size+input_size,4*hidden_size]
cell的权重是共享的,在num_steps个时刻的LSTM都是共享一套参数的,说是有num_steps个LSTM单元,其实只有一个,只不过对这个单元执行num_steps次
batch就是有多少个样本数据
time_steps是LSTM特有的,表示有多少个时刻的输入
Initial State是LSTM的隐藏状态和内部状态的一个输入的初始化。分别记作:h0和c0;输出可以通过设置,来决定是输出所有时序步的输出,还是只输出最后一个时序步的输出。Final_State是隐藏状态和内部状态的输出,记作:hn和cn
seq_len是每个样本数据的长度
整体输入数据X的shape:(seq_len,batch,input_size),也可以在LSTM()中设置batch_first,使得X的输入格式要求变为(batch,seq_len,input_size)
h0和c0的格式都是:(1,batch,hidden_size),或(batch,hidden_size)
H的格式:(seq_len,batch,hidden_size),这种是输出所有时间步的隐藏状态,需要在LSTM()中设置return_sequences=True,否则默认只输出最后一个时间步的输出结果(1,batch,hidden_size)
如果只想要研究最后一个时间步的输出结果,只需在最后一个时间步添加全连接即可
  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若初雪舞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值