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

自定义MSCOCO2017数据集加载器报错:ArrowTypeError排查

自定义COCO数据集加载脚本触发ArrowTypeError排查

问题场景

我编写了自定义Python数据集加载文件coco.py,用于加载带标注文本的MSCOCO2017数据集。执行以下加载代码时触发ArrowTypeError:

from datasets import load_dataset
squad_it_dataset = load_dataset('coco.py', data_files="data/coco.json", data_dir='~/coco2017/')

错误信息

ArrowTypeError: Could not convert 255 with type int: was not a sequence or recognized null for conversion to list type

错误原因分析

这个错误的核心逻辑是:你在coco.py中把某个字段定义为列表(list)类型,但实际JSON数据里该字段出现了单个整数255,无法完成类型转换。比如可能是分割掩码、关联类别ID这类字段,在特征定义里被声明为序列类型,但数据中存在单个值而非数组格式的样本。

排查与修复步骤

  • 检查coco.py中的features字典,定位被定义为列表/序列类型的字段(比如Sequence(feature=Value("int32"))或Value("list")这类写法)
  • 打开data/coco.json,搜索值为255的字段,确认该字段的实际格式是否为单个整数而非数组
  • 根据实际需求调整:
    1. 如果该字段本就应该是单个整数,直接把特征定义改为Value("int32")对应类型
    2. 如果该字段必须是数组,在数据处理逻辑中加入格式转换,示例代码:
      def process_example(example):
          # 把单个int值包装成列表
          target_field = "your_target_field_name"
          if isinstance(example[target_field], int):
              example[target_field] = [example[target_field]]
          return example
      

需要补充的信息

为了精准定位问题,还需要提供:

  • 完整的coco.py代码
  • 完整的报错栈信息

内容的提问来源于stack exchange,提问作者exercise-3949

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 11:50:32