原文出自deepfacelab中文论坛 http://dfldata.xyz/forum.php?mod=viewthread&tid=642&page=1#pid9666

导言
训练时有许多参数,对不懂机器学习的萌新来说简直就是天书
本篇教程就带大家揭开训练时各参数的含义与效果,同时给出建议数值

我尽量用通俗易懂的语言来解释每一条参数的作用,不需要机器学习基础也能看懂。本文主讲SAEHD模型的训练脚本,QUICK96类似,不重复展开

下面以2021年0104英文版为案例讲解,附带中文翻译。
可能跟各汉化版名称说法有出入,请自行对照阅读

0. 什么是参数?
参数是控制模型结构与模型训练方法的一些值
所有参数中,有些参数只在第一次创建模型时可调整,一旦确定后不可更改。有些参数可以在后续训练中随时调整。
就好比造大厦,一旦决定造几层楼,每层有几间房间,就不可再次变更。而清洁工、保安可以随时雇佣或开除
1. 怎么输入/调节参数?
第一次运行时,会让你输入各个参数值,输入方法如下:

[0] Which GPU indexes to choose? :请输入GPU序号

问句前的[0]表示你直接按回车后,会使用的默认值你可以自行输入值,值的可选项通常在问句中会给出
如果不了解这个选项的作用,输入英文问号?按回车,会给出详细说明

当模型创建后,第N次执行训练脚本时,选择好模型和GPU后,短暂停顿后会有一行提示“Press enter in 2 seconds to override model settings”“请在2秒内按enter回车以重新修改模型参数设置”就是字面意思。如果2秒内没按enter,就会沿用上一次训练时的参数进行训练

接下来就解释各参数的作用,带*的一旦创建不可更改

1. 选择/创建模型

Choose one of saved models, or enter a name to create a new model.选择一个已有的模型,或输入名字创建新模型
[r] : rename
[d] : delete

[0] : liaef-ud512 - latest
:

介绍:如果model文件夹内已经有模型,在这里会显示出来,如上图的[0] : liaef-ud512 - latest如果沿用已存在的模型,输入模型前的编号。如果要新建模型,直接输入名字后按回车。

2. 选择训练用GPU

Choose one or several GPU idxs (separated by comma).选择一个或多个GPU序号,用英文逗号隔开
[CPU] : CPU
  [0] : GeForce RTX 3090

[0] Which GPU indexes to choose? :请输入GPU序号

介绍:第一次运行时首先会出现上面这段文字。要求你输入用于训练模型的GPU序号。可支持的序号已经给你列出来了,输入CPU就使用CPU训练,输入0就使用你的第一张显卡训练。土豪有多张显卡的话输入0,1,2,3.....
问句前面的[0]代表默认值,即直接按回车会采用的值
推荐值:推荐只用编号为0的GPU训练。CPU速度太慢,直接放弃。有多张GPU的话,卡间通讯会消耗大量时间,如无必要不推荐多卡同时训练。

3. 选择自动备份时间

[0] Autobackup every N hour每N小时备份 ( 0..24 ?:help ) :

介绍:自动备份会每隔N小时复制一份模型文件,以免模型崩溃后没法回退。0表示不自动备份
推荐值:6-12

3. 记录保存预览图

[n] Write preview history ( y/n ?:help ) :

介绍:每次迭代会保存一张当前训练效果图,方便你查看模型进步效果,来判断是否已经训练到顶峰了。图片保存在model内一个以history结尾的文件夹中
推荐值:n  一般人看预览窗口的图就OK了。这个功能给做专业对比测试的用

4. 指定预览图

[n] Choose image for the preview history ( y/n ) :

介绍:指定一张图片作为保存的历史预览图。选n就随机选一张
推荐值:n

5. 目标迭代次数

[0] Target iteration目标迭代数 :

介绍:模型训练迭代次数,到了这个次数就停止训练。选0就一直会训练下去,直到你手动停止
推荐值:0

6. 随机翻转人脸

[y] Flip faces randomly ( y/n ?:help ) :

介绍:图片随机左右翻转,以增多数据。src图不足时可以开,但更好的方式是增加数据。如果遇到src人脸左右不对称,比如一边有痣,一边没痣,那么开启后会导致练出来的人脸两边都会有若隐若现的痣。不推荐开,增加数据集是王道
推荐值:n

7.批尺寸大小

[2] Batch_size ( ?:help ) : ?

介绍:每次迭代程序会随机选batchsize张图来学习,数量越大模型每次进步的方向越准,单次迭代时间也越久,需要的显存也相应成倍增加
推荐值:4-16    通常显存不足报错后,把这个值改低就好

8. 模型分辨率*

[512] Resolution ( 64-640 ?:help ) : ?

介绍:模型生成人脸的分辨率。注意,这个只是尺寸大,并不是更清晰。大尺寸的结果就是训练速度更慢,通常256足够用了。一般人连256都训练不到高清,完全没必要用256以上的分辨率模型。
推荐值:128-256,要是16的倍数

9. 选择人脸类型*

[wf] Face type人脸类型 ( h/mf/f/wf/head ?:help ) :

介绍:训练用的人脸类型。什么是人脸类型呢,就是从原图中截取的人脸框大小。h是half face,mf是mid-half-face,f是full-face,wf是whole-face,head是最大的带整个头的人脸。光说没用,上图看对比
f/mf/h的对比如下:

wf的范围如下
 

人脸越大,最后合成环节的可调节余地越大。但相同模型分辨率下,有效面积就越小。比如256尺寸的wf,有效的人脸范围大概只有二分之一大。但在显存越来越大的今天,不用担心。
h是3年前deepfake刚问世时的人脸类型,当年显存小啊,只能将就将就。
推荐值:推荐用wf,已经把整个脸都包含进了,而且能兼容f人脸素材。 h和mf太小,在后期合成时没调整余地。head过大,没必要浪费显存。
许多人总问head模型,真没必要。我理解你们是觉得head可以把脸型也生成出来,这个wf就行,但实际上合成时用的还是dst的人脸轮廓,你训练阶段能生成没卵用。脸型问题你就认为无解吧,只能靠专业后期调整,别再向我追问head模型了。

10. 模型的架构*

[liae-ud] AE architecture ( ?:help ) : ?

'df' keeps more identity-preserved face.

'liae' can fix overly different face shapes.

'-u' increased likeness of the face.

'-d' (experimental) doubling the resolution using the same computation cost.

Examples: df, liae, df-d, df-ud, liae-ud, ...

介绍:模型的核心架构类型。有DF和LIAE两种架构。内容较多,具体区别细节以后单独开教程。这里你只要记住结论DF五官结构保留的更像,LIAE光影处理的更好。
除了核心架构外,还有几个附带参数可加,-u增加人脸相似度,-d在相同显存占用量下,牺牲速度换取分辨率.
核心架构和附带参数可组合使用,如 df, liae, df-d, df-ud, liae-ud
推荐值:LIAE系列

11. 模型中间瓶颈层的宽度

[256] AutoEncoder dimensions ( 32-1024 ?:help ) :

介绍:模型最中间一层神经元的数量。可以理解为越大这个模型能力越强,但要求的显存也越大。就像大脑,人脑比猪脑神经元更多,能力也越强,但需要的头骨容量也越大。
推荐值:256及以上

12. 模型编码层的宽度

[64] Encoder dimensions ( 16-256 ?:help ) :

介绍:模型前半部分神经元的数量。可以理解为越大这个模型能力越强,但要求的显存也越大。就像大脑,人脑比猪脑神经元更多,能力也越强,但需要的头骨容量也越大。
推荐值:64及以上

13. 模型解码层的宽度

[64] Encoder dimensions ( 16-256 ?:help ) :

介绍:模型后半部分神经元的数量。可以理解为越大这个模型能力越强,但要求的显存也越大。就像大脑,人脑比猪脑神经元更多,能力也越强,但需要的头骨容量也越大。
推荐值:64及以上

14. 模型解码器遮罩层宽度

[16] Decoder mask dimensions ( 16-256 ?:help ) : ?

Typical mask dimensions = decoder dimensions / 3. If you manually cut out obstacles from the dst mask, you can increase this parameter to achieve better quality.

介绍:模型中有个分支是学习遮罩,次此参数控制此部分的宽度。
推荐值:三分之一解码层宽度

15. 只训练遮罩部分

[n] Masked training ( y/n ?:help ) : ?

This option is available only for 'whole_face' or 'head' type. Masked training clips training area to full_face mask or XSeg mask, thus network will train the faces properly.

介绍:只有人脸类型是wf或head时可选。开启后模型只关注于被遮罩划分出来的人脸,不学习遮罩外的无关区域。这个遮罩需要提前用Xseg模型应用得到。不然默认使用人脸关键点围合而成的遮罩,会把头发等其他区域给囊括进来。
推荐值:y

16. 眼部嘴部优先训练

[n] Eyes and mouth priority ( y/n ?:help ) :

介绍:眼神和嘴巴口型是最难训练的区域,开启这个参数可以让模型重点优化眼部和嘴部。但如果你没有闭眼素材和张嘴素材,开这个参数也没用
推荐值:n

17. 均匀化样本中各角度的素材

[n] Uniform yaw distribution of samples ( y/n ?:help ) : ?

Helps to fix blurry side faces due to small amount of them in the faceset.

介绍:一般样本中正脸图片居多,俯仰脸侧脸数量较少,这会导致纯随机选取样本时,这些大角度素材被选中训练的概率较小,模型对它们的学习不足。开启此参数后,会根据人脸角度来挑选素材,让大角度人脸样本得到较好的训练
推荐值:n 看你的目标视频,如果有很多大角度的话,建议开启

18. 记录保存预览图

[n] Write preview history ( y/n ?:help ) :

介绍:每次迭代会保存一张当前训练效果图,方便你查看模型进步效果,来判断是否已经训练到顶峰了。图片保存在model内一个以history结尾的文件夹中
推荐值:n  一般人看预览窗口的图就OK了。这个功能给做专业对比测试的用

19. 把模型和优化器放到GPU中使用

[y] Place models and optimizer on GPU ( y/n ?:help ) : ?

介绍:开启后模型权重会放在GPU上使用,减少GPU和内存通信,从而提高训练速度。显存足够就开启,显存不够就关闭
推荐值:y

20. 使用AdaBelief优化器

[y] Use AdaBelief optimizer? ( y/n ?:help ) : ?

介绍:使用最新的adabelief优化器作为训练用的迭代方法。模型收敛到最优状态的速度更快,效果更好。但会占用更多显存
推荐值:y

21. 使用学习率衰减

[n] Use learning rate dropout ( n/y/cpu ?:help ) :

介绍:学习率可以简单理解每次模型进化的步子大小。步子大了容易扯着蛋,走上歧途。步子小了可以更精准走到正确的地点,但速度就慢。
推荐值:前期不开,等你感觉画面很久没进步时开启。

22. 是否扭曲样本

[y] Enable random warp of samples ( y/n ?:help ) :

介绍:开扭曲后,给模型增大学习难度,让模型得到更高难度的锻炼,学成后就更牛逼。不开的话容易src和dst互相影响,让生成的src像dst。
推荐值:y 前期开,后期可关闭

23. GAN(生成对抗学习)的强度

[0.0] GAN power ( 0.0 .. 1.0 ?:help ) :

介绍:机器学习中有个很牛逼的算法叫GAN,能生成细节更丰富的图,眼睫毛都根根分明。但特别耗显存,高配玩家建议开启。开启后模型崩溃的概率会增大,一定要做好自动备份。
推荐值:低配0   高配0.1

24. GAN的感知域尺寸大小*

[24] GAN patch size ( 3-640 ?:help ) :

介绍:GAN每次去辨别的区域大小,越大效果越好,显存也占用越多。
推荐值:分辨率/8

25. GAN的模型宽度*

[0.0] Face style power ( 0.0..100.0 ?:help ) :

介绍:类似模型编码层宽度,越大效果越好,显存也占用越多。
推荐值:16  显存大可酌情增加

26. 脸部明暗色彩学习强度

[0.0] Face style power ( 0.0..100.0 ?:help ) : ?

介绍:让生成的人脸和原本的人脸在明暗色彩上更相似。
推荐值:初期不开,后期从0.001开始慢慢增加,不要开太大,0.01差不多了,这个很容易崩

27. 背景明暗色彩学习强度

[0.0] Face style power ( 0.0..100.0 ?:help ) : ?

介绍:让生成的背景和原本的背景在明暗色彩上更相似。学背景干嘛,后面都是要扣掉的,没必要,不用开
推荐值:0

28. 对src做变色处理

[none] Color transfer for src faceset ( none/rct/lct/mkl/idt/sot ?:help ) :

介绍:src素材通常光影不够丰富,开启这个参数后,可以每次对src素材做随机颜色变化,人为营造出各种光影色彩
推荐值:rct或lct

29. 使用梯度剪裁

[n] Enable gradient clipping ( y/n ?:help ) :

介绍:梯度是什么,可以理解为每次模型更新的变化剧烈程度。开启此参数后,会把模型剧烈的变化给限制住,能极大避免模型崩溃。不然很可能遇到一次很奇怪的数据,导致模型瞬间爆炸,崩成一片纯色
推荐值:y 强烈建议开着,不会多消耗显存

30. 使用预训练模式

[n] Enable pretraining mode ( y/n ?:help ) :

介绍:一体包软件在 _internal\pretrain_CelebA\faceset.pak 放了一份综合名人人脸数据,人种、光影、角度很丰富,开启此参数后,src和dst就会使用这份数据做为训练。让模型可以先做个通识教育。为你自己的特定数据学习打下良好基础。详细的预训练模型用法参见http://dfldata.xyz/forum.php?mod ... =160&extra=page%3D1
推荐值:n 我个人不推荐用这种方式做预训练。个人推荐你把杂七杂八的图直接放到src的aligned和dst的aligned文件夹中训练就行,效果一模一样,还方便随时增删数据。

最后给一套通用训练方式

强烈建议萌新用别人已经训练过的模型作为开始,可以节省大量时间

先开这组参数训练10-60W
face type : WF
random_flip : off
adabelief : on
eyes_mouth_prio : on
ct_mode: lct .

再开这个训练10-30W
learning rate drop:y

再关闭随机扭曲训练10-30W
random warp:n

最后开GAN训练10-30W
GAN poewer: 0.1

友情链接

deepfacelab中文论坛 DFLdata.xyz

【老鸟进阶】deepfacelab训练参数详解相关推荐

  1. YOLOv8训练参数详解(全面详细、重点突出、大白话阐述小白也能看懂)

    文章目录 全部参数表 示例代码 1. model ✰✰✰✰✰ 选择.pt和.yaml的区别 模型种类选择,是n,s,m,还是l,x? 2. data ✰✰✰✰✰ 组织数据数据目录 1. 指定训练数据集 ...

  2. 【老鸟进阶】deepfacelab合成参数详解

    看文本章,你将学会 1. 合成环节的高效操作步骤 2. 各合成参数的详细含义与作用 3. 推荐的合成参数数值 1.合成环节的高效操作步骤 当模型训练结束后,就可以开始把模型应用到实际图片中啦 合成前确 ...

  3. FastText 总结:文本分类、词向量训练、参数详解

    FastText:文本分类.词向量训练.参数详解 前言 - FastText 简介 一.FastText - 安装 1.1 - Github下载安装 1.2 - 编译器安装 二.FastText - ...

  4. sklearn 随机分割数据_sklearn.ensemble.RandomForestClassifier 随机深林参数详解

    随机森林是一种元估计量,它适合数据集各个子样本上的许多决策树分类器,并使用平均数来提高预测准确性和控制过度拟合.子样本大小由max_samples参数bootstrap=True (default)控 ...

  5. Lesson 8.3Lesson 8.4 ID3、C4.5决策树的建模流程CART回归树的建模流程与sklearn参数详解

    Lesson 8.3 ID3.C4.5决策树的建模流程 ID3和C4.5作为的经典决策树算法,尽管无法通过sklearn来进行建模,但其基本原理仍然值得讨论与学习.接下来我们详细介绍关于ID3和C4. ...

  6. Lesson 8.1Lesson 8.2 决策树的核心思想与建模流程CART分类树的建模流程与sklearn评估器参数详解

    Lesson 8.1 决策树的核心思想与建模流程 从本节课开始,我们将介绍经典机器学习领域中最重要的一类有监督学习算法--树模型(决策树). 可此前的聚类算法类似,树模型也同样不是一个模型,而是一类模 ...

  7. 系列 《使用sklearn进行集成学习——理论》 《使用sklearn进行集成学习——实践》 目录 1 Random Forest和Gradient Tree Boosting参数详解 2 如何调参?

    系列 <使用sklearn进行集成学习--理论> <使用sklearn进行集成学习--实践> 目录 1 Random Forest和Gradient Tree Boosting ...

  8. Java8-5-Function函数式接口进阶与默认方法详解

    Java8-5-函数式接口进阶与默认方法详解 上一篇我们快速的借助示例演示了stream api的简单应用,体会到了使用stream api对集合处理的便捷和其与函数式接口密不可分的关系,所以为了更高 ...

  9. Java Spring Data Redis实战与配置参数详解 application.properties...

    Redis作为开源分布式高并发缓存,使用范围非常广泛,主流互联网公司几乎都在使用. Java Spring Boot 2.0实战开发Redis缓存可以参考下面的步骤,Redis安装可以直接使用Linu ...

最新文章

  1. 重磅 | MIT启动IQ计划:研究人类智能,让全世界的机构共同合作
  2. java 向量上的坐标点_新高三知识点-点的平移公式
  3. mysql 执行计划 优化_执行计划
  4. boost::core模块实现分配构造throws
  5. mongodb中的副本集搭建实践(转自:http://www.cnblogs.com/visionwang/p/3290435.html)
  6. ESX 4 无法启动vSphere Web Access
  7. 主打轻薄长续航搭载骁龙730 联想Z6发布 1899元起!
  8. AndroidStudio_Base64图片的解码_编码_要注意的地方---Android原生开发工作笔记223
  9. js 正则表达式奇偶字符串替换_js正则表达式replace替换变量方法
  10. 数字化落后,工业就挨打!
  11. TextView内可以有多种样式吗?
  12. java聊天室源工程文件_socket实现java聊天室,公告等功能,前后端分离(附源码)...
  13. JAVA----数组(一)
  14. 英语动名词可以做什么句子成分
  15. 用Vue做一个音乐app
  16. 开关Switch系列:Switch修改滑块(thumb)和滑道(track)的颜色(一)
  17. P1247 取火柴游戏 (博弈论)
  18. 线性代数-思维导图(5)
  19. java窗口如何定时关闭_如何使用GreaseMonkey关闭定时弹出的窗口?
  20. 聊天室c语言程序,socket 多线程聊天室的实现(C语言)

热门文章

  1. JetBrains又出编程神器!
  2. EMV技术学习和研究(五)脱机数据认证之DDA
  3. rk3288芯片简介
  4. XCP学习笔记 ———— CTOs
  5. 安装Ubuntu Linux操作系统
  6. american主板网卡灯关机后还亮_七彩虹主板设置概述.pdf
  7. JavaScript中逻辑运算符的优先级
  8. power bi 雷达图_星载雷达与C波段地基雷达数据一致性个例分析 | 新文速递
  9. 一行代码搞定Android弧形卫星动画菜单(附Demo)
  10. 2020 人工智能金炼奖,容联荣登最强AI企业榜单