Batch-Size解析
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,对训练会有一定的坏处:
- 一次喂入的数据量太大,内存容量可能撑不住,或者显卡显存不足。
- 增大到一定程度后,其确定的梯度下降方向基本不再变化了。
- 容易陷入局部最小值,且很难再跳出。
原文博客
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CJH's blog!