00:00
各位小伙伴们大家好,接下来我们给大家来看一下dream boss训练的实验过程,那在这个实验当中,我们会给大家介绍一下dream boss训练stableion的过程当中,如何去构建自己的数据集,如何来完成训练,然后如何来进行训练结果的保存。那在介绍dream boss训练stable division的实验过程之前,我们首先来看一下dream boss训练方法的代码结构,那前面我们给大家提到过dream boss的训练方法是由谷歌提出来的用于image的训练的,它并不是配育stableion,而后来user实现了dream bos的功能才适配了stableion,所以在这里实现dream bos去训练stableion的时候,我们就基于开源代码user来实现。在这个训练过程当中,我们的硬件资源需要显存在24GB以上,然后在这里实现的时候,我们在hi平台的ju特。
01:00
Lab当中去实现它整个代码结构如下所示,那首先呢,我们给大家来分析一下dream boss训练stableion的整个代码结构,好,那在这里我们前面给大家提到了,我去训练我的stableion的时候使用的是的开源代码,那这里首先第一个就是我们这个stable diion的开源代码,这里就是我们开源代码的一个实现。然后再接下来我有了开源代码,我要去训练我的模型,我是不是得有数据呀?所以第二部分我们的训练及数据是在train images当中,也就说你收集的数据要放置在train image这个文件夹当中,前面我们给大家介绍dream boss的训练过程的时候,我们说过在训练过程当中,我们的预训练模型也要产生一些图片,那预训练模型产生的图片呢?我们就把它放置在generate images当中,也就说我们的第三个文件夹当中用来存放模型生成的图片。好,那现在我们有了训练集图片,有了模型生成的图片,我就要去训练我的模型,那训练模型的时候,我是不是得有预训练权重啊?那预训练权重就是我们在这里这个SD模型with SD当中是我们的预训练模型,也就是说我们的第四个当中是模型权重是指的SD stableion呢,也就说它是一个。
02:28
Point,那在这里我们进行微调的时候是依赖于user这个开源代码的,那我们需要把weight,也就是说SD模型的权重转换成def user的模型权重,所以这里第五个就是我们的def user当中所需要的模型权重,那在这里进行转换的时候,我们需要从SD模型转换到if user模型的权重,那转换的方法在哪呢?就是convert SD two HF,这里面就是我们从第四个权重转换到第五个权重的时候,就需要我们使用convert SD to HF来实现,这是我们在这里进行格式转换。好,那大家看一下,我现在有了训练集的图片,有了训训练模型,我就可以去训练我们的模型,那训练模型的时候我们通过这个脚本来实现,也就说我们的第六步当中啊,就是要去实现我们的模型训练,当然在这个训练脚本当中,我们还会去调用。
03:28
从其他的一些训练方法,这个稍后我们的代码到中来给大家去说明一下,那在训练过程当中,大家想一下我是不是会产生一系列的结果,那在这里产生结果呢?我就放在了result当中,也是我们的第七部分,就是我们的训练结果,那这个训练结果当中有什么呢?哎,有最终的权重,那大家来想一下,在这里我们是使用Di user来进行训练的,所以这个权重是不是也是Di user的,那除了这个权重之外呢?在在这里还会产生一些图片,那这些图片就是指我在训练的这个过程当中,它的效果是什么样的,我们可以通过这个图片来进行处理好,那现在大家来想下这个权重是不是def user当中的权重啊,我这个权重要想进行预测的时候,我是不是得使用web UI来进行预测,所以这个权重要进行一下转换,那转换的时候就需要再从Di的形式转换成stable DeFion所需要的形式。所以在这里我们的第八。
04:28
课,也就说这个地方bank convert这两个P文件呢,就是从Di user的模型转换成我们SD的模型,那转换成SD模型之后,我就可以把它送到我们的web UN当中来进行预测,那这是我们在这里这整个的一个代码结构,那这个代码结构呢,我们对比着前面给大家介绍的时候,我们说过它的一个训练过程,我们对比着这个训练过程来给大家去分析一下每一部分是这个图当中的哪一块好,首先我们来看这一部分,大家看一下这是什么,是不是我们的预训练模型啊,那这个预训练模型大家想一下就对应着我们在哪里啊?预训练模型是不是就对应着我们在这里这第四部分,也就是说它就对我们这个图当中的第四块是我们的预训练模型,然后这时候我要怎么样,我要进行一下转换,那转换的时候呢,我需要从这个第四个转换成第五个,都是在这里来实现的,也就是我们的预训练模型,最终就是。
05:28
符合开源代码if user所需要的格式,好拿到这个预训练模型之后,然后现在大家来看一下,我要去训练模型,我是不是在这里要产生一系列的图片,那这些图片保存在哪里呢?这些图片就保存在generate images当中,也是我们的第三块,就是我们在这里模型生成的图片要保存在这个里面,好,模型图生成的图片保在在这,那除了模型生成的图片,我们在进行模型训练的时候,是不是还得自己去收集一些具有自己独立风格的图片,那这些图片我们就放在春images当中,也是我们的第二部分。
06:09
这是我们在这里这个训练集图片,好,大家看一下,在这里我就拿到了训练集图片,然后我的预训练模型,我就可以来进行相应的训练了,对吧?那训练的时候是我们在这一堆当中来完成训练了,那整个训练过程大家看一下,我就在哪里利用我们的训练脚本来完成就OK了,也是我们的第六块是在这个dream boss这个脚本文件当中来完成训练的,这就是我们的开源代码当中每一部分干架模型训练的时候它的一个对应过程,好,那这个对应过程我们就给大家去看这些,那下面呢,我们到我们的jupi lab当中来给大家去看一下这个结构,好,那我们先把这个截图给大家去掉,我们到我们的jupi lab当中来给大家去观察一下,首先我们来看第一个文件夹user user是什么?是不是我们的开源代码里面就是实现了dream bos的方式来训练stableion模型的。然后。
07:10
再接下来是generate image,那generate image大家看一下对应着我们哪一块,三这一块,也就说你的预训练模型生成的图片好,那下面我们来看一下generate images当中是不是一系列的图片,大家看,这就是我们没有利用当前的风格来进行调整的时候,模型生成的图片好,那这个图片我们就给大家看这些,然后接下来我们再回到这边来给大家去看下面的,那下面大家看一下result是什么,是我最后生成的图片,那这个我们到后面再给大家去看啊,然后下面我们来看train image,那train image是不是就对应着这俩,这是我们的群image,那这个image当中是什么呢?我们前面给大家说过,我们要训练一种穿格子衫的这样的风格,所以在这里大家看一下这些图片就都是什么呀。是不是一系列的格子衫呀,这是我们在这里这个训练集图片,你只要收集到这些格子衫的图片去对你的预训练模型进行微调就OK了,这是我们的训练集图片,好,训练集图片给大家看好之后,然后大家看一下啊,下面是两个wait,也是我们的四和五预训练模型,那在这里SD呢,是我们的SR,就是stableion模型所需要的权重格式,然后which HF当中是我们的user需要的模型格式,那这里呢,我们已经给大家转换好了,那在实际当中的时候,你需要从SD模型转换成user所需要的模型格式,然后再接下来大家看一下下面这里就是诶,从simplebleion转换成的时候,从转换成user所需要的模型格式的这几个转换脚板,好,那我们有了数据,有了预训练模型,我就可以去进行训练了。那训练的时候转。
09:00
好,在这个PV文件当中来完成,然后我们去设置参数的时候,是在这个文件当中来实现的,那训练的结果放在哪呢?训练的结果放在result当中,那result当中就是我们去训练的一系列的结果,那在这大家看一下,比方说我训练2000个迭代,那这2000个迭代每五个500个迭代会保存一下结果,大家看一下500个迭代的结果,1000个迭代的结果,还有1500个迭代的结果。那下面我们就给大家来看一下这个checkpoint last当中,也就说第2000个迭代的时候,它闪成的结果。好首先我们来看一下,这里我们有一个simple,那simple的时候我们来看啊,刚刚给大家介绍的时候,我们说result当中除了有权重,还有图片,那这个simple当中就是一系列的图片,大家看一下,现在我们是不是给我们这些人穿上了什么,哎,格子衫,这就是我们在这里训练了2000个迭代之后产生的结果,好,那现在我们看到了这个。
10:00
图片产生的图片,这个最后result当中啊,除了这个图片之外,大家看一下还有什么,这些就是我们的model model就是权重,那这些权重是谁去使用的呢?是diion开源框架来使用的,然后我要想用到stableion当中,我需要把它转换成CKPT,也是我们的CKPT是deion所需要的模型结构。好,那这个我们就给大家去看这些啊,然后我们回到这边来,大家看一下这个就是我们在使用dream boss来进行模型训练的时候的整个代码结构,代码结构我们就给大家介绍这些,那下个视频当中,我们给大家来看一下我们的训练及图片是如何来进行准备的,有哪些要求。
我来说两句