batch_size对模型训练结果的影响

深度学习用mini-batch进行反向传播时,先将mini-batch中每个instance得到的loss平均化后再反向求梯度。

即:每次反向传播的梯度是对mini-batch中每个instance的梯度平均之后的结果。

所以batchsize的大小决定了相邻迭代之间的梯度平滑程度,也决定了每个epoch的时间。

  1. 当batchsize太小时,相邻mini-batch间的差异太大,会造成相邻两次迭代的梯度震荡比较严重,不利于网络模型收敛;
  2. 当batchsize越大时,相邻mini-batch中的差异越小,虽然梯度震荡会比较小,但是在一定程度有利于模型的收敛;
  3. 但是当batchsize极端大时,相邻mini-batch中的差异过小,两个相邻的mini-batch的梯度就没有区别了,整个训练就按照一个方向一直走,容易陷入到局部最优。

 

batchsize对于训练时间的影响:

反向的过程取决于模型的复杂度,与batchsize的大小关系不大,而正向则同时取决于模型的复杂度和batch size的大小。

完成每个epoch的时间取决于:

1、load数据的时间

2、每个epoch的iter数量。

因此对于每个epoch,不管是纯计算时间还是全部时间,大体上还是大batch能够更节约时间一点,但随着batch增大,iter次数减小,完成每个epoch的时间更取决于加载数据所需的时间,此时也不见得大batch能带来多少的速度增益了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值