YOLO V5本地训练报Dataset not found异常 Colab可正常运行
YOLOv5 Windows本地训练数据集定位失败排查
问题根源定位
从运行日志可直接提取两处触发报错的直接原因:
- 训练命令传入的
--data /data.yaml被程序识别为yolov5当前工作目录下的相对路径.\data.yaml,未实际指向你自定义的数据集配置文件 - 配置文件内书写的数据集路径为适配Colab环境的Linux相对路径,未同步适配Windows本地的目录结构,导致程序校验时拼接出的路径与本地实际数据集存放位置不匹配,日志中校验的路径
D:\me1eye\Yolo_V5\valid\images与你本地valid集的实际存储路径完全不符
分步修正操作
- 调整训练命令的参数格式
Windows环境下路径解析不支持开头单斜杠代表磁盘根目录的语义,该写法会被自动解析为当前工作目录下的相对路径。将命令中的data参数修正为正确的配置文件路径,调整后参考命令:python train.py --img 416 --batch 8 --epochs 100 --data data/your_dataset.yaml --cfg models/yolov5s.yaml --weights '' --name yolov5s_results --cache - 修正数据集yaml配置内的路径定义
打开对应的数据集yaml配置文件,将原本适配Colab的路径写法全部替换为Windows本地的实际路径,正确配置示例:
注意:不要在Windows路径中使用单个反斜杠# 路径推荐使用正斜杠/书写,避免反斜杠被解析为转义字符 train: D:/me1eye/YOLO_V_5/Yolo_V5/datasets/train/images # 替换为本地train集images目录的实际路径 val: D:/me1eye/YOLO_V_5/Yolo_V5/datasets/valid/images # 替换为本地valid集images目录的实际路径 test: D:/me1eye/YOLO_V_5/Yolo_V5/datasets/test/images # 替换为本地test集images目录的实际路径 nc: 自定义类别数 names: ['类别1', '类别2']\,这类写法容易触发转义解析错误,统一替换为正斜杠/或双反斜杠\\即可 - 校验目录结构合规性
确认所有数据集split的目录完全匹配YOLOv5的扫描规则:每个images目录同级下必须存在对应的labels目录,且图像文件与标注文件的文件名一一对应(例如001.jpg对应001.txt标注),否则即使路径书写正确,校验环节仍会触发数据集不存在的报错。
常见踩坑提醒
日志中提示找不到的D:\\me1eye\Yolo_V5\valid\images路径,是因为原yaml配置中书写了相对路径valid/images,程序自动拼接了当前工作目录的上层路径生成的无效路径,只要将yaml内的路径修改为指向本地实际数据集的准确位置,重新运行训练命令即可正常完成校验。
内容的提问来源于stack exchange,提问作者Zag.D
相关产品推荐
相关产品推荐

