复现RGT from《Heterogeneity-aware Twitter Bot Detection with Relational Graph Transformers》

原文RGT源码需要环境如下:
CUDA10.2
pytorch-lightning
1.4.9
torch1.9.1
torch-geometric
2.0.2
torch-cluster1.5.9
torch-scatter
2.0.9
torch-sparse0.6.12
torch-spline-conv
1.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)

pytorch-lightning报错
查找之后,发现需要换成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,均可成功跑通:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值