运行dMaSIF的MaSIF-search时遭遇ImportError:无法从torch_geometric.nn导入PointConv
运行dMaSIF的MaSIF-search时遭遇ImportError:无法从torch_geometric.nn导入PointConv
看起来你碰到的是torch_geometric版本与dMaSIF代码不兼容的问题,毕竟PointConv在torch_geometric的新版本里已经调整了模块位置,而dMaSIF的代码是基于旧版torch_geometric编写的,直接用新版就会出现导入错误。这里给你几个可行的解决思路:
方案一:安装dMaSIF指定版本的torch_geometric
这是最稳妥的办法,能避免后续出现更多依赖冲突:
- 先卸载当前的torch_geometric及相关依赖:
pip uninstall -y torch-geometric torch-scatter torch-sparse torch-cluster torch-spline-conv - 查看dMaSIF仓库里的
requirements.txt或者README文档,找到它明确要求的torch_geometric版本(比如很多老版本项目会指定torch-geometric==1.7.2这类旧版)。 - 按照对应版本重新安装,注意要匹配你的PyTorch和CUDA版本,比如针对PyTorch 1.12+、CUDA 11.6的情况,安装命令大概是:
(如果你的环境是CPU或者其他CUDA版本,替换链接里的pip install torch-geometric==1.7.2 torch-scatter==2.0.9 torch-sparse==0.6.15 torch-cluster==1.6.0 torch-spline-conv==1.2.1 -f https://data.pyg.org/whl/torch-1.12.0+cu116.htmltorch-1.12.0+cu116为对应版本即可)
方案二:临时修改代码适配新版torch_geometric
如果不想更换torch_geometric版本,可以尝试修改benchmark_models.py里的导入语句:
打开/home/ec2-user/operations/packages/dMaSIF/benchmark_models.py,找到导入torch_geometric.nn的那一段,把PointConv的导入路径改成:
from torch_geometric.nn.conv import PointConv
不过这个方法可能只解决眼前的导入问题,后续可能还会遇到其他模块不兼容的情况,所以还是优先推荐方案一。
备注:内容来源于stack exchange,提问作者tobiaspol
相关产品推荐
相关产品推荐

