学习 > Windows10下的图像修复相关学习试错记录 (Deep Learning + GAN + EdgeConnect)
发布日期:2022-02-08 04:20:42
浏览次数:3
分类:技术文章
本文共 4560 字,大约阅读时间需要 15 分钟。
目录
一、参考资料汇总
- 在选择学习方向时看到过的方法或代码 2-1. 2-2. 2-3. 2-4.
二、准备工作
Anaconda的安装
- 需要注意的点: 1-1. 没有代理的情况下官网下载很慢,可以去下载Anaconda安装包。 1-2. 若先安装Python再安装Anaconda,安装选项中的Just Me/All Users应选择一致,否则可能会出现问题。 1-3. 由于默认不勾选添加环境变量,在Anaconda安装完成后,需要手动将Anaconda目录、Anaconda目录下的Scripts目录、Anaconda目录下的Library/bin目录添加至环境变量。环境变量添加路径:右击我的电脑>>属性>>高级系统设置>>环境变量>>编辑用户变量(Just Me)/系统变量(All Users),依次添加即可。 1-4. 添加清华conda镜像源的方法(永久添加): 无需激活环境,运行以下命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/conda config --set show_channel_urls yes
附注:;。
1-5. 添加清华pip镜像源的方法(临时添加,且可能不成功):pip install [要装的库名] -i https://pypi.tuna.tsinghua.edu.cn/simple
如果不成功,可以试试执行以下命令:
pip install [要装的库名] -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn pymysql
1-6. 安装中可能出现的问题:
1-6-1. 不装python,直接装Anaconda可能遇到的报错及解决方式: 遇到这个警告需要激活环境。 若在激活环境中继续报错: 那么运行以下命令:conda init
然后关闭cmd重开,运行以下命令:
conda activate [Anaconda目录]
其中[Anaconda目录]是Anaconda的安装目录。报错即解决。
1-6-2. 从外网下载库时遇到超时报错,可以设置超时时间:
pip --default-timeout=100 install -U [要装的库名]
另,这条指令我没验证过,但执行不会报错。
2.
我用的软件是Spyder,基本没太看这篇博文,但可以作为参考。 3.CUDA与cuDNN的安装
验证成功:
pytorch的安装
进去之后直接根据情况选择后生成命令,复制命令去cmd运行即可。 验证成功: 另,如果用官网给的命令安装太慢,可以去掉末尾的 -c pytorch,这是路径。 以及我当时使用的安装命令为
conda install pytorch torchvision cudatoolkit
虽然没有指明版本,但最后使用时没有出错。
三、程序学习
- 学习程序的选定 最终我选择了EdgeConnect即使用对抗边缘学习进行生成图像修复的方法进行学习。
- 生成对抗网络GAN的学习
- 安装程序所需依赖文件 要注意的是,conda似乎不识别“~=”这个符号,要用conda命令安装依赖文件只能手动把所有~=都改成=或者用pip命令安装(我采用的方法)。 此外,用pip安装对应依赖的时候我因为下载速度太慢出过一些奇怪的问题,如:
Building wheel for XXX (setup.py) … error
Command errored out with exit status 1: …
(XXX为安装的包名)
由于下载速度过慢产生的一系列问题有两种解决办法。
一是直接从把对应的包下下来,用cd进入下载文件的对应路径,用pip install命令直接安装对应的.whl文件。 如图所示: 这里要注意的是安装的顺序。如安装scipy、scikit需先安装numpy+mkl,因为scipy和scikit-image、scikit-learn等都是依赖于numpy+mkl这个库。 二是对pip进行代理设置。指令如下:pip install XXX --proxy="http":"IP地址:端口号"
(XXX为需要安装的包名)
查找本机IP地址和端口号的方法: 进入ie浏览器>>右击最上方空白边栏打开菜单栏>>工具>>Internet选项>>连接>>局域网设置>>代理服务器里面有地址和端口号 另,要采用这种方法必须是有代理的,即已经搭建过ladder… 此外,在这里要注意一下,EdgeConnect对python、tensorflow和numpy的版本有严格要求,当时我没注意直接用的python3.7,导致numpy版本过高,无法满足scipy的安装要求。但与此同时,适应高版本numpy的scipy因为去掉了某个库所以无法运行EdgeConnect程序,我最后是安装了scipy=1.4.1,没有把python卸了重装,刚好满足numpy和程序库的要求… 太惊险了,下次再跑这个程序应该装低版本的python,特此记录。 以及,如果不慎装了高版本的python,在安装依赖时直接去掉scipy,装完之后再安装scipy=1.4.1就可以了。 反正好像那个库可以有替代物,但我太菜了没法自己写,所以没有往那边探究。 另,在折腾卸库的时候如果出现“[WinError 5]拒绝访问”的问题,可以在指令后加上“–user”把权限提上去。 最后,能用pip还是用pip比较好,至少不用手动安装前置的包,会自动检测安装条件。 4. 训练/验证/测试文件集的下载和整理 该项目采用的是公开数据集。 因为我在自己电脑上跑,所以根本没考虑高分辨率即蓝框内容,下的是小图即红框内容。要跑出来的模型精度高的话自然建议蓝框。 那时候我也还没能搭好ladder,是请朋友帮我下好了之后我再解压整合的,一把辛酸泪。没什么用的解压纪念如下: 最终的数据集大小和文件个数如下: 5. 遮罩文件的下载和整理 该程序中提供的遮罩程序地址是,但我使用时发现他少一个关键的包mask_generator,且这个包并不是常规可以用过pip命令下载下来的。 我找不到这个包,只能放弃使用这个不规则遮罩程序,转而,这也是EdgeConnect里提供的遮罩下载办法。 下下来之后是这个样子的: 6. 把各种数据集准备好之后,其实到这一步程序已经可以运行了,但因为是在Windows上跑,所以还要修改一个参数,否则会报错: 解决这个问题我参考了,在此程序中应当改的是这个位置: 将num_workers改成0即可。 7. 关于开始训练模型之前的传参 我参考了。 具体来说,spyder里传入可变参数(命令行参数)的方法是: 运行>>单文件配置>>一般设置>>命令行选项>>输入格式是:–可变参数 参数值 例如,我在运行flist.py文件生成文件集列表时,传入的参数是:--path J:\python\data_set\train_256 --output J:\python\file_list\train_list
其含义为:将path指向路径下的所有图片文件(包括子文件夹里的内容)名称和路径取出,生成的列表文件train_list存储在output指向的路径中。
开始训练模型之前,要分别生成9个flist文件,并将其分别存入这些文件夹中: 8. 模型训练时传入的参数:--model 1 --checkpoints J:\python\temp\airfield
即在训练模式下,使用airfield文件夹内的数据集进行训练。
这些参数在ReadMe里讲得很详细,可以对照着往里传,这里不再举例。 在这里我其实出现了硬件问题: 电脑显存不足。这个完全没办法,我后来租了个RTX 2080Ti勉强跑了下来,不过Windows下果然限制还是颇多,以后有机会试试在Linux下用多台GPU联跑,速度应该会快很多。 我使用的GPU参数如下: 然后程序就成功开始跑了: 参数含义: ETA:预计还有多长时间训练完毕 epoch:所有的数据遍历次数 iter:batchsize输入网络次数 关系:(iter*batchsize)/sum_photos=epoch precision:精确率(从预测结果角度看,有多少预测是准确的) recall:召回率(确定了正类被预测为正类图片占所有标注图片的个数) precision与recall都是越高越好 precision与recall的解释在9. 由于时间原因,我无法跑完整个训练过程(预计耗时一个月),所以只能通过更改最大遍历次数的办法来提前中断训练,得到的模型效果很差,还不如原程序给的ReadMe直观。
修改位置: 我最后得到的测试结果: 参数含义: psnr:峰值信噪比 mae:平均绝对误差 显然,结果并不尽如人意。四、总结
综上所述,可以把跑程序的过程大概归纳为以下几个步骤(指令):
conda create -n XXX python=3.7 1.pip install -r requirements.txt --proxy=“http”:“127.0.0.1:25378” 2.pip install scipy==1.2.1 --proxy=“http”:“127.0.0.1:25378” 3.pip install torch-1.4.0-cp37-cp37m-win_amd64.whl 4.spyder 5.C:\Users\xdtech/.torch\models 6.–model 1 --checkpoints M:\auto_upload_20200407225024\20200407\temp\airfield 7.pip install torchvision --proxy=“http”:“127.0.0.1:25378” 8.pip install -U numpy --proxy=“http”:“127.0.0.1:25378” 代理十分有必要,GPU影响也十分重大。虽然磕磕巴巴把程序跑了出来,但最后的效果并不理想,以后如果有机会再跑一次,或许能得到不错的成果。转载地址:https://blog.csdn.net/Silenor/article/details/108325600 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月05日 12时02分05秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
HDU4985
2019-04-26
数据库索引
2019-04-26
HDU4986 Little Pony and Alohomora Part I
2019-04-26
二分图匹配
2019-04-26
二分图匹配练习题
2019-04-26
链式前向星
2019-04-26
HDU4990 Reading comprehension
2019-04-26
指针数组和数组指针
2019-04-26
dijkstra求次短路径
2019-04-26
欧几里德与拓展欧几里德定理
2019-04-26
poj2115C Looooops 拓展欧几里德
2019-04-26
除法取模和逆元
2019-04-26
HDU5019Revenge of GCD
2019-04-26
中国剩余定理
2019-04-26
组合数取模
2019-04-26
线段树模板
2019-04-26
poj3264 Balanced Lineup——线段树
2019-04-26
RMQ算法
2019-04-26
树状数组
2019-04-26
度度熊与邪恶大魔王——dp
2019-04-26