玩了两天sd,试着训练了下hypernetwork,记一下经验
这个月电费爆炸中
我不懂炼丹的原理,经过朴素的实验得到以下结论,可能还是有些差错的
样本集
尽量高质量的样本集,30 - 100张为宜,对于比较独特的画风可能要多一些
样本的质量比数量重要,避免出现不想要的元素(比如你不是要炼符文的就别在样本集里出现文字)
网络创建参数
网络结构
网络结构越大越好 大即是美 多即是好
同样的样本集,学习率:
1, 2, 1
在训练至10000步时才初具人型
1, 3, 3, 1
在训练到3000步时就初具人型
1, 4, 6, 4, 1
太大了显卡经常爆显存
^ 杨辉三角好看吧
激活函数
linear就够用了
relu/leaky relu和linear差别不大
mish似乎效果好一些
dropout
据说能抑制过拟合,但我大概没实验到过拟合的程度,所以没感觉
跨层连接
还没试出明显差别
训练参数
学习率
调高些轻松见古神或者loss NaN,建议调到5e-6及以下,如果能的话,上AdamW优化学习,能省一些时间
日志
如果网络结构调大了,每次保存的points就能上G,那么你的硬盘就要吃紧了,我是整了个2T垃圾盘来存放它们,所以问题不大,建议根据情况适当调大备份间隔(feature request:AdamW保存)
但生成图可以搞频繁一些,浪费的时间不会很多