原文RGT源码需要环境如下:
CUDA10.2
pytorch-lightning1.4.9
torch1.9.1
torch-geometric2.0.2
torch-cluster1.5.9
torch-scatter2.0.9
torch-sparse0.6.12
torch-spline-conv1.2.1
sklearn
argparse
然而,所在学校集群可用的环境不支持cuda10.2,我安装的是cuda11.8,torch2.0.0,cudnn8.9.7(cudnn下载地址),之后安装pytorch,尝试安装torch1.10.0
conda install pytorch==1.10.0 torchvision==0.11.0 torchaudio==0.10.0 cudatoolkit=11.8 -c pytorch -c conda-forge
但安装完后发现安装的cpu版本,因为torch1.10.0没有对应的cuda11.8版本。用cpu版本跑,会报错:
Segmentation fault (core dumped)
于是改装torch2.0.0,至此torch.cuda.is_available() 为True
conda install pytorch==2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.8 -c pytorch -c nvidia
在安装torch-geometric时,要先安装以下四个库(可以找到不同的版本)
torch_scatter-2.1.1+torch_cluster-1.6.1+torch_sparse-0.6.17+torch_spline_conv-1.2.2
然后再直接pip install torch-geometric,会自动根据四个库的版本安装对应版本的torch-geometric,我的是torch-geometric2.5.3。
然后安装pytorch-lightning:
pip install pytorch-lightning==1.4.9
但后面pytorch-lightning出错了。
运行Heterobot.py ,报错
ImportError: cannot import name 'get_num_classes' from 'torchmetrics.utilities.data' (/root/anaconda3/envs/py39/lib/python3.9/site-packages/torchmetrics/utilities/data.py)
查找之后,发现需要换成conda安装,因为安装torch时用的conda,所以这里安装pytorch-lightning也要用conda,反之如果安装torch用pip,那么安装pytorch-lightning也用pip,很奇怪不知道为什么,
conda install pytorch-lightning
这里直接自动选版本吧,自动安装了2.0.3,再次运行Heterobot.py,报错:
ModuleNotFoundError: No module named 'chardet'
AttributeError: partially initialized module 'charset_normalizer' has no attribute 'md__mypyc' (most likely due to a circular import)
查找之后,charset-normalizer库版本有问题,改装pip install charset-normalizer==3.1.0。
再次运行Heterobot.py ,报错:
TypeError: __init__() got an unexpected keyword argument 'gpus'
应该是安装的pytorch-lightning版本没有gpus这个参数,这里直接把这个参数在源码里删掉,或者将gpus=1改为devices=1,均可成功跑通: