作为一个科研小白,对咱们来说非常重要的一项技能便是模型复现的入门到入土(
接下来我们以CVPR2025年的一个工作–MambaIRv2为例,学习如何复现一篇论文
step1 阅读论文,理解原理
理论是要走在实践前面的(起码论文复现要先看懂论文)
MambaIR是ECCV2024的一篇工作,将Mamba应用到了图像修复领域
MambaIRv2是它的二代,解决了扫描时的强制因果,加入了注意力机制,但又避免了复杂的计算
MambaIRv2: Attentive State Space Restoration
具体细节这里不过多阐述,需要自己去看论文
step2 测试
我用的是autoDL上的V100进行测试,应该是完全足够的
注意 PyTorch ≥ 2.0,cuda ≥ 11.7
- 先进入到你想放的文件夹(不需要先创建一个MambaIR,因为git clone的时候会自行创建)
- 克隆github上的代码,并了解项目结构
1
| git clone https://github.com/csguoh/MambaIR.git
|
- 准备环境
1 2 3
| cd MambaIR conda env create -f environment.yaml conda activate mambair
|
这一步需要很久
环境安装一般不会一帆风顺,但是求助AI大概率可以解决
- 常见会出现packaging不见啊,requirements装不了之类的错误,解决办法是在env内pip好packaging,再用命令把requirements分成conda包和pip包分别安装
1 2 3 4 5 6 7 8 9
| pip install packaging
grep -v "pypi_0" requirements.txt | awk -F= '{print $1"="$2}' > conda_requirements.txt grep "pypi_0" requirements.txt | awk -F= '{print $1"=="$2}' > pip_requirements.txt # 先用 conda 安装 conda install --file conda_requirements.txt
# 再用 pip 安装 pip install --no-build-isolation -r pip_requirements.txt
|
- mamba-ssm 编译失败
包的具体版本要查看自己当前的环境配置
1 2 3 4 5 6
| wget https://github.com/state-spaces/mamba/releases/download/v1.0.1/mamba_ssm-1.0.1+cu118torch2.0cxx11abiTRUE-cp38-cp38-linux_x86_64.whl pip install mamba_ssm-1.0.1+cu118torch2.0cxx11abiTRUE-cp38-cp38-linux_x86_64.whl
wget https://github.com/Dao-AILab/causal-conv1d/releases/download/v1.4.0/causal_conv1d-1.4.0+cu118torch2.0cxx11abiTRUE-cp38-cp38-linux_x86_64.whl pip install causal_conv1d-1.4.0+cu118torch2.0cxx11abiTRUE-cp38-cp38-linux_x86_64.whl
|
- 准备数据集
我只测试SR,那么就只需要下载SR的数据并保存到对应路径下
数据在 https://github.com/csguoh/MambaIR.git 上有,下载好压缩包并放到datasets文件下,解压
- 准备模型权重文件(未训练直接测试)
在 https://github.com/csguoh/MambaIR/releases 下寻找合适的权重文件,放到experiments下的pretrained里,也可以通过命令:
1
| wegt https://github.com/csguoh/MambaIR/releases/<file name>
|
- 修改测试文件
在/MambaIR/experiments/pretrained_models下,选择自己想选的文件,打开,并将测试集数据路径和文件路径都改成自己的,(注意要从根目录开始)
- 运行test
1 2
| # 根据自己的选择更改命令 python basicsr/test.py -opt options/test/mambairv2/test_MambaIRv2_SRSmall_x4.yml
|