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

遇ValueError: num_samples=0错误求解决(CIFAR10+PyTorch)

排查PyTorch DataLoader num_samples=0 错误的方案

这个错误的核心是你的自定义InpaintDatasetLoader实例没有加载到任何有效数据,导致DataLoader初始化时获取到的样本数为0。按以下步骤逐一排查解决:

1. 先确认数据集本身的有效性

  • 检查CIFAR10数据集的下载/存放状态:如果是自动下载,确认Colab环境的root路径有读写权限,且下载过程未中断;如果是手动上传的数据集,确认文件未损坏、路径拼写完全正确。
  • 直接打印自定义数据集的长度:在创建DataLoader之前,加一行代码:
    train_dataset = InpaintDatasetLoader(...)  # 你的数据集实例化代码
    print(len(train_dataset))
    
    如果输出为0,说明数据集初始化逻辑有问题,重点看下面的步骤。

2. 排查自定义数据集的核心方法

  • 检查__len__方法:这个方法的返回值直接决定了DataLoader识别的样本数,确保它返回的是实际有效样本的数量,而非误写为0,或是筛选条件过于严格导致无符合要求的样本。
  • 调试__getitem__方法:如果__len__返回正常但仍报错,可能是部分样本读取失败导致实际可访问样本为空。循环遍历前几个样本测试:
    for i in range(5):
        try:
            _ = train_dataset[i]
            print(f"样本{i}加载成功")
        except Exception as e:
            print(f"加载样本{i}出错: {str(e)}")
    
    根据报错信息修复读取、预处理逻辑,比如图片裁剪参数错误、数据格式不匹配等问题。

3. 检查DataLoader的参数设置

  • 避免错误的采样器配置:如果设置了sampler或batch_sampler,确认它们没有过滤掉所有样本。
  • 临时调整num_workers:Colab环境下如果num_workers设置过大,可能会因多进程权限问题导致数据加载失败,先设为num_workers=0测试是否解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:21:48