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

PyTorch DataLoader报TypeError: data must be a sequence (got map)求解

TypeError: new(): data must be a sequence (got map) 报错修复方案

核心原因

该报错与Python 2/3兼容性无关,本质是PyTorch张量构造接口接收到了map类型的不可直接序列化对象,而非预期的列表、元组等序列结构。

排查步骤

  • 检查data_loader.py中Dataset子类的__getitem__方法:若存在直接返回map()处理结果的逻辑,Python 3中map()默认返回迭代器而非序列,需要修改为list(map(处理函数, 输入序列))后再返回或传入张量构造函数。
  • 检查JSON数据解析逻辑:若对加载后的JSON字段直接使用map()做数值转换、归一化等操作,没有显式转为列表就喂给张量构造逻辑,也会触发该错误,补全list()转换即可。
  • 检查自定义collate_fn逻辑:如果自定义了DataLoader的批量拼接函数,需确认批量处理过程中所有传入张量构造的变量都是序列类型,避免直接传入map迭代器。
  • 快速验证:在报错栈指向的张量构造代码行前添加print(type(待转张量的变量)),确认变量类型为map后做显式序列转换即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:06:04