首页>>人工智能->模型训练中的Batch

模型训练中的Batch

时间:2023-11-29 本站 点击:0

1、定义

Batch_size:每次喂给模型的样本数量。

Epoch_size:训练所有样本总的次数(即每个样本被训练的次数相当于iteration)。

2、Batch_Size:

batch_size来源于:小批量梯度下降(Mini-batch gradient descent)。

(1)批量梯度下降(BGD):一个epoch训练所有的样本后更新一遍梯度。

(2)随机梯度下降(SGD):每训练一个样本,更新一遍梯度。

(3)小批量梯度下降(Mini-batch gradient descent):把总的数据分为若干批次,每个批次更新一遍梯度。每个批次的大小即为batch_size。

结论:

batch_size越大,速度越快,精度越低(相同训练轮数)。

Batch_size的调参:

(1)当有足够算力时,选取batch size为32或更小一些。

(2)算力不够时,在效率和泛化性之间做trade-off,尽量选择更小的batch size。

(3)当模型训练到尾声,想更精细化地提高成绩(比如论文实验/比赛到最后),有一个有用的trick,就是设置batch size为1,即做纯SGD,慢慢把error磨低。

(4)当然增大Batch_size会加快速度,但是变相地需要更多的Epoch(轮数)去达到需要的精度。

Trick:

以128大小为基准,往两个方向(乘除2倍)来比较最后的结果。

3、Epoch_Size:

对于Epoch大小的确定,牵扯到了防止过拟合的一个方法:提前停止训练。

随着epoch次数增加,神经网络中的权重的更新次数也增加,模型从欠拟合变得过拟合。

Trick:

可以先设定一个固定的Epoch大小(100轮)

一般当模型的loss不再持续减小,且精度不在10轮内提升,就可以提前停止训练了。(设置条件来停止epoch)。

原文:https://juejin.cn/post/7095545541869699102


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/AI/1160.html