如何理解RNN中的Batch_size?

对于Batch_size肯定都不陌生,是机器学习中的一个重要参数

多数时候使用Batch的训练效果会比设置Batch_size=1的训练效果要好。

通俗的理解一下,Batch_size=126时模型一次看了126个样本再来决定梯度下降往哪个方向降,而Batch_size=1时,模型进行了126次横冲直撞的梯度下降,单样本更新参数的随机性太大,显然可以看出使用Batch的模型效果会更好。

同时CNN中的Batch相对比较好理解,一次读取Batch_size个图片,然后依次输入CNN,前向传播Batch_size次后更新权重即可,但是在RNN中由于数据多了一个时间维度time_step,对Batch的理解会有些不动,这里以NLP举一个简单的例子:

首先我们都知道RNN能展开成这样:

然后有一个数据集包含五句话(天气真好)(你是谁啊)(我是小明)(明天打球)(武汉加油)

数据集的维度就是(batch_size, time_step, feature_dim)= (5, 4, word_embedding)

 time_step1time_step2time_step3time_step4
batch_size1
batch_size2啊 
batch_size3
batch_size4
batch_size5武 

对于这样一个数据集,输入RNN的时候是什么情况?

RNN是每个time_step输入一次数据,那么for循环time_step1时,进入网络的数据就是(天,你,我,明, 武)每句话的第一个字进入网络,然后依次往后,这里我们最简单的理解就是同时有batch_size个RNN在处理数据,每个RNN处理一个字,那么time_step1的输出就是(batch_size, hidden_size),整个batch处理完输出为(batch_size, time_step, hidden_size)。

  • 40
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值