最近要跑前辈代码,里面用到了torch-geometric这个包,走了一些坑,在此记录一下自己的安装过程,以作备忘。
安装过程:
1. 使用anaconda创建虚拟环境
我是用anaconda创建了一个虚拟环境,下面的包都是安装在这个环境下,这样在这个环境里随便折腾,不会搞崩系统。。。
conda create -n your_env_name python=3.7
your_env_name
是你的环境名字,然后进入环境:
conda activate your_env_name
PS:如果环境退出使用:
conda deactivate
2. 安装CUDA和CUDNN
因为要用GPU,所以需要装一下CUDA和CUDNN。但我的ubuntu已经装好NVIDIA驱动,所以就安装CUDA和CUDNN了。如果没有装英伟达驱动,需要先装好英伟达驱动,装好驱动后在命令行中使用:
nvidia-smi
查看相应的驱动信息以及需要对应的CUDA版本。
我的信息如下:
下来就是安装CUDA和CUDNN了,我安装的版本是CUDA10.0,虽然驱动适配的是10.1,但跑起来也没什么问题。。。
在上面创建的虚拟环境下,安装CUDA和CUDNN:
conda install cudatoolkit=10.0
conda install cudnn=7.6.5
我选这两个版本主要是想装对应的tensorflow-gpu2.0(或者conda install tensorflow-gpu==2.0.0
就能直接装好对应版本的CUDA和CUDNN,tensorflow和它们的对应关系见https://tensorflow.google.cn/install/source),和装torch-geometric没什么关系。
3. 安装pytorch和对应的依赖
3.1 pytorch安装
pytorch安装从官网查找
我CUDA版本是10.0所以安装的pytorch版本要装以前的老版本。但torch-geometric包最低也只支持pytorch1.4版本的,所以我选择安装了pytorch1.4。
因为我已经装过了cuda所以这里就不再安装,直接使用命令:
conda install pytorch==1.4.0 torchvision==0.5.0 -c pytorch
这里使用conda命令没用pip就是为了能让它帮我匹配对应的版本(CUDA10.0)进行下载,安装后可以确认一下pytorch和CUDA版本是否匹配,在上面创建的虚拟环境中使用以下命令:
python -c "import torch; print(torch.version.cuda)"
nvcc -V
两个都是10.0就没问题了。
3.2 对应依赖安装
主要是安装torch-scatter、torch-sparse、torch-cluster以及torch-spline-conv这四个。
从https://pytorch-geometric.com/whl/torch-1.4.0.html处下载对应版本的包,如果Pytorch版本不是1.4.0,需要下载对应的依赖,地址就把torch-1.4.0.html去掉就行:
cu100是CUDA10.0,cp37对应python3.7,根据版本需要选择对应的下载。然后直接用四个文件进行安装:
pip install torch_scatter-2.0.3+cu100-cp37-cp37m-linux_x86_64.whl
pip install torch_sparse-0.5.1+cu100-cp37-cp37m-linux_x86_64.whl
pip install torch_cluster-1.5.2+cu100-cp37-cp37m-linux_x86_64.whl
pip install torch_spline_conv-1.2.0+cu100-cp37-cp37m-linux_x86_64.whl
安装完成后就是最后一步安装torch-geometric:
pip install torch-geometric
4. 测试
以上步骤执行完没有错误基本就安装完成了,也可以使用下面的命令测试一下:
python -c "import torch_geometric"
没有报错就是成功了。前辈的代码终于能run了!