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

Colab中使用ImageFolder加载WikiCrop数据集遇FileNotFoundError

问题排查与解决方案

1. 核查类目录内的有效文件

  • 确认0、1等类目录下存在.jpg/.jpeg/.png格式的图片,空文件、隐藏文件或格式不符的文件会被ImageFolder直接忽略,导致“无有效文件”提示。
  • 在Colab终端执行命令快速验证:
    # 统计类0目录下符合格式的图片数量
    ls -l /path/to/your/train/0 | grep -E "\.(jpg|jpeg|png)$" | wc -l
    
    若输出为0,说明该目录无符合要求的图片。

2. 统一类目录命名格式

错误提示同时出现0/0.0、1/1.0,说明数据集拆分复制时生成了整数、浮点数两种格式的类目录。ImageFolder会将每个目录视为独立类,空目录会触发报错。

  • 检查你的拆分代码,确保类标签统一使用整数命名(如0、1),避免生成0.0这类浮点数目录。
  • 用命令清理多余的浮点数目录:
    rm -r /path/to/your/train/*.*
    

3. 确保文件复制操作完成

Colab中若未等待复制完成就执行加载,会导致目标目录无文件。可添加校验逻辑:

import os

def count_total_files(dir_path):
    return sum(len(files) for _, _, files in os.walk(dir_path))

# 执行你的文件复制代码后,添加以下校验
src_file_num = count_total_files("/path/to/your/source_data")
dst_file_num = count_total_files("/path/to/your/train")
while dst_file_num < src_file_num:
    dst_file_num = count_total_files("/path/to/your/train")

4. 确认ImageFolder路径参数正确性

传给ImageFolder的路径必须是训练集根目录(包含所有类目录的上级目录),而非单个类目录。正确示例:

from torchvision.datasets import ImageFolder
from torchvision.transforms import ToTensor

train_dataset = ImageFolder(
    root="/content/train",  # 这里是根目录,不是/content/train/0
    transform=ToTensor()
)

5. 修复文件权限问题

Colab中复制的文件可能存在权限不足,导致ImageFolder无法读取。执行命令修改权限:

chmod -R 644 /path/to/your/train

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:03:24