提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
想复现论文,如果有代码的源码,其实最难的是搭建运行环境,只要环境搭建起来,就可以跑代码,那时候需要担心的就是实验效果不行的问题
先找到github开源项目地址,以这篇论文为例
一、查看所需环境
一般是看readme.md文件,在文件中会有对项目的各种详细介绍,如怎么跑,需要什么环境。
二、搭建环境
1.怎么看cudnn版本和cuda版本
查看cudnn版本(linux):
print(torch.backends.cudnn.version())
//在PyTorch中,torch.backends.cudnn.version() 函数返回的数值(如8902)是表示当前PyTorch配置中使用的cuDNN库版本的一种方式。这个数值通常是由cuDNN的版本号转换而来的,但并非直接对应于cuDNN的常规四位数版本号(如7.6.5、8.0.0等)。
//具体来说,torch.backends.cudnn.version() 返回的数值可能是通过某种算法将cuDNN的版本号转换为整数得到的。然而,这个转换过程并不是直接简单的将四个数字拼接或相加,因为这样的转换无法保证数值的唯一性和递增性。因此,具体的转换算法可能是由PyTorch或cuDNN的开发团队内部定义的。
查看cuda版本(linux):
nvcc -V //得到版本是11,4,要把cuda提升到12.0
切换cuda版本
先查看已经安装的cuda版本
ls -l /usr/local
…(其实我没有实现切换,而是找了一个新的服务器,cuda版本是12.3,驱动是500+)
当前cuda为12.3,可按照12.1版本的pytorch
2.安装conda环境
代码如下(示例):
conda create -n test python=3.10
conda activate test
conda install pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=12.1 -c pytorch -c nvidia
安装完环境,再次pip 看环境
验证torch是否能使用已经验证版本
import torch
print(torch.__version__) # 查看torch当前版本号
print(torch.version.cuda) # 编译当前版本的torch使用的cuda版本号
print(torch.cuda.is_available()) # 查看当前cuda是否可用于当前版本的Torch,如果输出True,则表示可用
3.运行代码
搭建基本环境,安装其他资源,有多种安装方法 选择其一即可
pip install distrifuser
在当前文件夹下clone项目
git clone https://github.com/mit-han-lab/distrifuser.git
运行代码
跑不起来,网络下载不了hugface数据集,版本不统一(torchrun --nproc_per_node=1 scripts/generate_coco.py --no_split_batch),自己下载数据集,说没有git-lfs权限,自己安装sudo没有管理员权限,感觉就是跑不起来,无疾而终。
对于hugfacing他的东西下下载不了,看到很多都说是网络问题,但是解决办法说是取消代理,但是我也不太懂怎么取消代理,但是找到了一个非常牛的解决办法 ,设置环境
export HF_ENDPOINT=https://hf-mirror.com
虽然不知道,这句话到底解决了哪里,但是设置完,就可以实现下载,不会在报错。
文件下载中。。。
这个就没有443错误,下载网络问题解决。
下载完成后,会实现加载load,加载完成后,即完成了项目的运行
这个load加载完就跑完了代码,那这个代码显示是只有load pipeline。打开此目录下的东西,会发现多个png图片,这就是处理完成后的图像,本篇内容也是对高质量图片生成的加速。
对于在hugface上下载的模型,下载在缓存中
这个只运行了一个脚本,其他没有跑,因为现在只想尝试跑代码,不会走这个方向,所以这篇论文到这里就结束了
·
总结
对于代码的复现,主要是完成环境的搭建,按照md文件运行,对于一些变量的补充,如这个代码中的gpu数量,要依据这个按照自己的理解 代码的描写来补充,使其能顺利运行。
这个的运行只要是在hugface里面下载模型比较麻烦,其他就没什么了