1.Batch Size 是什么?

Batch Size指的是一次训练所选取的样本数

Batch Size的大小影响模型的优化程度和速度

2.Batch Size 对训练效果的影响

  • 当Batch Size太小时,比如Batch Size=1。一次迭代只需对一个样本进行计算,因此单次迭代速度很快,可用于在线学习。在实际过程中,由于单个样本的随机性,一方面,训练会剧烈波动;一方面, 这种波动可能使训练到达更好的局部最小值。
  • 当Batch Size增大时,GPU的利用率会提高,对于相同的数据量处理的速度会更快一些。与此同时,Batch Size越大,其确定的下降方向越准,网络训练(收敛)的更快。
  • 当Batch Size太大时,比如每次迭代更新使用所有的训练样本。那么迭代速度就会非常慢,甚至会出现训练不动的情况。

3.合理增大Batch Size 的好处

在合理范围内增大Batch Size 的好处在以下几个方面:

  • 一次训练多组数据,内存利用率提高;GPU并行计算效率提高;
  • 相比于小批量,对于相同的数据量,处理速度更快;
  • 在一定范围内,一般来说,Batch Size 越大,其确定的梯度下降方向越准,引起的训练震荡就越小。

4. Batch Size太大的坏处

如果盲目增大Batch Size,对训练会有一定的坏处:

  • 一次喂入的数据量太大,内存容量可能撑不住,或者显卡显存不足。
  • 增大到一定程度后,其确定的梯度下降方向基本不再变化了。
  • 容易陷入局部最小值,且很难再跳出。

原文博客

Batch size问题总结