【代码实践】HAT代码Window平台下运行实践记录

HAT是CVPR2023上的自然图像超分辨率重建论文《activating More Pixels in Image Super-Resolution Transformer》所提出的模型。本文旨在记录在Window系统下运行该官方代码(https://github.com/XPixelGroup/HAT)的过程,中间会遇到一些问题,供大家参考。

环境安装

参考官方代码,进行环境安装

pip install -r requirements.txt
python setup.py develop

代码运行

这里我在遥感图像的数据集UCMerced上进行重新训练,需要首先在./options/train文件夹中设置对应的yaml文件,然后执行训练过程:

python hat/train.py -opt options/train/train_HAT_SRx4_UCMerced_from_scratch.yml

开始训练了
在这里插入图片描述

遇到的问题

问题1: UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xae

由于相关开源代码都是在linux下编写和调试的,放在window系统中会出现不少问题,如下读取yaml文件时遇到的问题:
在这里插入图片描述
使用notepad++ “编码”查看对应文件的编码格式。修改报错位置代码,使用‘utf-8’编码格式:

with open(filename, 'r+', encoding='utf-8') as f:

关于UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte的解决办法
真正解决Windows下UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xff in position 0错误的方法

问题2: TypeError: expected str, bytes or os.PathLike object, not NoneType

因为自己在训练配置文件yml中,没有设置meta_info的信息,所以报下面的问题:
在这里插入图片描述
参考hat/data/meta_info/meta_info_DF2Ksub_GT.txt:
在这里插入图片描述
解决方式有两种:一种是将yml中meta_info给注释掉,或者使用在github/basicsr库中使用generate_meta_info.py文件,生成meta_info文件。我这里直接选择注释掉了。

问题3: RuntimeError: CUDA error: out of memory

直接运行会报错,out of memory了
在这里插入图片描述
将batch_size_per_gpu设置成2,倒是可以跑起来:
在这里插入图片描述
这里可以看出HAT很吃内存啊!

问题4:KeyError: “No object named ‘HATModel’ found in ‘model’ registry!”

在这里插入图片描述
出现这个问题是因为我将hat/train.py中的下面三行给删了,以为没有啥用,但是用来进行registry的!需要注意注意。
import hat.archs
import hat.data
import hat.models

同时可以参考下面的issues.
https://github.com/XPixelGroup/HAT/issues/28

后面换了台电脑再来配(Win10, 4090),没想到又出现新的问题

问题5:Requirements should be satisfied by a PEP 517 installer

在这里插入图片描述
运行python setup.py develop 始终报错,后面就没有运行,直接将basicsr==1.3.4.9(注意版本,最新的basicsr可能会报错)源代码下载下来,放在hat得根目录中,然后再pip install逐一配置环境。

实测,使用豆瓣源下载,普遍比较快些:
pip install -i https://pypi.douban.com/simple

问题6:CUDA capability sm_89 is not compatible with the current PyTorch install

在这里插入图片描述
因为之前下的pytorch=1.8.1+cu102,太老了,因此换成比较新的pytorch=1.12.1+cu11.3,现在的GPU的CUDA是12.2,但能够兼容。

4090速度真的快了好多,有一个好的GPU真的是太香太香了!!!

参考

视觉底层任务优秀开源工作:BasicSR 库使用方法
何解决PyTorch版本和CUDA版本不匹配的关系

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值