00:00
各位小伙伴们大家好,在上个视频当中,我们给大家去介绍了Laura训练stableion的时候,我们如何去配置预训练模型,如何来配置我们的数据及路径,以及网络配置的相关内容,那接下来我们来给大家去看一下在LA训练过程当中,与训过程相关的一些参数的配置,那在这里我们主要配置了有图像的分辨率,也就是图像的大小,图像的批次大小,就说每次送到网络当中是几幅图片,还有最大的训练轮次以及模型保存的频率,也是说每隔几个轮次我来保存一下模型权重,以及我们最重要的训练模式,那这个训练模式是指的我在产生这个支路的时候,是产生整个stableion的支路呢?还是产生其中某一部分,比如说网络或者是文本编码器,它的支路呢,诶这是通过训练模式来进行设置的,那下面我们就通过代码。
01:00
来给大家去分析一下这些参数哈,我们在这给大家截图一下。首先我们来看模型训练相关的参数,那在这第一个就是我们的图像分辨率,那这个图像分辨率哈,指的是我在训练过程当中送到网络当中的图片的宽和高,当然还包括我们产生的图片的宽和高,那在这里进行设置的时候,一般情况下我们都会设置成512乘512的,但是现在我们也可以不设置成正方形,也说宽高是不一样的,也可以,但是要求什么呢?要求你的宽高必须都是64的倍数,这是我们在这里这个图像分辨率设置的时候,大家要注意一下。那第二个参数呢,就是我们的bench size,也就是说我每次送入网络当中的图像的个数啊,那你设置的越大,那它对显存的要求就会越大,如果设置的比较小,那对显存的要求也会小一些,那再接下来就是设置的训练轮次。
02:04
那这个训练轮次啊,就是我全部数据送入到网络当中,一共要训练多少轮,那在这里我们是设置了十轮,然后在这个训练过程当中,我要保存我的训练参数,也说模型权重,那在这里保存的时候,我是多少个轮次来保存一下呢?就通过下面这个参数来进行设置,也就是说我们现在是每隔两个轮次来保存一次模型,那现在如果有十个轮次的话,大家来想一下,我会保存几次模型,是不是就五次啊?然后就是每隔两次来保存一次模型就OK了,这是我们在这里模型训练相关的参数,好,然后下面我们再来看一下对训练模式的一个设置哈,那训练模式的时候,我们刚刚说了,这个训练模式是指你在使用lower去训练我们的stable模型,你去产生支路的时候,是产生整个模型,也就说我们这里有版本编码器啊,有U耐啊,有我们的V啊,是整个过程的这样子的一个支路,还是。
03:05
是产生我们某一部分的支路,比方说我只产生unit这一部分的支路,那我们通过训练模式这一部分来给它进行一下设置,那大家看一下我们的第一个参数是,诶,只训练unit网络,那在这里如果你把它设置为非零值,那我就只去训练我们的unit网络,那如果我只训练网络,大家想一下我的文本编码器,我的vae是不是就不再训练了?那这时候我产生的支路,大家想想是不是比产生整个网络的时候那个支路要小?所以这时候如果你只去训练unit的时候,会减少对显存的使用,那虽然减少了显存的使用,大家想一下它会牺牲什么呀?牺牲你最后训练出来的模型效果,也就说你最终可能产生图像的效果呢?诶,有可能会差一些,这是我们在这里这个啊,这是纯unit only,就是你是否只训练我们的unit网络,好除了这个之外,我们还可以设置什么呢?可以设置一。
04:05
的文本编码器,也说在这里如果你只去训练文本编码器的话,你就把它设置为一就可以了,那这时候我们会只去训练我们的文本编码器,那对于文本编码器来讲,我们在这里还有就是你在第几步的时候去停止训练文本编码器,这是我们在这里这个啊,停止训练文本编码器的部署,我在这里进行指定,那最后呢,我们在这里还有噪声和标记的一个处理,大家想一下,我们在这里生成的图片的时候,是不是受你训练集图片的一个影响,所以在这里我们希望我们在训练集当中的图片呢,尽可能的多样性,包含不同亮度的这样的图片,那这个noise,呃,Offset就是来设置这个噪声偏移的,在训练集当中来添加噪声偏移来生成什么样呢?比方说非常暗或者是非常亮的图像,那这时候我去训练的时候,我的模型就接触过这样暗的和亮的图片,那它生成出来的图片也可以。
05:05
是and的或者是亮的,那在这里我们设置为零,是没有去启用这个噪声偏移,如果你想启用它的话,那我们的参数一般情况下设置为0.1就可以了。好,下面再看这个,这个呢就是我是否去随机打乱这个标记,如果要去打乱这个标记的时候,你要保持这个标记多少不变,也就说保持前几个标记不变,那你就在这里设置为几就OK了。然后最后一个是我们的信噪比,也就说我在添加噪声的时候,我的最小信噪比是多少,那这里我们的默认值是零,这是我们在这里设置的这些关于模型训练的参数,而大家想一下,我在模型训练过程当中,我是不是还得去设置我的学习率,设置我的优化方法呀?所以下面我们就给大家来看一下,在我们这里进行训练的时候,我同样要去设置一下学习力和我们的优化方法。那在这里设置学习率的时候,大家看我就设置的有什么呢?诶整体的一个学习率,比如说整个模型的学习率,还有unit部分的学习率,以及文本编码器的学习率,那这些你都可以选择不同的,那选择好学习率之后,我的学习率我是不是可以随着训练的进程,然后呢不断的减小,所以在这里我们还可以去设置一下我们的学习率衰减,使用相应的衰减方式来进行。
06:26
学习率的调整,那在这我们要设置的时候,比方说我们设置一下什么,哎,学习率预热诶,余弦退火这些内容我们都可以来对学习率进行调整,我们还可以去设置一下我们的优化器,那在这里的优化器我们就是用在Adam,当然你也可以选择其他的来进行优化啊好,那下面我们就在代码当中来给大家去看一下这些内容,那在这里我们设置的有我们的学习率,我们来看一下这些学习率这一部分的内容,那总体的学习率呢,我们就设置的是十的四次方啊,它控制整个模型的一个学习,然后下面是unit网络的学习率啊,这个呢也是十的负四次方,然后再接下来就是我们的文本编码器的学习率是十的负五次方,然后还有我们在这里这个学习率衰减策略,那现在大家看一下我们在这里这个衰减策略是什么?是cos形式的衰减,也就说它会按照Co的方式来进行学习率的退火,当然你也可以选择其他的方式,比如说你的。
07:27
线性的呀,或者是我们在这里这个叫做常数的都可以,那再接下来是我们设置的学习率预热的步数,那这个学习率预热的步数是指我在刚一开始训练我的网络的时候,我的学习率比较小,然后慢慢的上升到我们的十的负四次方就可以了,然后在这我们还设了一个参数是什么呢?是学习率退火的重启周期数,当你的呃,学习率衰减设置为余弦退火的方式的时候,我们这个才有意义啊,才能够去生效,这是我们在这里这个学习率设置的时候,那除了学习率设置,我还要指定一下我们的优化器,那在这里我们就使用的adamw巴比特的这个,那除了这个之外,你还可以选择什么Adam wadam这一系列的优化器,你都可以来进行选择,来训练我们的网络,好,那这些参数这里啊,我们就在讲义当中给大家介绍这些,下面我们就到我们的朱lab当中来给大家去看一下,那大家看一下在这里我们就是诶训练相关。
08:27
的一些参数,我们图形的大小,那这里就包括刚刚给大家区看到的训练集当中所有的图片,我们已经处理成了512乘512的大小,当然你在这里如果设置成其他的,比如说你生成了768乘768,那这时候你也需要把你在训练集当中的图片都制作成768乘768的,然后接下来是训练模式,那在这里大家看一下,我们并没有开启仅训练unit,或者是仅训练文本编码器,所以在这里我们整个模型都会被进行微调,然后下面就是我们的噪声和标记处理啊,在这里面呢,我们并没有去添加噪声,然后再看一下就是我们的学习率的设置,那学习率设置的时候,大家看在这里我们就整体的学习率unit的,然后文本编码器的以及学习率的衰减和预热的方式都在这里设置好了,最后呢,去设置了一下我们的优化器,这是我们在这里这个优化器的一个设置好,那到这这些参数我们就给大家介绍完成了,我们把视频暂停一下,下一个。
09:27
视频当中呢,我们给大家来介绍一下网络训练过程当中输出设置,还有这个恢复训练设置的相关内容。
我来说两句