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

 

1.如何设置batch-size

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

深度学习训练 loss 为空 deepfacelab训练到loss值多少合适_深度学习

 

2.修改设置batch-size

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

深度学习训练 loss 为空 deepfacelab训练到loss值多少合适_默认值_02

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

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

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

深度学习训练 loss 为空 deepfacelab训练到loss值多少合适_迭代_03

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

深度学习训练 loss 为空 deepfacelab训练到loss值多少合适_迭代_04

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

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

 

所以这个值并不是单纯的说越小越好,或者越大越好,而是时间和机器性能的一个平衡。  软件的默认值为4,推荐的取值为2的n次方,比如4,8,16,32,64,128。  一般用4,8,16比较多。

深度学习训练 loss 为空 deepfacelab训练到loss值多少合适_深度学习训练 loss 为空_05

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

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

BS基本的原则是:根据自己的硬件设备来调整,从小往上调,调到OOM就知道极限在哪里了。

我喜欢练模型的时候开大一点,具体使用的时候开小一点。

 

4.batch-size扩展阅读

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

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

深度学习训练 loss 为空 deepfacelab训练到loss值多少合适_深度学习训练 loss 为空_06

 

深度学习训练 loss 为空 deepfacelab训练到loss值多少合适_深度学习_07


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

获取更多Deepfakes/AI换脸内容可访问 deepfakes中文网