You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

复现论文代码时Jupyter运行报错NameError: name '__current_graph' is not defined

首先明确:你看到的_base.py报错根本不是这个文件本身出了问题,它只是Python多任务框架把并行子任务里的异常往上抛的中间层,完全不用动这个系统文件,真正的问题是子任务里报了__current_graph未定义的错。

这个变量是PyTorch Geometric(PyG)这类图学习框架维护的线程级全局变量,出现这个报错基本就是下面几个原因,按顺序排查就行:

  • 先确认你Jupyter用的内核真是side虚拟环境:很多人装了虚拟环境但没给Jupyter注册内核,实际跑的时候用的还是base环境的依赖,才会出版本不匹配的问题。激活side环境后执行ipython kernel install --user --name=side,重启Jupyter后切换到side内核再跑代码试试。
  • 再看是不是DataLoader开了多进程的问题:找到你代码里的DataLoader定义,把num_workers改成0,单进程跑一遍,要是能跑通就说明是多进程下PyG的上下文没传递到子进程。要是必须用多进程加速,就在你自定义数据集的__getitem__方法里加个上下文管理器包一下原有逻辑就行:
    from torch_geometric import graph_settings
    
    def __getitem__(self, idx):
        with graph_settings(current_graph=None):
            # 你原来的读取、处理数据的代码
    
  • 最后核对依赖版本:激活side环境后执行pip show torch_geometric,看版本和论文要求的是不是一致,老版本PyG本身就有这个全局变量传递的bug,换对版本直接就解决了。

内容的提问来源于stack exchange,提问作者world2vec

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 23:18:03