码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【代码实践】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
    
    
    • 1
    • 2
    • 3

    代码运行

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

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

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

    遇到的问题

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

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

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

    《关于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版本不匹配的关系

  • 相关阅读:
    323 - 线程的生命周期和常用方法
    math_求和号的性质(变界)
    【k8s】8、service详解
    运维SRE-19 网站Web中间件服务-http-nginx
    引用——权限问题
    【网络安全】利用samba服务绕过未开启文件包含配置
    HTML5期末大作业——HTML+CSS+JavaScript平遥古城旅游景点介绍(6页)
    MyBatis-Plus
    双线性插值算法原理讲解及计算示例
    经典算法学习之-----直接选择排序
  • 原文地址:https://blog.csdn.net/yideqianfenzhiyi/article/details/133659622
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号