大佬教程收集整理的这篇文章主要介绍了AI系统——梯度累积算法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_197_68@训练数据的Batch size大小对训练过程的收敛性,以及训练模型的最终准确性具有关键影响。通常,每个神经网络和数据集的Batch size大小都有一个最佳值或值范围。
不同的神经网络和不同的数据集可能有不同的最佳Batch size大小。
学习率 learning rate@H_673_480@:一定条件下,Batch size越大训练效果越好,梯度累积则模拟了batch size增大的效果,如果accumulation steps为4,则Batch size增大了4倍,根据ZOMI的经验,使用梯度累积的时候需要把学习率适当放大。 归一化 Batch Norm:accumulation steps为4时进行Batch size模拟放大效果,和真实Batch size相比,数据的分布其实并不完全相同,4倍Batch size的BN计算出来的均值和方差与实际数据均值和方差不太相同,因此有些实现中会使用Group Norm来代替Batch Norm。
for i, (images, labels) in enumerate(Train_data): # 1. forwared 前向计算 outputs = model(images) loss = criterion(outputs, labels) # 2. BACkWARD 反向传播计算梯度 optimizer.zero_grad() loss.BACkWARD() optimizer.step()
# 梯度累加参数 accumulation_steps = 4 for i, (images, labels) in enumerate(Train_data): # 1. forwared 前向计算 outputs = model(imgaes) loss = criterion(outputs, labels) # 2.1 loss regularization loss正则化 loss += loss / accumulation_steps # 2.2 BACkWARD propagation 反向传播计算梯度 loss.BACkWARD() # 3. update parameters of net if ((i+1) % accumulation)==0: # optimizer the net optimizer.step() optimizer.zero_grad() # reset grdient
@H_618_620@
以上是大佬教程为你收集整理的AI系统——梯度累积算法全部内容,希望文章能够帮你解决AI系统——梯度累积算法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。