DeepFaceLab参数详解之Batch-Size的使用和取值!

Batch-Size简称BS。 这是一个非常常见的参数,所有模型都具备的一个参数。 这其实是深度学习中的一个基础概念。要说理论可以说出一大堆,大家可以先简单的理解为一次处理的图片张数。为了防止吓跑小白,还是从实际操作说起。

 

1.如何设置batch-size

双击train64.bat 启动程序,三次回车后就出现了Batch_size,此时你可以输入一个具体的数字,比如:8。也可以直接回车(默认值为:4)。

 

2.修改设置batch-size

如果你更换了设备,或者从其他地方搞来了一个模型,因为配置不一样了,你可能需要修改BS,此时可以参考下面的操作。

同样双击train64.bat 启动程序,鼠标点击黑色窗口确保已经激活状态,然后立马回车,再来一个三连击,就可以修改BS了。

3  batch-size 设置成多少比较好?

理论放在最后,我们还是先实践,对比下H64模型,bs4和bs32,跑1000个iter的效果。

BS=4  的时候,单个迭代大概380ms, 1000个迭代后src_loss>2   总时间大概380s=6分钟。

BS=32  的时候,单个迭代大概680ms, 1000个迭代后src_loss<2 , 总时间大概680s=11分钟。

通过简单的对比可以发现。

在前期,如果迭代次数相同,bs大的效果相对较好,loss曲线更加“瘦” 降低的比较快,但是相应消耗的时间也多了不少,接近一倍,同时还要消耗更多显存。

当然这只是刚开始,等后面迭代越来越高,两者差异就会变小。

大BS就是刚开始时候曲线特别好看,出图快,但是要达到相同精度,就需要更多的迭代数量。

大BS就像大刀,小BS就像小刀,大刀雕刻轮廓很快,小刀可以更好勾勒细节。

所以这个值并不是单纯的说越小越好,或者越大越好,而是时间和机器性能的一个平衡。

软件的默认值为4,推荐的取值为2的n次方(没有说必须),比如4,8,16,32,64,128。  一般用4,8,16比较多。

上图为,BS从8改到16。可以看到BS变大后振幅明显变小,时间翻倍,但是最低点并没有太大变化。

凡是有size的东西,大家往往都迷恋“” (单纯一笑),其实合适的才最舒服。

就DeepFaceLab来说,开16就顶够了,其实用4也可以出很好的作品,作者默认值不是随便设置的。

所有问题背后都有很多变量,我们往往只是寻找一个相对的最优解。

对于大部分玩家来说,这个参数不必太纠结,因为只要在合理范围内,不会很明显的影响合成质量。

我习惯,小火慢炖,大火收汁(就是这么迷信!)

4.batch-size扩展阅读

学有余力的想上进的可以看看专业的介绍,大神就不用看了。

小白也不要为难自己咯!即使读不懂这些,也能把软件玩的很溜。看完下面这篇文章,请告诉我梯度是什么,哈哈!

 

原文地址:https://blog.csdn.net/qq_34886403/article/details/82558399

 

 

   

--------------------------------------------------------------------------

  申明:图文均由deepfakes 中文网原创,转发请注明出处,谢谢!本站仅分享技术,切勿用于非法用途

网站官方交流群:672316851,659480116,663199843 交流更方便,群文件!  

  微信公众号:托尼是塔克(TonyIsStark),学习各种黑科技!    

--------------------------------------------------------------------------

3 Comments

Add a Comment

电子邮件地址不会被公开。 必填项已用*标注