Activating More Pixels in Image Super-Resolution Transformer
论文:https://arxiv.org/abs/2205.04437
代码:https://github.com/XPixelGroup/HAT
运行环境
-
PyTorch >= 1.7 (Recommend NOT using torch 1.8!!! It would cause abnormal performance.)
-
BasicSR == 1.3.4.9
提示:以下是本篇文章正文内容,下面案例可供参考
一、安装
pip install -r requirements.txt
python setup.py develop
二、测试
1.准备测试数据
在./options/test目录下修改测试文件路径
dataroot_gt:放高分辨率测试图片路径
dataroot_lq:放低分辨率测试图片路径
2.下载预训练模型
下载预训练模型有两种方法:
1.Google Drive
2.百度网盘:https://pan.baidu.com/s/1u2r4Lc2_EEeQqra2-w85Xg(密码:63p5)
3.运行指令
python hat/test.py -opt options/test/HAT_SRx4_ImageNet-pretrain.yml
三.训练
官方给出的训练指令:
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 --master_port=4321 hat/train.py -opt options/train/train_HAT_SRx2_from_scratch.yml --launcher pytorch
单个GPU训练指令:
python hat/train.py -opt options/train/train_HAT_SRx2_from_scratch.yml
问题
1.KeyError: “HATModel“ is not in the models registry
import hat.archs
import hat.data
import hat.models
上面的是原本的代码,但是运行中不能引用相应的路径,就改成了以下这种引用
import sys
sys.path.append(r'hat/archs')
import sys
sys.path.append(r'hat/data')
import sys
sys.path.append(r'hat/models')
运行中出现了KeyError: “HATModel“ is not in the models registry,将models相关代码改以下这种,问题最终解决。
from hat.models import *
2.训练时数据集问题
训练的数据集高分辨率图片要与对应的低分辨率图片命名