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

YOLOv5格式数据集导入Fiftyone返回样本数为0错误如何解决?

问题原因及解决方案
  • 原因1:未指定split参数
    Fiftyone加载YOLOv5格式数据集时,需要明确指定要加载的数据集拆分(train/val/test),未指定的情况下不会读取任何样本。
    修改代码时在fo.Dataset.from_dir参数中补充split参数即可,示例:
import fiftyone as fo

name = "my-dataset2"
dataset_dir = "/content/drive/MyDrive/yolo/yolov5/training/data"

# 创建数据集,指定加载训练集拆分
dataset = fo.Dataset.from_dir(
    dataset_dir=dataset_dir,
    dataset_type=fo.types.YOLOv5Dataset,
    split="train", # 可根据需要改为val/test
    name=name,
)

如果需要同时加载多个拆分,可以多次调用add_dir方法:

# 追加加载验证集
dataset.add_dir(
    dataset_dir=dataset_dir,
    dataset_type=fo.types.YOLOv5Dataset,
    split="val"
)
  • 原因2:数据集目录结构不符合YOLOv5规范
    Fiftyone严格识别YOLOv5的标准目录结构,你的dataset_dir需要满足如下结构:
dataset_dir/
├── dataset.yaml # 数据集配置文件
├── images/
│   ├── train/ # 训练集图片
│   ├── val/   # 验证集图片
│   └── test/  # 测试集图片
└── labels/
    ├── train/ # 训练集标注,和images/train下的文件名一一对应
    ├── val/   # 验证集标注,和images/val下的文件名一一对应
    └── test/  # 测试集标注,和images/test下的文件名一一对应

请检查你的目录层级、文件夹命名是否完全匹配,标注文件和图片的文件名是否一一对应(如图片为a.jpg,标注必须为a.txt)。

  • 原因3:dataset.yaml配置错误
    请检查你的dataset.yaml文件内容是否符合要求:

    • path字段需填写数据集根目录的相对路径(相对于yaml文件所在位置,直接填.即可)
    • train、val、test字段需填写对应拆分图片目录的相对路径,如images/train
    • names字段需按顺序填写所有类别名称,无遗漏
  • 原因4:权限或路径拼写错误
    云盘挂载场景下需确认挂载成功、路径没有拼写错误,同时检查运行代码的账号是否有dataset_dir目录及下属所有文件的读取权限。你可以运行如下代码快速验证路径有效性:

import os
# 检查训练集图片数量,替换为你要验证的目录即可
img_dir = os.path.join(dataset_dir, "images/train")
print(f"训练集图片数量:{len(os.listdir(img_dir))}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:36:00