学习率是神经网络训练过程中的关键超参数,用于控制模型权重更新的幅度。
正常区间方面:
学习率的影响:
学习率的调节基本不会影响显存的使用。
在 LORA 模型训练中:
学习率可以类比为学习一门技能的速度,速度过快可能会错过细节或理解不深刻,速度过慢可能会浪费时间或失去耐性,因此其大小需要根据具体情况进行调整,以获得最佳学习效果。
并行数量:代表了AI在同一时间学习多少张图片。数值越大,训练速度越快,内存占用越大,但收敛得慢。反之,数值越小,训练速度越慢,内存占用越小,但收敛得快。以512*512的图片为例,显存小于等于6g,batch size就老老实实地设置为1就行了;如果显存为12g以上的话,batch size就可以设置为4或者6。这里提到一个收敛的概念,就是说你最后生成的图片,和原图越像,就说明收敛得越好。训练速度越快的话,就像一个人在快速地翻书,虽然很快翻完了,但是未必能全记得住,所以并不是训练速度越快越好。在一般情况下,我们增加并行数量,同时也会增加一些循环次数,让AI多看几遍书。3质量设置主要是用来影响产出LORA的一个最终质量,当然最终lora的好坏还需要通过XYZ去测试和看实际的loss值。学习率指的是AI学习图片时的效率,学习率太高会出现过拟合,图片和素材太相似;学习率低会出现不拟合,图片和素材没关系。1e-4是一种程序里的数学表达,实际上就是1除以10的4次方,即:1e-4=1/10000=0.00011e-5=1/100000=0.00001
学习率-训练对新模型的影响力。较高的学习率需要较少的训练步骤,但容易导致过拟合。建议在0.000006到0.00000175之间选择。是什么学习率(Learning rate)是神经网络训练过程中的一个关键超参数,它主要用于控制模型权重更新的幅度。学习率就像是炒菜中的火候控制,如果火候太大,容易糊锅;如果火候太小,又容易导致食材不熟。调节影响学习率越大,权重更新幅度越大,训练速度越快,越容易过拟合,可能更不稳定,在局部最优解附近震荡,无法收敛。学习率越小,权重更新幅度越小,训练速度越慢,越容易找到最优解,相对更稳定,有可能陷入局部最优解爬不出坑。学习率的调节基本不会影响显存的使用。调节策略学习率的调整应该是动态的,一开始可以考虑使用一个相对大的学习率跨过小水坑,然后再用小的学习率慢慢学,可以重复这个从大变小的周期,也可以采用学习率调度器(设定好的策略),例如余弦退火+重启策略。
*学习率这块如果不理解可以不做修改lr:学习率,用来控制模型每次更新参数时的步长大小。unet_lr:基本跟lr数值一样即可。text_encoder_lr:文本编码器的学习率。需要通过实践具体情况来测试更改lr_scheduler:学习率调度策略,用来控制模型学习率的变化方式。这里提供了五种可选的调度策略,分别是:“linear”,“cosine”,“cosine_with_restarts”,“polynomial”,“constant”,“constant_with_warmup”。基本只用“constant_with_warmup”lr_warmup_steps:热身步数,仅在学习率调度策略为“constant_with_warmup”时需要设置,用来控制模型在训练前逐渐增加学习率的步数。一般不动lr_restart_cycles:余弦退火重启次数,仅在学习率调度策略为"cosine_with_restarts"时需要设置,用来控制余弦退火的重启次数。一般不动(这个学习率可以类比为我们学习一门技能的速度,如果学习速度过快,我们可能会错过一些细节或者理解不深刻,类似地,如果学习速度过慢,我们可能会浪费时间或者失去耐性。因此,学习率的大小需要根据具体情况进行调整,以获得最佳的学习效果。)拓展内容:黄金学习率计算方法(玄学):