最近要看下IGMC的源码,发现代码中引用了torch-geometric库,所以需要安装下pytorch环境和对应的库。有点点坑,记录下。环境配置需要和作者保持一致,不然会有一些问题,作者的环境是 Python 3.8.1 + PyTorch 1.4.0 + PyTorch_Geometric 1.4.2。

1 创建虚拟环境

windows下安装各种深度学习环境通常是通过anaconda实现的,可以先下载个anaconda安装,我下载的是anaconda3。

安装好之后,使用conda命令创建一个虚拟环境,我们之后所有pytorch相关操作都在这个虚拟环境进行,这样可以防止对现有环境造成破坏。conda这个命令和virtualenv命令是类似的。

创建python3.6的虚拟环境(环境路径:anaconda安装目录的envs目录下):

1
conda create --name python36 python=3.6

激活上述环境:

1
activate python36

激活环境后就可以进行其它操作了。

查看现在的所有环境:

1
conda info --env  # 前面有‘*’星号的是当前环境

删除环境:

1
2
conda deactivate  # 先退出环境
conda remove --name [env_name] --all #再删除环境

这样携带python3.6的虚拟环境就做好了。

2 安装pytorch

pytorch-geometric的官方安装教程说需要安装至少pytorch1.4.0之上的版本,所以这里我们安装pytorch1.5,选择的cuda版本是10.2(有些版本在安装pytorch-geometric必要包的时候会报错,例如torch-scatter==latest+cu98会报错,因为没有cuda9.8这个版本)。在Windows下,使用conda安装pytorch1.5命令如下(pytorch和cuda版本对应关系列表):

1
2
# CUDA 10.2
conda install pytorch==1.5.0 torchvision==0.6.0 cudatoolkit=10.2 -c pytorch

安装完成后,可以使用命令查看下pytorch是否安装成功。

1
2
3
4
5
python -c "import torch; print(torch.__version__)"
>>> 1.5.0

python -c "import torch; print(torch.version.cuda)"
>>> 10.2

如果出现对应版本号则说明安装成功。

3 安装pytorch-geometric

根据pytorch-geometric的官方安装教程安装是无法成功的,会提出找不到满足要求的包,网上找到一种方法(参考用户duanyuchen的【踩坑】Linux下配置torch-geometric),命令如下:

1
2
3
4
5
pip install torch-scatter==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-${PyTorch}.html
pip install torch-sparse==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-${PyTorch}.html
pip install torch-cluster==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-${PyTorch}.html
pip install torch-spline-conv==latest+${CUDA} -f https://pytorch-geometric.com/whl/torch-${PyTorch}.html
pip install torch-geometric

将上面命令中的${CUDA}${PyTorch}替换成对应的版本号就好了,例如我们的${CUDA}值是cu102,${PyTorch}值是1.5.0。命令如下:

1
2
3
4
5
pip install torch-scatter==latest+cu102 -f https://pytorch-geometric.com/whl/torch-1.5.0.html
pip install torch-sparse==latest+cu102 -f https://pytorch-geometric.com/whl/torch-1.5.0.html
pip install torch-cluster==latest+cu102 -f https://pytorch-geometric.com/whl/torch-1.5.0.html
pip install torch-spline-conv==latest+cu102 -f https://pytorch-geometric.com/whl/torch-1.5.0.html
pip install torch-geometric==1.4.2 #这里必须指定是1.4.2版本

执行上述命令可能报错版本号无效的错误,,例如Invalid version: 'latest+cu102,这是因为pip的版本太高了,回退到19.3.0就可以了[2]。pip版本回退命令:

1
python -m pip install pip==版本(如19.3.0)

这样pytorch-geometric安装完成了,最后在pycharm中设置python环境为新建的虚拟环境就可以了。

4 注意

  1. torch-geometric的版本必须是1.4.2,更高版本可能会报错:torch.nn.modules.module.ModuleAttributeError: 'RGCNConv' object has no attribute 'att',因为GCNConv是引用其它的包,这个包在1.4.2有att属性,更高版本删除了。

参考文章

[1] 【踩坑】Linux下配置torch-geometric

[2] Error installing dependency PyTorch Scatter from wheel