- 磊 版权: 本文由【墨理三生】原创、在CSDN首发、如需转载,请联系博主
- ❤️ 如果文章对你有帮助、欢迎一键三连
文章目录
- 该博文仅对 meta-SR-Pytorch 代码,测试部分进行验证,记录相关问题排错
- 磊基础信息
- 环境搭建
- 预训练模型进行测试
- 注意事项
- CPU 推理测试
- 生成效果如下
- 该博文测试代码分享
- 可能遇到的重点报错
- `ModuleNotFoundError: No module named 'skimage'`
- `ModuleNotFoundError: No module named 'torch'`
- `RuntimeError: CUDNN_STATUS_EXECUTION_FAILED`
- `AttributeError: module 'scipy.misc' has no attribute 'imsave'`
- 欢迎补充
磊基础信息
- meta-SR: A Magnification-Arbitrary Network for Super-Resolution(CVPR2019)
- meta-SR:用于超分辨率的任意放大倍数网络
- https://arxiv.org/pdf/1903.00875.pdf
- https://github.com/XuecaiHu/meta-SR-Pytorch
环境搭建
- 服务器:ubuntu1~18.04 Quadro RTX 5000 16G
- CUDA版本 V10.0.130
- 注意版本,这里安装 pytorch=0.4.0 和 torchvision==0.1.6
- pytorch 的安装命令 官方链接
conda create -n torch04 python=3.6.6 conda activate torch04 conda install pytorch=0.4.0 -c pytorch # 必须指定安装版本 -- 否则会自动升级 torch 版本 pip install torchvision==0.1.6 pip install matplotlib pip install scipy pip install opencv-python pip install tqdm pip install scikit-image
预训练模型进行测试
注意事项
- 设定参数 --n_GPUs 1 时,意味着需要使用 GPU 进行模型加载和推理测试
- 需要安装正确的 pytorch【gpu】 和 torchvision 版本 | Cuda 和 Cudnn 版本也需要适配
- 猜测 合适的 Cuda 版本 应该是 Cuda 9.0 系列版本,有兴趣展开训练,可自行尝试
- 该代码属2019年,研究价值有限,因此不再继续展开训练部分和代码解析
我这里的 Cuda 版本是 10.0 ,只进行该代码的测试部分,因此 使用 CPU 进行 测试推理即可
对 model_1000.pt 进行 CPU 测试推理效果如下
python main.py --model metardn --ext sep --save metardn --cpu --batch_size 1 --test_only --data_test Set5 --pre_train ./experiment/metardn/model/model_1000.pt --save_results --scale 1.5 # 输出如下 [1.5] ./benchmark/Set5/HR ./benchmark/Set5/LR_bicubic 5 Making model... Loading model from ./experiment/metardn/model/model_1000.pt load_model_mode=1 evaluation: [Set5 x1.5] PSNR: 41.472 SSIM: 0.9785 (Best: 41.472 @epoch 1) Total time: 54.99s 生成效果如下
测试代码 + model_1000.pt 分享 【本次测试,没有任何代码修改】
# 分享链接,有序自取,请勿外传 链接:https://pan.baidu.com/s/1rcVj4OJZqyWBy3MJPCQ9Ng 提取码:1011
可能遇到的重点报错
ModuleNotFoundError: No module named 'skimage'
# 解决方法 pip install scikit-image ModuleNotFoundError: No module named 'torch'
# 执行该命令 python main.py --model metardn --ext sep --save metardn --n_GPUs 1 --batch_size 1 --test_only --data_test Set5 --pre_train ./experiment/metardn/model/model_1000.pt --save_results --scale 1.5 # 报错如下 Traceback (most recent call last): File "main.py", line 1, in RuntimeError: CUDNN_STATUS_EXECUTION_FAILEDimport torch ModuleNotFoundError: No module named 'torch' # 遇到这个问题,其实 torch 已经安装成功,只是环境暂时发生错乱 # 这里通过 进入 Python 交互 来查看当前使用的 Python 解释器版本即可发现 nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2018 NVIDIA Corporation Built on Sat_Aug_25_21:08:01_CDT_2018 Cuda compilation tools, release 10.0, V10.0.130 # 重新 activate 该环境,发现 Python 指向正常,该错误消失 conda deactivate conda activate torch04
这个问题,是因为当前 Cuda 版本 和 Cudnn 版本 不满足 pytorch=0.4.0 需求
盲猜,安装 Cuda 9.0 和 Cudnn7.x 能够解决这个问题,这里没有进行实测,如有同学对此有执念,欢迎验证之后,进行补充
python main.py --model metardn --ext sep --save metardn --n_GPUs 1 --batch_size 1 --test_only --data_test Set5 --pre_train ./experiment/metardn/model/model_1000.pt --save_results --scale 1.5 # 报错如下 [1.5] ./benchmark/Set5/HR ./benchmark/Set5/LR_bicubic 5 Making model... Loading model from ./experiment/metardn/model/model_1000.pt load_model_mode=1 evaluation: Traceback (most recent call last): File "main.py", line 18, inwhile not t.terminate(): File "/home/ml/project/project21Next/yoloDir/imgSR/meta-SR-Pytorch-0.4.0/trainer.py", line 269, in terminate self.test() File "/home/ml/project/project21Next/yoloDir/imgSR/meta-SR-Pytorch-0.4.0/trainer.py", line 218, in test sr = self.model(lr, idx_scale,scale_coord_map) ... File "/home/ml/anaconda3/envs/torch04/lib/python3.6/site-packages/torch/nn/modules/conv.py", line 301, in forward self.padding, self.dilation, self.groups) RuntimeError: CUDNN_STATUS_EXECUTION_FAILED
- 最简洁的解决方法,换用 CPU 进行推理测试,命令如下
python main.py --model metardn --ext sep --save metardn --cpu --batch_size 1 --test_only --data_test Set5 --pre_train ./experiment/metardn/model/model_1000.pt --save_results --scale 1.5 AttributeError: module 'scipy.misc' has no attribute 'imsave'
- 遇到这个报错,两种思路
- 一:修改代码中相关函数名字为当前版本函数名
- 二:降低 scipy 到合适版本
简单起见,这里暂采用 降版本的方式
# 使用 conda 搜寻可以安装的版本
conda search scipy
Loading channels: done
# Name Version Build Channel
scipy 0.19.1 py27_nomklhda24f63_3 pkgs/main
scipy 0.19.1 py27h1edc525_3 pkgs/main
scipy 0.19.1 py35_nomklh614202b_3 pkgs/main
scipy 0.19.1 py35ha8f041b_3 pkgs/main
scipy 0.19.1 py36_nomklh59deb5f_3 pkgs/main
scipy 0.19.1 py36h9976243_3 pkgs/main
scipy 1.0.0 py27_nomklhc4f40eb_0 pkgs/main
scipy 1.0.0 py27hf5f0f52_0 pkgs/main
scipy 1.0.0 py35_nomklhb72a26a_0 pkgs/main
scipy 1.0.0 py35hcbbe4a2_0 pkgs/main
scipy 1.0.0 py36_nomklh9d91e6a_0 pkgs/main
# 卸载当前版本
pip uninstall scipy
Found existing installation: scipy 1.5.4
Uninstalling scipy-1.5.4:
Would remove:
/home/moli/anaconda3/envs/torch04/lib/python3.6/site-packages/scipy-1.5.4.dist-info/*
/home/moli/anaconda3/envs/torch04/lib/python3.6/site-packages/scipy.libs/libgfortran-ed201abd.so.3.0.0
/home/moli/anaconda3/envs/torch04/lib/python3.6/site-packages/scipy.libs/libopenblasp-r0-085ca80a.3.9.so
/home/moli/anaconda3/envs/torch04/lib/python3.6/site-packages/scipy/*
Proceed (Y/n)? y
Successfully uninstalled scipy-1.5.4
- 具体安装命令为
conda install scipy=0.19.1
欢迎补充
没有具体去分析这篇论文哈,任意倍数放大,似乎也还是一个不错的方向



