目录
配置环境--准备工作:
训练:
更改文件:
开始训练:
测试:
由于个人精力有限,本篇文章知识简明扼要的根据自己踩过的坑进行总结复盘,内容中,我会阐述正确的做法,有问题可以留言欢迎一起讨论,但是踩过的坑在debug的时候就没有截图保存,所以不会图文并茂。
由于利用Anaconda安装环境时,实在是冗余的升级步骤太多(比如这个环境需要的python时3.6,但是在安装pytorch1.1.0时就会强制要求升级到3.7,不然就安装不了,二者不可兼得的状态),所以我舍弃了Anaconda,直接用virtualenv虚拟环境。
我用的是实验室服务器的虚拟环境(virtualenv),根据源代码的实验环境要求,自己在虚拟环境中按照需要进行安装。该实验源码中写的是用GPU双卡训练,其中所需要的文件都是通过FileZilla上传的。
配置环境--准备工作:首先利用virtualenv创建dasr文件夹,输入命令:virtualenv dasr
根据需要的python创建对应的虚拟环境:virtualenv -p /usr/bin/python3.6 dasr
激活环境:source dasr/bin/activate
此时已经进入环境,如果像判断python是否符合要求,可以命令行输入python查看其版本。
接下来安装其他所需要的包。
由于使用官网提供的pip3安装torch命令,会安装和cuda匹配版本的torch,所以此处不用此方式,(服务器的cuda=11.1,一般可以向下兼容,所以我安装了符合环境需要的10.0,具体根据下边链接自行查找)
而是通过https://download.pytorch.org/whl/torch_stable.html安装对应版本的whl文件,注意,以cu开头的是针对GPU的,有700多M,需要等待一会。
下载完文件之后就传到服务器上,之后进行安装:pip install xxx.whl
其余的包利用pip就轻松加愉快的很快装完,一般都是requirement already satisfied。
训练: 更改文件:首先按照readme所说创建数据集:
dasr是我的虚拟环境文件夹,训练时在此环境下进行。DASR-main时源码,datasets时数据集,三个同级。
DF2K中原本是没有这个bin文件的,根据源码做法,
没有也会自动给你创建,不过在训练的导入工作时,可能需要点时间。
接下来更改main.sh、main.py和train.py文件。
main.sh:(注意这里只写到datasets即可,后边的DF2K/HR源码会自动给你补齐)
在Linux环境下,执行.sh文件时,#cmd /k需要删掉,否则会报错。
main.py和train.py:
由于是多卡训练,所以在这两个文件中都加上这样两句话:
import os
os.environ['CUDA_VISIBLE_DEVICES'] = "2,3"
注:2、3是我的服务器卡号
将 python3.6/lib/site-packages/numpy/lib/npyio.py 文件中的allow_pickle=False改成True,至于为什么默认会从True设置成False,个人想是安全性和跨平台存储的原因。为了加载对象数组,改为true。
开始训练:在训练前,创建一个session对话,这样防止在关闭终端或者意外情况下终止训练。
进入所创建的session后想要返回主终端,命令:CTRL+A+D
如果要杀掉session,则进入当前session后,执行exit命令。
在所创建的session中,激活dasr环境,进入到DASR-main目录下,执行:sh main.sh
测试:实验进行了两个600epoch训练,一次是x2、x3、x4的超分,只用了各向同性高斯模糊核,没有叠加噪声,另一次是x4的超分,用各向异性高斯模糊核、噪声。跑了差不多四天。
训练的结果都保存在了experiment目录中,训练时没有PSNR、SSIM,测试的时候会保存。
没改实验默认的设置,一个测试是在大小为1.2的各向同性的高斯模糊上,set14,x2:32.374(论文:32.78).另一个是在噪声为10的x4,各向异性高斯模糊上:25.395
以下是数据图:
在quick_test上的测试:
原图:
X2 :
X4:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)