lstm 的timestep_请问rnn和lstm中batchsize和timestep的区别是什么?

使用RNN在NLP上的应用为例,我们用wij表示第i个句子里面的第j个词语。

这里是一个batch_size=4,sequence_length=7的数据。每个句子的长度不一定相同,也不一定需要等于sequence_length,所以使用pad这样一个特殊词语将每个句子补齐(padding)到固定长度(便于使用matrix或者tensor存储整个batch的数据)

样本1:w11 w12 w13 w14 pad pad pad

样本2:w21 w22 pad pad pad pad pad

样本3:w31 w32 w33 w34 w35 w36 w37

样本4:w41 w42 w43 w44 w45 pad pad

在时间步1,{w11, w21, w31, w41}被RNN处理;在时间步2,{w12, w22, w32, w42}被RNN处理;依此类推。

RNN处理pad的方式有很多种。例如可以把pad当作普通单词一样处理,然后提取上述batch里面的第w14,w22,w37,w45四个位置的状态;或者当一个sequence遇到pad(或者EOS)的时候停止那个sequence上的计算。以tensorflow为例的话,可以参考static_rnn, dynamic_rnn方法的区别。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值