batchsize怎么设置(aperturesize)

现在很多算法都用到了batch,这里简单说下batchsize如何设置先来介绍下epoch、iteration、batchsize三者区别:batchsize:批大小,在深度学习中,一般采用SGD(随机梯度下降)训练,即每次训练在训练集中取batchsize个样本训练;iteration:1个iteration等于使用batchsize个样本训练一次epoch:1个epoch等于使用训练集中的全部样本训练一次为什么要设batchsize?1.当数据量足够大的时候可以适当的…

大家好,又见面了,我是你们的朋友全栈君。

现在很多算法都用到了batch, 这里简单说下batchsize如何设置

先来介绍下epoch、iteration、batchsize 三者区别:

batchsize:批大小,在深度学习中,一般采用SGD(随机梯度下降)训练,即每次训练在训练集中取batchsize个样本训练;

iteration:1个iteration等于使用batchsize个样本训练一次

epoch:1个epoch等于使用训练集中的全部样本训练一次

 

为什么要设batchsize?

1. 当数据量足够大的时候可以适当的减小batch_size,由于数据量太大,内存不够。需要设置batchsize来降低每次iteration的样本量,从而降低内存占用。 (这也是为什么很多时候我们设置sequence max len变大的时候,相应的batch size就要设小一点)

2. 全量数据噪声较少,相对稳定,梯度容易收敛到局部最优,而一定的batch会带来一些噪声和扰动,在局部最优点容易跳出。

 

batchsize也不能无限降低,batch_size=1时为在线学习,也是标准的SGD,这样学习,如果数据量不大,noise数据存在时,模型容易被noise带偏,如果数据量足够大,noise的影响会被“冲淡”,对模型几乎不影响。

 

batchsize太小会有哪些危害?

1. 会导致模型无法收敛,batchsize太小会引起梯度巨大波动,导致无法收敛

 

增大batchsize的好处:

1. 内存的利用率提高了,大矩阵乘法的并行化效率提高。

2. 跑完一次epoch(全数据集)所需迭代次数减少,对于相同的数据量的处理速度进一步加快。

3. 一定范围内,batchsize越大,其确定的下降方向就越准,引起训练震荡越小

 

batchsize过大的坏处:

1. 当数据集太大时,内存撑不住。

2. (全数据集)所需迭代次数减少了,但要想达到相同的 精度,时间开销太大,参数的修正更加缓慢。

3. batchsize增大到一定的程度,其确定的下降方向已经基本不再变化。

 

经验之谈:

1. batch的选择,首先决定的是下降方向,如果数据集比较小,则完全可以采用全数据集的形式。 

①全数据集的方向能够更好的代表样本总体,确定其极值所在。

②由于不同权重的梯度值差别巨大,因此选取一个全局的学习率很困难。 (这句没太看懂)

2. batch数太小,而类别又比较多的时候,真的可能会导致loss函数震荡而不收敛,尤其是在你的网络比较复杂的时候。

增大batch size能减缓梯度震荡,需要更少的迭代优化次数,收敛的更快,但是每次迭代耗时更长。
https://zhuanlan.zhihu.com/p/31558973

3. 随着batchsize增大,处理相同的数据量的速度越快。

4. 随着batchsize增大,达到相同精度所需要的epoch数量越来越多。

5. Batch_Size 增大到某个时候,达到时间上的最优。由于最终收敛精度会陷入不同的局部极值,因此 Batch_Size 增大到某些时候,达到最终收敛精度上的最优。

6. 过大的batchsize的结果是网络很容易收敛到一些不好的局部最优点。同样太小的batch也存在一些问题,比如训练速度很慢,训练不容易收敛等。

7. 具体的batch size的选取和训练集的样本数目相关。

8. 设置batch的同时,一定记得数据shuffle

9. 显存占用不是和batchsize简单成正比

10. 要想收敛到同一个最优点,使用整个样本集时,虽然迭代次数少,但是每次迭代的时间长,耗费的总时间是大于使用少量样本多次迭代的情况的。

 实际上,工程上在使用GPU训练时,跑一个样本花的时间与跑几十个样本甚至几百个样本的时间是一样的!当然得益于GPU里面超多的核,超强的并行计算能力啦。因此,在工程实际中,从收敛速度的角度来说,小批量的样本集是最优的,也就是我们所说的mini-batch。这时的batch size往往从几十到几百不等,但一般不会超过几千。

batch的size设置的不能太大也不能太小,因此实际工程中最常用的就是mini-batch,一般size设置为几十或者几百。

11.样本量少的时候会带来很大的方差,而这个大方差恰好会导致我们在梯度下降到很差的局部最优点(只是微微凸下去的最优点)和鞍点的时候不稳定,一不小心就因为一个大噪声的到来导致炸出了局部最优点。

与之相反的,当样本量很多时,方差很小,对梯度的估计要准确和稳定的多,因此反而在差劲的局部最优点和鞍点时反而容易自信的呆着不走了,从而导致神经网络收敛到很差的点上,跟出了bug一样的差劲。

12. 对于二阶优化算法,减小batch换来的收敛速度提升远不如引入大量噪声导致的性能下降,因此在使用二阶优化算法时,往往要采用大batch哦。此时往往batch设置成几千甚至一两万才能发挥出最佳性能。

13.GPU对2的幂次的batch可以发挥更佳的性能,因此设置成16、32、64、128…时往往要比设置为整10、整100的倍数时表现更优

 

 

 

参考链接:

https://blog.csdn.net/zqx951102/article/details/88918948 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127776.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • client profile_clienttop

    client profile_clienttopscreenX:鼠标在显示屏幕上的坐标。clientX:鼠标在页面显示区域的坐标。注:以上两个都是各浏览器通用的。pageX:FF特有,鼠标在页面上的位置,从页面左上角开始定位,这个可以很方便在整个页面上进行定位,IE没有直接替换的属性。layerX:FF特有,鼠标相对于“触发事件的元素的层级关系中离该元素最近的,设置了position的父元素”的边界的位置,从border的左…

    2025年6月30日
    0
  • MySQL常用SQL语句大全

    MySQL常用SQL语句大全MySQL数据库是一个十分轻便的数据库管理系统,相比大型的数据库管理系统如Oracle、MS-SQL,MySQL更拥有轻便、灵活、开发速度快的特色,更适用于中小型数据的存储与架构。MySQL之所以能够被数以万计的网站采用,也是由此而来。

    2022年6月13日
    38
  • 傅里叶变换 意义_傅里叶变换表达式

    傅里叶变换 意义_傅里叶变换表达式看到论坛有一个朋友提问为什么傅里叶变换可以将时域变为频域?这个问题真是问到了灵魂深处。在这我只能简单讲讲我的理解,要深刻理解翻信号处理教科书是最好的方法。1.如何描述信号我们常常用数学模型去抽象物理事件。信号也可以用数学模型来表示。有了信号的数学模型,我们就可以利用数学计算对信号模型做各种各样的改变。如果加以计算机,模电,数电的相关知识,我们就可以将我们对信号模型的改变转换为对物理信号的…

    2022年10月20日
    0
  • select top 的用法

    select top 的用法selecttop1*from员工orderby编号select*from员工orderby编号select*from员工where编号likeYG%orderby编号descselectTOP1*from员工where编号likeYG%orderby编号desc

    2022年7月13日
    14
  • jquery监听浏览器刷新_jQuery刷新浏览器页面大小

    jquery监听浏览器刷新_jQuery刷新浏览器页面大小jquery监听浏览器刷新基本代码段,用于在使用JavaScript调整浏览器大小的情况下刷新页面。//refreshpageonbrowserresize$(window).bind(‘resize’,function(e){console.log(‘windowresized..’);this.location.reload(false);/*false…

    2022年7月18日
    47
  • artcam浮雕实例教程_artcam2018入门教程

    artcam浮雕实例教程_artcam2018入门教程记录过去,奋斗现在,展望未来(给未来即将结束的工作的’存档’)ArtCAM入门简单教程二、浮雕前言:这不是个很专业的浮雕设计教程,不过是很简单即可实现的入门教程,而更深入的浮雕学习建议查找更全面的网上教程或CAM浮雕书籍。   常用的矢量雕刻,详见:http://blog.sina.com.cn/s/blog_647ef76d0101jgwn.html开始之

    2022年9月5日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号