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

YOLOv8训练异常:未加载训练集299张图,仅用验证集且训练数据无检测

YOLOv8训练加载错误数据集的排查与解决

核心问题分析

你遇到的现象(训练用验证集、训练集检测不到目标但验证集可以)本质是训练时模型实际加载的是验证集数据,导致模型只学习了验证集样本,自然对训练集无检测能力,对验证集有过拟合式的检测效果。以下是具体排查和解决步骤:


1. 彻底核对数据集YAML配置

即使你之前检查过,也请再确认以下细节:

  • 打开你的数据集YAML文件,确保train和val字段的路径完全正确,没有写反或路径错误:
    # 正确示例(根据你的实际路径调整)
    train: ./data/train/images  # 必须指向包含299张图片的训练集目录
    val: ./data/val/images      # 指向包含85张图片的验证集目录
    
  • 优先使用绝对路径(比如/home/xxx/datasets/train/images),避免相对路径因工作目录变化导致的歧义;
  • 检查训练集目录下的图片与标签是否一一对应:每张.jpg/.png图片必须有同名的.txt标签文件,标签内的类别索引要与YAML中names列表的索引一致,空标签或索引错误的图片会被YOLOv8自动过滤。

2. 删除数据集缓存文件

YOLOv8会生成.cache文件加速数据集加载,若之前配置错误,缓存会保留错误的数据集信息:

  • 找到训练集和验证集的图片/标签目录,删除所有后缀为.cache的文件;
  • 重新启动训练,YOLOv8会重新扫描数据集并生成正确的缓存。

3. 检查训练命令参数

确认训练命令没有指定错误的数据源:

  • 确保--data参数指向的是正确的YAML文件,示例命令:
    yolo train data=my_dataset.yaml model=yolov8s.pt epochs=50
    
  • 不要在命令中添加--val等可能强制跳过训练集加载的参数。

4. 验证数据集加载日志

训练启动时,查看控制台日志的开头部分,会显示加载的训练/验证集数量:

train: 299 images, val: 85 images
如果显示train: 85 images,则说明YAML的train路径确实指向了验证集目录,需再次修正路径。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:50:54