什么是batchsize?
一次训练(梯度更新)所选取的样本数。
batchsize的影响
对准确率的影响
- batchsize越大越能得到准确的梯度方向,但是由于深度学习问题一般是非凸问题,所以也容易导致陷入局部最优点。--另外batchsize越大占用的GPU显存越大。
- batchsize越小得到的梯度方向越不准确,梯度易受极端值影响导致剧烈震荡。但是,梯度的不准确性的影响也有可能会让梯度下降的过程离开局部最优点或者鞍点,从而有机会寻找全局最优解。
对运行时间的影响
- 在一定范围内,随着batchsize的增大,可以提高内存的利用率和并行计算效率,会使得处理相同数据量的速度加快。
- 在一定范围内,随着batchsize的增大,达到相同精度所需要的epoch数增多。
- 当batchsize过大的时候,可能会导致无法将整个批次同时加载到显存中,需要分成更小的批次进行计算,这不仅增加了数据传输和显存管理的开销,还可能会降低训练速度。
- 由于上述原因,batchsize达到某个时候达到时间上的最优。
batchsize的设置
将batchsize设置为2的n次方可以加快计算速度,因为计算机的gpu和cpu的memory都是按照2进制的方式进行存储的。