C/C++教程

batch batch-size

本文主要是介绍batch batch-size,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
  1. 什么是batch,batch-size
    深度学习训练过程本身是就是求损失函数的最小值。这一过程一般通过梯度下降来实现。如果训练一个epoch,遍历所有训练集,计算一次loss,反向传播一次,梯度也下降一次。如果把训练集切割成一些小的训练集,,每次遍历完一个小的训练集,就计算一次loss,反向传播一次,梯度下降一次,那么一个epoch中就可以实现多次梯度下降,从而能够加快训练的收敛速度。这个小的训练集就是一个batch,每个batch的大小就是batch-size。

  2. batch-size大小对训练过程有什么影响
    极端的例子,如果batch-size是整个训练集,那么每个epoch需要遍历所有的数据,导致占用的显存大,且收敛的速度慢。如果batch-size为1,那么相邻两次迭代权重梯度可能差异大,会导致梯度振荡,不容易收敛。所以一般batch-size取中间数,通常为64的倍数或因子。

还有说batch-size太大,可能会使得相邻两次迭代的数据分布相似,梯度差异小,从而使loss陷入局部最小值。

batch-size

这篇关于batch batch-size的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!