新版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就不会报错啦~

相关推荐
天远API1 分钟前
零信任架构实战:基于天远企业股权变更构建自动化私募股权投后控制权穿透与异动预警网关
大数据·人工智能·架构·自动化
创实信息5 分钟前
突破SAST瓶颈:解析 SonarQube Hunter Agent 如何检测失效的访问控制与逻辑缺陷
人工智能·ai·devsecops·sonarqube·代码安全
染指11105 分钟前
160.Agent-LangGraph-自定义主管架构智能体
人工智能·windows·microsoft·langchain·1024程序员节·agents
zhilai15 分钟前
视频掉帧怎么用AI补帧
人工智能
hongyangcao7 分钟前
Cloudflare GLM-5.3 串号事故复盘:KV 缓存页记账错了一个字段,155 条回复答进了别人的会话
人工智能·缓存·ai
IT_陈寒7 分钟前
Java项目实战经验分享:一次由JPA懒加载引发的生产事故
前端·人工智能·后端
网易CodeWave-小码哥8 分钟前
AI Coding 实战:用 EARS、原子任务与 E2E 测试减少返工
人工智能·ai编程·ai coding
正经教主9 分钟前
【FDE系列】阶段2:Day 45(up详细版):综合实战 — Docker + Nginx + Git 完整部署与本周收官
人工智能·git·nginx·docker·fde
紧跟先前的步伐11 分钟前
Go AI Agent 实战 20|接入 DeepSeek 原生 Tool Calling
人工智能·ai·golang·1024程序员节
环境栈笔记11 分钟前
浏览器多开同步怎么做?先分清设置、登录态和窗口操作
前端·人工智能·后端·自动化