因为MMediting更新了版本,整体的变化比较大,导致之前的一些介绍操作的帖子不太适合新手入门,这里以作者自己对BasicVsr++模型进行测试和训练的过程,写一下具体的操作过程。
(1)找到模型
首先在configs里面,我们可以找到各种模型的配置文件,我们这里选择以resd4为对象的配置文件。
(2)模型的继承
这里的第一句代码表示了这个文件继承了什么文件,这里我们可以看到它是继承了之前的basicvsr文件。
同样我们进入basicvsr文件,这里可以看到它继承了两个文件,第一个是负责打印日志的文件,第二个是关于basicvsr测试的文件。这里我们可以看到mmediting1.x和0.x的区别,在0.x中训练,验证,测试都是写在一个函数下面的,而1.x将测试部分的数据装载和设置都迁移到了这个训练配置文件中,然后让训练验证文件去继承它。
(暂时不知道为什么它是这么设计的,主要是在运行测试代码的时候,要求我准备三个不同的数据集,但是在训练代码中,只有REDS数据集的配置,并没有找到其他数据集,后面才看到它是单独继承了一个测试配置文件)
进入测试配置文件可以看见配置文件对三个数据集进行了设置,如果我们只是为了测试单个数据集的效果在dataloader里面只保留想要测试的数据集就行了。
(3)模型的测试
按照官方给出的标准测试指令进行测试,下图就是测试的结果了。效果还是挺好的
在保存的测试结果里面,我们可以看到日志,参数配置,和图片最后超分的结果,这里给出同一帧位置图像处理前后图片的分辨率,可以看到第一张图为原图片,第二张图为超分之后的结果,可以看出来明显第二张细节更清晰了。
效果还是非常的明显的。
(4)模型的训练
模型的训练部分还是比较简单的,直接按照官方给出的参考代码并且按照官方的数据集设置,准备好数据集后,就可以进行训练了。
这里值得说的是REDS数据集,在mmediting里面它将原数据的训练和验证两个部分的数据进行了拼贴,然后通过一个参数文件(这些按照官方文件给的参数文件生成代码进行生成就好了)控制那一段数据是训练,哪一段是验证数据,这样可以便于后面的测试。
首先按照默认参数配置进行测试,可以看到显存的占用率不算高,可以进一步压榨显存(运行一轮要5天?)。
通过调整参数,尽可能的去压榨GPU,让GPU满载。(但是这里如果将batch_size翻倍,显存使用率就翻倍了,但是程序运行的时间更得更慢了,这里不知道为什么)