1.epoch和batch size含义

以mnist数据集为例,有60000张训练图片和10000张测试图片。

1个epoch指的是训练时将60000张训练图片训练一次。

假设选择batch size=100对模型进行训练。

每个epoch具有的iteration个数为600。

2.epoch和batch size大小选择

2.1 epoch大小选择

对于不同的任务和不同规模的训练集,epoch数量是不同的。一般首先使用训练集训练模型,然后在验证集上评估模型的性能,随着epoch增加,模型在验证集的效果会变好,但如果训练太多epoch,会导致模型过度拟合训练数据,验证集的效果会下降,理想情况下,我们想找到模型由好变坏的拐点,现在主流的技术是early stopping机制,通过loss的变化来决定是否停止训练,最终,我们使用这个最好的模型在测试集上进行推理,这是规范的一套流程。

2.2 batch size大小选择

显存占用=模型显存占用+batch_size x 每个样本的显存占用。

对于大数据集,因为显存和算力限制,无法将所有数据一次性用于模型训练。此外,如果仅仅使用几条数据进行训练,导致更新点横冲直撞,无法完成收敛。所以,实际训练时是将一些数据组成一个batch送入网络,下图是别人做的一个实验,对batch的大小进行参数控制,得到了一些运行指标。图1 batch大小对模型性能的影响

从图1中可以看到:

(1)batch_size太小,算法不能收敛。

(2)在满足算力和显存的情况下,增大batch_size,迭代次数减少,处理相同数据量的时间变短。

(3)在满足算力和显存的情况下,增大batch_size,其确定的下降方向越准,引起训练震荡越小,达到相同精度需要的epoch数量变多。

(4)合理范围内,增大batch_size,内存利用率提高,大矩阵乘法的并行化效率提高。

在显存容量支持的情况下,batch_size是否越大越好呢?batch_size增大到一定程度,其确定的下降方向已经不再变化,此时再增大batch_size不会提高精度。

batch_size增大,内存利用率提高了,但可能会导致内存容量撑不住。

跑完一次epoch(全数据集)所需的迭代次数减少,要想达到相同的精度,其所花费的时间大大增加了,从而对参数的修正也就显得更加缓慢。

因此batch_size增大到某些时候,达到最终收敛精度上的最优。

3.batch size与learning rate之间的关系

3.1 单机单卡

单卡训练中增大batch size需要增加learning rate,增大batch_size后的lr=batch_size*base_lr。因为batch_size的增大会导致在一个epoch内模型参数update的次数减少,所以为了达到相同的收敛效果,lr应该同比例增大(实际应用中发现不一定要同比例增长,有时候可能增大到batch_size/2倍的效果已经很不错了)。但是更大的lr可能会导致收敛不够好,尤其是在刚开始的时候,如果使用很大的lr,可能会直接爆炸,所以可能会需要一些Warm up来逐步的把lr提高到想设定的lr。

3.2 分布式训练

分布式训练中batch size随着数据并行的worker增加而增大,假设baseline的batch size为B,learning rate为lr,训练epoch数为N。如果保持baseline的learning rate,一般不会有较好的收敛速度和精度。原因如下:对于收敛速度,假设k个worker,每次过的sample数量为kB,因此一个epoch下的更新次数为baseline的1/k,而每次更新的lr不变,最后收敛效果不好。

为了达到更好的效果,一是通过增加epoch数达到与baseline相同的更新次数,最大需要增加k*N个epoch,因此收敛加速倍数会远远低于k。对于收敛精度,由于增大了batch size使梯度估计相较于baseline的梯度更加准确,噪音减少,更容易收敛到附近的local minima,类似于GD的效果。二是增大lr,因为batch变大梯度估计更准,理应比baseline的梯度更确信一些,所以增大lr,利用更准确的梯度多走一点,提高收敛速度,如果遇到了sharp local minimal,还有可能掏出收敛到更好的地方。但是lr也肯定不能无限制的增大,因为当lr很大时,往往就会难以收敛到局部极值点。

epoch训练时间不同_epoch、batch size和iterations相关推荐

  1. 神经网络训练时如何选取batch size的大小

    神经网络训练时如何选取batch size的大小 做实验时batch size选取的128/144,设置每1000步模型保存一次.但发现训练到后面损失很难降低了. 做实验时batch size选取的6 ...

  2. epoch训练时间不同_神经网络训练的三个基本概念Epoch, Batch, Iteration

    深度神经网络的优化都是基本都是基于梯度下降的,梯度下降的过程就是寻找函数值下降速度最快的方向,沿着该方向迭代,快速到达局部最优解的过程. 梯度下降更新参数的方式最常见的有三种: 1. 批量梯度下降(B ...

  3. 如何理解深度学习分布式训练中的large batch size与learning rate的关系?

    问题详情: 在深度学习进行分布式训练时,常常采用同步数据并行的方式,也就是采用大的batch size进行训练,但large batch一般较于小的baseline的batch size性能更差,请问 ...

  4. 深度学习中:epoch、batch size和iterations之间的关系

    机器学习中:epoch.batchsize和iterations之间的关系 在深度学习中,epoch.batchsize和iterations是在训练模型时,一定用到的一些概念.那么分别是什么意思呢? ...

  5. 有关Batch Size的玄学被打破了!

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入-> CV 微信技术交流群 转载自:机器之心 | 编辑:泽南 作者:Sebastian Ras ...

  6. 打破Batch Size的玄学!batch size 的设置范围,不必那么拘谨!

    作者丨机器之心 来源丨机器之心 [导读]GPU 对 2 的幂次的 batch 可以发挥更好性能?今天来打破这个认知!著名机器学习博主用理论推导和实验结果证明:选择批大小作为 2 的幂或 8 的倍数在实 ...

  7. 一番实验后,有关Batch Size的玄学被打破了

    作者:Sebastian Raschka 视学算法编译 编辑:泽南 有关 batch size 的设置范围,其实不必那么拘谨. 我们知道,batch size 决定了深度学习训练过程中,完成每个 ep ...

  8. batch size 训练时间_深度学习 | Batch Size大小对训练过程的影响

    转自:面试中问你 Batch Size大小对训练过程的影响​mp.weixin.qq.com 先看两个问题: (1)深度学习中batch size的大小对训练过程的影响是什么样的? (2)有些时候不可 ...

  9. 浅析深度学习中Batch Size大小对训练过程的影响

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨陈志远@知乎(已授权) 来源丨https://zhuanlan ...

  10. 深度学习中 Batch Size 对训练过程的影响

    作者 | 陈志远 编辑丨极市平台 之前面试过程中被问到过两个问题: (1)深度学习中batch size的大小对训练过程的影响是什么样的? (2)有些时候不可避免地要用超大batch,比如人脸识别,可 ...

最新文章

  1. 有什么类方法或是函数可以查看某个项目的Laravel版本的?
  2. 小型电梯尺寸_简易式家用电梯-潞城=小型阁楼家用电梯
  3. linux非root用户搭建docker,Linux CentOS 7 非root用户安装源码版Docker
  4. 在多个的共享ndk项目之间共享模块
  5. “报复黑客”:可行的战略还是重大的风险?
  6. Django 部署基础【使用 Nginx + uWSGI 的方式来部署来 Django】
  7. 华为鸿蒙系统明年8月份,华为鸿蒙系统明年上线,力争第五大操作系统,能否成功?...
  8. 7. GD32F103C8T6 定时器 pwm输出
  9. GO实例3 Slice append打印
  10. 递推公式与递归退出的条件
  11. 串口服务器485转以太网
  12. 饿了么美团外卖源码php_从零搭建外卖CPS平台小程序开发
  13. 数字图像处理之数字图像频率空间
  14. win7计算机名称格式,win7笔记本电脑如何显示文件扩展名
  15. iphone屏幕圆角插件_苹果iPhone6s也能分屏?越狱新插件助你实现
  16. 计算机安装程序的文件名一般是什么,[电脑基础知识]什么是文件的后缀名.doc
  17. 读书笔记12 《新周刊485期 三商:智商、情商、时间商》
  18. 微信小程序canvas绘图功能小例子
  19. 达摩院发布2023十大科技趋势,多领域“日进一寸”式融合创新
  20. 分辨率、DPI、PPI和屏幕尺寸,你都知道是啥么?

热门文章

  1. 【Oracle】ngrok 映射数据库地址为外网
  2. C#Winform实现手写录入签名与保存为透明png图片
  3. 云计算时代迎接挑战方能脱颖而出
  4. JeecgBoot全套开发环境搭建
  5. 12 HotKey问题
  6. 深圳市社会医疗保险门诊大病管理办法
  7. 山东农业大学考研计算机专业分数,山东农业大学研究生分数线
  8. 什么是双线双IP,什么叫双线双IP
  9. doom3 entitydef实体定义
  10. dmg文件 linux,Linux通过命令行建立dmg文件的方法(2)