前段时间看到一篇AAAI2024的论文Patch-wise Graph Contrastive Learning for Image Translation,它采用GNN的思想来进行image-to-image translation的任务,非常的新颖,但我进行复现的时候,发现直接下载它里面需要的DGL库是无法运行的,总是说缺少对应的CUDA。
因此我们需要重新创建一个环境,安装DGL库和其对应的CUDA(Linux版本)
- 利用conda 创建虚拟环境
conda create -n dgl python=3.7
- 进入dgl环境,并且查看现有的库
conda activate dgl
conda list
- 安装torch、cuda、torchvision和torchaudio
pip3 install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=11.3 -c pytorch -c conda-forge
4. 查看python、torch版本
python
import torch
print(torch.__version__)
import torchvision
print(torchvision.__version__)
print(torch.version.cuda) #注意是双下划线
print(torch.cuda.is_available())#如果cuda可用,则返回True
5. DGL有CPU版本和CUDA版本
CPU版本
https://pypi.org/simple/dgl/
CUDA版本
https://anaconda.org/dglteam/repo
我们选择是CUDA版本,打开网站后选择自己对应的CUDA版本
我们选择 linux-64/dgl-cuda11.1-0.9.0-py37_0.tar.bz2,进行下载
打开终端,输入
conda install xxx(路径)/linux-64/dgl-cuda11.1-0.9.0-py37_0.tar.bz2
运行程序出现错误
OSError: libcublas.so.11: cannot open shared object file: No such file or directory
原因1:缺少文件
解决:先 locate libcublas.so.11,然后会显式这个文件所在的位置,接着copy到/home/user/anaconda3/lib/下,再重新安装dgl:pip install dgl-cu110。
locate libcublas.so.11
# 会显示此文件所在路径,如 /home/sys120/minianaconda3/envs/pyt/lib/libcublas.so.11
cp /home/sys120/minianaconda3/envs/pyt/lib/libcublas.so.11 /home/sys120/minianaconda3/envs/dgl/lib/
conda install xxx(路径)/linux-64/dgl-cuda11.1-0.9.0-py37_0.tar.bz2
原因2: 未安装 cudatoolkit
conda install cudatoolkit