新版torch_geometric不存在uniform、maybe_num_nodes函数问题(Prune4ED论文报错解决)

这是在复现论文"Towards accurate subgraph similarity computation via neural graph pruning"时遇到的报错。

ImportError: cannot import name 'uniform' from 'torch_geometric.nn.pool.topk_pool'

一、报错原因

论文作者使用的是2.1.0版本的torch_geometric。而我安装了2.6.0的torch_geometric。新版中已经去除了uniform和maybe_num_nodes这两个函数,所以自然 无法import。

二、解决思路

找出旧版torch_geometric中的函数源代码,将这两个函数复制到自己项目下py脚本,再from这个脚本import这两个函数。

  • step 1 创建一个新的虚拟环境,安装旧版本

新建python虚拟环境。创建环境基础教程可以看之前这一篇【Python环境配置基础】-CSDN博客

安装对应的torch 1.12.1 ,torch_geometric 2.1.0以及其他torch相关包。安装教程可以看之前分享的这一篇跑深度学习模型Ⅲ:正确安装与torch版本对应的其他torch包_requirement skipped by policy constraint: torch>=1-CSDN博客

  • step 2 找出函数源代码位置

在刚刚新建的虚拟环境下,执行以上命令,即可得到一个文件路径,如D:\....\try_time\lib\site-packages\torch_geometric\init.py。

报错位置代码,是从torch_geometric.nn.pool.topk_pool去import函数的,所以沿着这个路径去找到topk_pool文件。

访问D:\....\try_time\lib\site-packages\torch_geometric\nn\pool,打开topk_pool.py。

  • step 3 复制需要的函数代码

在topk_pool.py中搜索uniform,并找到uniform的函数定义代码,将这个函数代码复制到自己项目中的某个位置。我新建了help.py脚本,里面含uniform和maybe_num_nodes函数。

  • step 4 更改from..import 代码

将原来的

改为

再运行论文开源代码的experiment.py就不会报错啦~

相关推荐
2301_813599551 分钟前
HTML图片怎么用UnoCSS对齐_UnoCSS原子化CSS图片对齐实战
jvm·数据库·python
m0_377618234 分钟前
c++怎么在不加载整个大文件的情况下获取其SHA256校验值【进阶】
jvm·数据库·python
LN花开富贵6 分钟前
【ROS】鱼香ROS2学习笔记二
linux·笔记·python·学习·嵌入式
qq_1898070310 分钟前
CSS如何实现纯CSS树状目录结构_利用-checked与递归思维构建交互节点
jvm·数据库·python
Micr06711 分钟前
利用Werkzeug-Debug实现本地权限提升
python·web安全·网络安全
冬奇Lab19 分钟前
Claude Code 实战经验分享(上篇):从启动到并发协同
人工智能·ai编程·claude
minhuan26 分钟前
多SKILL协同推理:双慢病联合决策:SKILL架构下糖尿病与高血压的协同诊疗体系.147
人工智能·慢病管理智能体·多skill协同推理·skill架构分析·双慢病决策
我叫张土豆26 分钟前
从 SSE 到 Streamable HTTP:AI 时代的协议演进之路
人工智能·网络协议·http
yanghuashuiyue27 分钟前
langchain AI应用框架研究【开发部署-篇四】
python·langchain
无敌昊哥战神29 分钟前
【保姆级题解】力扣17. 电话号码的字母组合 (回溯算法经典入门) | Python/C/C++多语言详解
c语言·c++·python·算法·leetcode