dgl AttributeError: Can't get attribute 'DGLGraph' on <module 'dgl.heterograph' from '/home/user/anaconda3/envs/mymodel/lib/python3.7/site-packages/dgl/heterograph.py'>

发布时间 2023-12-14 20:20:17作者: 小黑哈哈

由于服务器重装了系统,因此cuda版本和ubuntu系统版本也换了,不得不重装系统,导致以前可以正常运行的代码出了各种故障(注:现在的ubuntu版本是18.04,cuda版本是11.3)

AttributeError: Can't get attribute 'DGLGraph' on <module 'dgl.heterograph' from '/home/user/anaconda3/envs/mymodel/lib/python3.7/site-packages/dgl/heterograph.py'>

1️⃣在网上查询了一下原因,因为我的dgl图是预先保存在pkl文件里的,而pkl文件是重装系统之前用之前的dgl生成的,现在的dgl版本和之前的不一致,导致了这种错误,但是我忘记我之前装的是什么版本了,试了很多版本都还是出这个错误,遂放弃。。。

这里附上dgl各种历史版本的链接,因为目前dgl官网已经更新到11.6cuda版本了,我曾经试着装过11.6cuda版本的dgl,代码是可以跑得起来的,但是效果奇差,当时吓死我了,差点以为重装了个系统模型就从此废了。。。。。:

https://conda.anaconda.org/dglteam/linux-64

https://pypi.tuna.tsinghua.edu.cn/simple/

pip install dgl-cu111 -f https://data.dgl.ai/wheels/repo.html(这是直接用pip安装,前面两个是先下载wheel再安装)

2️⃣我根据github上给出的解决方法尝试了用新安装的dgl包重新生成了pkl文件,但还是报一样的错误,遂放弃。。。

3️⃣尝试用dgl的save_graphs,load_graphs方法将dgl图写入bin文件中,这一次成功了,而且运行速度比之前快了很多!!!还是官方给的函数靠谱

至此,我经历了三天的痛苦终于结束了。。。。