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

Assert batch not in keys and ptr not in keys报错解决方案求助

PyTorch Geometric 1.7.2 断言错误排查与修复方案

排查方向

  • 检查单样本Data对象的属性字段,确认没有手动命名为batch或ptr的自定义字段,PyG的collate_fn会自动生成这两个全局批次索引字段,重名会直接触发该断言。
  • 核对DataLoader实例来源,确认使用的是torch_geometric.loader.DataLoader而非PyTorch原生的DataLoader,原生默认的collate逻辑未适配PyG的Data结构,会触发字段校验失败。
  • 验证依赖版本匹配规则,PyG 1.7.2仅适配PyTorch Lightning 1.5.x及更早版本,高版本PL内置的DataLoader封装逻辑会覆盖PyG的collate配置,触发校验错误。
  • 检查Dataset的返回值一致性,确认所有返回样本都是标准PyG Data类实例,没有混合字典、None或其他非Data类型对象,异常类型会导致collate的字段判断逻辑异常。

修复方案

  • 若存在自定义字段冲突,直接将自行定义的批次类字段重命名为batch_idx等非保留名称即可。
  • 若必须使用PyTorch原生DataLoader,手动指定collate参数:collate_fn=torch_geometric.data.collate.collate。
  • 版本不兼容场景可选择两种方案:要么降级PyTorch Lightning到1.5.x版本;要么给PL的Trainer传入参数replace_sampler_ddp=False,关闭PL对DDP采样器的自动替换,避免其修改DataLoader的默认配置。
  • 若存在自定义collate逻辑,在逻辑执行完成后手动删除你代码生成的batch/ptr字段再返回结果,避免和PyG自动生成的字段冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:24:04