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曲线更加“瘦” 降低的比较快,但是相应消耗的时间也多了不少,接近一倍,同时还要消耗更多显存。
所以这个值并不是单纯的说越小越好,或者越大越好,而是时间和机器性能的一个平衡。 软件的默认值为4,推荐的取值为2的n次方,比如4,8,16,32,64,128。 一般用4,8,16比较多。
上图为,BS从8改到16。可以看到BS变大后振幅明显变小,时间翻倍,但是最低点并没有太大变化。
凡是有size的东西,大家往往都迷恋“大” (单纯一笑),其实合适的才是最好。
BS基本的原则是:根据自己的硬件设备来调整,从小往上调,调到OOM就知道极限在哪里了。
我喜欢练模型的时候开大一点,具体使用的时候开小一点。
4.batch-size扩展阅读
学有余力的想上进的可以看看专业的介绍,大神就不用看了。
小白也不要为难自己咯!即使读不懂这些,也能把软件玩的很溜。看完下面这篇文章,请告诉我梯度是什么,哈哈!
--------------------------------------------------------
获取更多Deepfakes/AI换脸内容可访问 deepfakes中文网