讲师中心 微信公众号

工具推荐

视频效率加速
Seko
Seko

AI短剧一键生成成片

AniShort
AniShort

AI短剧协同制作平台

立刻MV
立刻MV

低成本歌曲 MV、视频生成

Laper
Laper

剧本策划到成片协作

YoloV7训练报错“Dataset not found”解决方案

小涛吖_6261

小涛吖_6261

发布时间:2026-01-28 14:21:22

|

339人浏览过

|

来源于php中文网

原创

YoloV7训练报错“Dataset not found”解决方案

yolov7训练时提示“dataset not found”,即使yaml中路径配置正确,也常因残留的旧缓存文件(如`.cache`)导致路径误读,本文提供完整排查与解决步骤。

在使用 YOLOv7 进行模型训练时,出现 Exception: Dataset not found 错误是一个高频问题。值得注意的是:该错误并非总源于 YAML 配置错误——即使你已准确填写 train、val、test 的绝对或相对路径(如 train: ./datasets/mydata/images/train),仍可能因缓存机制失效而触发异常。

根本原因分析

YOLOv7 在首次加载数据集时,会自动生成缓存文件(如 *.cache),其中记录了数据路径、图像尺寸、标签统计等元信息。若后续你修改了 custom_data.yaml 中的路径,但未清除旧缓存,check_dataset() 函数会优先读取 .cache 文件中的过期路径,进而校验失败并抛出 Dataset not found 异常。

解决步骤(推荐顺序执行)

  1. 清除所有 .cache 文件
    在项目根目录及数据集目录下递归搜索并删除:

    # Windows(PowerShell)
    Get-ChildItem -Path . -Recurse -Filter "*.cache" | Remove-Item -Force
    
    # 或手动定位删除(常见位置):
    # - yolov7/ 项目根目录下
    # - datasets/mydata/ 下
    # - utils/ 或 data/ 子目录中
  2. 验证 YAML 路径格式规范
    确保 custom_data.yaml 中路径为相对项目根目录的正确路径(非 Jupyter 工作目录):

    train: datasets/mydata/images/train  # ✅ 推荐:相对路径(以train.py所在目录为基准)
    val: datasets/mydata/images/val
    test: datasets/mydata/images/test
    
    nc: 3
    names: ['cat', 'dog', 'bird']

    ⚠️ 注意:避免使用 ./ 开头(部分版本解析不稳定),也不要用绝对路径(跨平台/环境易失效)。

    Windows 开机自启并隐藏到系统托盘
    Windows 开机自启并隐藏到系统托盘

    让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。

    下载
  3. 检查路径实际存在性与权限
    在训练前,于 Python 中快速验证:

    import os
    from pathlib import Path
    
    data_yaml = "custom_data.yaml"
    with open(data_yaml) as f:
        import yaml
        data = yaml.safe_load(f)
    
    for split in ['train', 'val', 'test']:
        p = Path(data[split])
        print(f"{split}: {p} → exists? {p.exists()}")

    若输出 False,请检查路径拼写、大小写、是否遗漏 images/ 或 labels/ 子目录。

  4. Jupyter Notebook 用户特别注意

    • 确保 notebook 的当前工作目录与 train.py 所在目录一致(可通过 !pwd 或 os.getcwd() 查看);
    • 不要直接在 notebook 中调用 !python train.py ...,建议改用终端运行,避免路径上下文混淆;
    • 如必须在 notebook 中调试,先执行:
      import os
      os.chdir("C:/Users/Nirajan/Desktop/Minor project/yoloV7")  # 切换至项目根目录

补充建议

  • 首次运行前,可临时添加日志到 utils/general.py 的 check_dataset() 函数中(第173行附近),打印 data_dict 内容,确认实际读取路径;
  • 使用 --noautoanchor 或 --cache ram 参数不会绕过此检查,清缓存是必要前提;
  • 若使用 WSL 或 Docker,还需确保路径在容器内外映射一致。

完成上述操作后重新启动训练,90% 以上的 “Dataset not found” 问题将被解决。记住:YOLOv7 的鲁棒性依赖于干净的环境与显式的路径约定——缓存不是敌人,但遗忘清理它,就是训练失败的第一步。

热门AI工具

更多
火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

函子Zion

一款支持AI搭建、可视化编辑和多端发布的全栈无代码开发平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

花生AI
花生AI Hot

一款AI视频创作工具,主要用于B站推出的AI视频创作工具,适合需要提升相关任务效率的用户。

相关专题

更多
k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

825

2023.07.24

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

6759

2024.04.08

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

7917

2024.04.08

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3173

2024.04.08

Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

359

2026.02.11

Docker 容器部署
Docker 容器部署

本专题整合了Docker容器部署相关内容,阅读专题下面的文章了解更多详细操作教程。

491

2026.03.31

Java容器化部署与Docker实践教程合集
Java容器化部署与Docker实践教程合集

聚焦 Java 应用的容器化与云原生部署,讲解 Dockerfile 编写规范与 Java 应用镜像构建、多阶段构建(Multi-stage Build)减小镜像体积、Jib / Buildpacks 免 Dockerfile 镜像构建方案、JVM 容器感知参数(-XX:MaxRAMPercentage)配置、Docker Compose 编排多服务(应用 + MySQL + Redis)、容器健康检查与资源限制、Kubernetes

460

2026.05.11

Go Docker与容器化部署教程合集
Go Docker与容器化部署教程合集

聚焦 Go 应用的容器化部署优势与实践,讲解 Go 静态编译特性(CGO_ENABLED=0)与 scratch / distroless 极小基础镜像构建、多阶段 Dockerfile 编写规范、交叉编译生成目标平台二进制、镜像安全扫描(Trivy)与漏洞修复、Docker Compose 本地编排开发环境、Kubernetes Deployment / Service / ConfigMap 部署 Go 服务、健康检查(Livene

345

2026.05.15

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

0

2026.11.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn