最近几次训练模型,在本地训练的时候经常会显存溢出,按照惯例调低了batch size数值,这样就有一个问题,batch size和训练效果之间的影响在哪里。
算是一个小白问题吧,很明显在显存允许的情况下越大越好……为什么?
以下只是搜出来的一些记录。
- batch size的作用
batch决定的是下降的方向,当数据集较小的时候可以使用全数据,因为全数据能更好的代表总体。
但是当数据集变大的时候,内存不允许这样做。需要设定一个数值确定每次训练量。 - batch size的大小
大batch size在显存能允许的情况下收敛速度是比较快的但有时的确会有陷入局部最小的情况,小batch size引入的随机性会更大些,有时候能有更好的效果,但是就是收敛速度慢一些。
但是他们还是会建议“在开始时,要大胆地尝试很小的批次大小,如16、8,甚至是1。”这几次训练模型都是128,是因为教程里提供了这个参数,等下试试16看。
网友评论