news 2026/4/18 5:14:47

YOLO11项目目录结构说明,一看就懂

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
YOLO11项目目录结构说明,一看就懂

YOLO11项目目录结构说明,一看就懂

你刚拉起YOLO11镜像,打开终端,输入ls却看到满屏文件夹——ultralytics/datasets/runs/weights/train.py……它们各自负责什么?哪个该放图片、哪个该改参数、哪个动了会训练失败?别急,这篇文章不讲原理、不堆代码,只用一张清晰的“项目地图”,带你3分钟理清YOLO11镜像里每个关键目录的真实作用。无论你是第一次跑通模型的新手,还是想快速上手自定义训练的开发者,读完就能准确找到该去哪改、该往哪放、该看哪份日志。

1. 整体结构概览:四个核心区域

YOLO11镜像不是杂乱无章的文件堆砌,而是围绕“开发—数据—训练—产出”四条主线组织的。整个项目根目录(即你执行cd ultralytics-8.3.9/后进入的位置)可划分为四大功能区:

  • 代码核心区ultralytics/—— 模型骨架与所有算法逻辑所在,不建议直接修改
  • 数据准备区datasets/—— 你自己的图片、标签、配置文件的“家”,唯一需要你动手填充的地方
  • 运行产出区runs/—— 训练过程中的日志、图表、权重自动保存地,只读不写
  • 资源管理区weights/+train.py/infer.py—— 预训练模型存放点 + 你写的启动脚本,是连接数据与代码的“开关”

这四个区域各司其职,互不越界。理解它们的边界,你就掌握了YOLO11项目的底层秩序。

2. 代码核心区:ultralytics/—— 模型的“心脏”,保持原样就好

2.1 它是什么?

ultralytics/是 Ultralytics 官方维护的 Python 包源码目录,完整包含了 YOLO11 的所有模型定义、训练循环、推理引擎、数据加载器和评估模块。它不是你写的脚本,而是你调用的“工具箱”。

2.2 里面有什么?(精简版,只列关键)

ultralytics/ ├── __init__.py # 包入口,让你能 from ultralytics import YOLO ├── engine/ # 核心训练/验证/推理逻辑(train.py, val.py, predict.py) ├── models/ # 模型结构定义(含 yolo11-seg.yaml 等配置模板) │ └── v8/ # (注意:YOLO11 实际沿用 v8 目录结构,兼容性设计) │ └── cfg/ # 所有 .yaml 配置文件的集中地(重点!) │ ├── models/ # 模型结构配置(如 yolo11m-seg.yaml) │ └── datasets/ # 数据集配置模板(如 coco128.yaml) ├── utils/ # 工具函数(日志、绘图、指标计算等) └── cfg/ # 全局默认配置(如 default.yaml,一般无需改动)

2.3 你该怎么做?

  • 可以查看:比如想确认某个参数默认值,直接打开ultralytics/cfg/default.yaml
  • 可以引用:在train.pyfrom ultralytics import YOLO就是调用这里
  • 不要修改:除非你是在做深度二次开发(如重写 backbone),否则不要碰engine/models/下的.py文件
  • 重点留意cfg/子目录models/11/下的yolo11-seg.yaml是你定制模型结构的唯一入口;datasets/下的.yaml是你定义自己数据路径的必改项——它们是“配置”,不是“代码”,安全可改

一句话记住ultralytics/是你信赖的“黑盒引擎”,你只负责给它喂数据、设参数、按开关,不用拆开修理。

3. 数据准备区:datasets/—— 你掌控的“唯一战场”

3.1 它为什么重要?

YOLO11 不认识你的图片,也不懂你的业务类别。datasets/就是你向模型“自我介绍”的地方:告诉它“我的图在哪”、“我的类叫什么”、“我的标签长啥样”。这里填错,后面全白忙。

3.2 标准目录结构(以实例分割为例)

假设你要训练一个“点餐场景中的人与餐盘”分割模型,推荐这样组织:

datasets/ └── seg_point_offer_20240930/ # 你的数据集根目录(名字自定,但要和 yaml 里一致) ├── train/ # 训练集 │ ├── images/ # 所有训练图片(.jpg/.png) │ └── labels/ # 对应的 YOLO 分割标签(.txt,每张图一个) ├── val/ # 验证集(结构同 train) │ ├── images/ │ └── labels/ └── test/ # (可选)测试集 ├── images/ └── labels/

3.3 关键配套文件:point-offer-seg.yaml

这个 YAML 文件必须放在ultralytics/cfg/datasets/下(或你train.py同级目录),内容示例:

# Ultralytics YOLO path: ./datasets/seg_point_offer_20240930 # ← 必须指向上面创建的根目录!路径错误是新手最高频报错 train: train/images # ← 相对于 path 的子路径 val: val/images test: test/images # ← 可选,用于最终评估 # 类别名称(顺序必须和 labelme json 转 txt 时的映射完全一致!) names: 0: person 1: tray 2: food

3.4 你该怎么做?

  • 严格按结构放图和标签:图片进images/,生成的.txtlabels/,文件名必须一一对应(abc.jpgabc.txt
  • YAML 中path写相对路径:从train.py所在位置出发算,./datasets/xxx最安全
  • names顺序=类别ID顺序label_to_class_id = {"person": 0, "tray": 1}必须和 YAML 里0: person, 1: tray完全一致
  • 不要把图片直接丢进datasets/根目录:必须套一层your_dataset_name/,否则 YAML 无法定位

避坑提示:训练时报错No images foundNo labels found,90% 是因为path写错,或images/labels/没放在train/val/下。

4. 运行产出区:runs/—— 模型的“成长日记本”

4.1 它自动产生什么?

每次你运行python train.py,YOLO11 就会在runs/下自动生成全新子目录,记录一切:

runs/ └── segment/ # 任务类型(detect/segment/pose/obb) └── train2/ # 自动编号,第2次训练(train1, train2...) ├── weights/ # 训练出的模型文件 │ ├── last.pt # 最后一轮权重(含优化器状态,可 resume) │ └── best.pt # 验证指标最优的权重(推理用这个!) ├── results.csv # 每轮 loss/mAP 等数值,可用 Excel 打开 ├── results.png # 自动生成的训练曲线图(loss、P、R、mAP) ├── train_batch0.jpg # 第0批训练数据增强效果预览 ├── val_batch0_pred.jpg # 验证集首张图预测效果(带框+掩膜) └── args.yaml # 本次训练所有参数快照(复现实验的依据)

4.2 你该怎么做?

  • 定期检查results.png:一眼看出训练是否收敛、有无过拟合(val loss 上升)
  • best.pt做推理model = YOLO("runs/segment/train2/weights/best.pt")
  • 保留args.yaml:它记录了你实际用了哪些参数,比train.py里的字典更真实
  • 不要手动删除runs/下的旧目录:除非磁盘告急,否则留着它是你实验的完整证据链
  • last.ptbest.ptlast.pt是训练终点,best.pt是验证集表现顶峰——后者才是部署首选

效率技巧:想快速对比两次训练?直接打开两个results.png并排看曲线,比读日志快十倍。

5. 资源管理区:weights/train.py—— 你的“控制台”

5.1weights/:预训练模型的保险柜

这个目录专放.pt权重文件,YOLO11 官方提供多种尺寸和任务的预训练模型:

  • yolo11n-seg.pt:轻量级,适合边缘设备
  • yolo11m-seg.pt:平衡型,本文示例默认使用
  • yolo11x-seg.pt:高精度,需大显存

你只需做两件事

  1. 把下载好的.pt文件放进weights/
  2. train.py中写明路径:model = YOLO("yolo11m-seg.yaml").load("weights/yolo11m-seg.pt")

注意.yaml(结构)和.pt(权重)必须匹配!yolo11m-seg.yaml+yolo11m-seg.pt是黄金组合。

5.2train.py:你写的“一键启动脚本”

这是你和 YOLO11 交互的唯一接口文件,位于项目根目录(与ultralytics/同级)。它的核心就三行:

from ultralytics import YOLO # 1. 加载结构 + 权重 model = YOLO("yolo11m-seg.yaml").load("weights/yolo11m-seg.pt") # 2. 定义所有参数(数据路径、轮数、图像大小等) train_params = { 'data': "point-offer-seg.yaml", # ← 指向你放在 cfg/datasets/ 下的 yaml 'epochs': 30, 'imgsz': 640, 'batch': 8, # ... 其他100+参数(按需开启) } # 3. 开始训练 results = model.train(**train_params)

你该关注的只有三个变量

  • 'data':必须是你自己写的 YAML 文件名(不含路径,因它默认在ultralytics/cfg/datasets/下找)
  • 'epochs'/'imgsz'/'batch':最常调整的三大参数,直接影响训练速度和效果
  • model.train():这一行执行后,所有日志、图表、权重自动出现在runs/

新手第一课:先不改任何参数,确保train.py能跑通,再逐步调整'epochs''batch'。稳定压倒一切。

6. 其他辅助目录:docker/examples/tests/—— 可忽略,但要知道它们存在

  • docker/:镜像构建用的 Dockerfile 和配置,你用现成镜像就不用管
  • examples/:官方提供的 Jupyter Notebook 示例(如detect.ipynb),适合快速试效果
  • tests/:单元测试代码,验证框架功能,开发者调试用,你无需触碰
  • docs/:API 文档源码,生成后的文档在 docs.ultralytics.com
  • runs/detect/runs/pose/:其他任务类型的产出目录,和runs/segment/平级,互不干扰

这些目录的存在,说明这个镜像是一个完整的、可扩展的开发环境,而不仅是一个“能跑的 demo”。你用不到它们,但知道它们在哪,会让你面对新需求时更有底气。

7. 总结:一张表,锁定所有关键路径

功能目录路径你能做什么绝对不能做什么
模型结构ultralytics/cfg/models/11/yolo11-seg.yaml修改 backbone/head 参数、调整层数修改ultralytics/models/下的.py文件
数据配置ultralytics/cfg/datasets/point-offer-seg.yamlpathtrainvalnames把图片直接放datasets/根目录
你的数据datasets/seg_point_offer_20240930/train/images/train/labels/labels/里放.json.xml
预训练模型weights/yolo11m-seg.pt下载后复制进来yolo11n.yaml+yolo11m.pt混搭
训练脚本train.py(根目录)修改dataepochsbatch等参数删除from ultralytics import YOLO
训练结果runs/segment/train2/results.png、取best.pt、看args.yaml手动修改weights/last.pt的内容

这张表就是你在YOLO11镜像里的“导航仪”。下次遇到问题,先问自己:这个问题属于哪一类?然后直奔对应目录,90% 的困惑都能迎刃而解。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 21:13:25

窗口管理终极指南:提升多任务效率的分屏工具使用技巧

窗口管理终极指南:提升多任务效率的分屏工具使用技巧 【免费下载链接】PowerToys Windows 系统实用工具,用于最大化生产力。 项目地址: https://gitcode.com/GitHub_Trending/po/PowerToys 你是否经常在电脑前面对十几个打开的窗口感到手足无措&a…

作者头像 李华
网站建设 2026/4/10 1:14:50

verl扩展性实测:轻松对接PyTorch和Megatron

verl扩展性实测:轻松对接PyTorch和Megatron 1. 为什么需要一个专为LLM后训练设计的RL框架? 你有没有遇到过这样的问题:手头有一个7B或13B的开源大模型,想用PPO、DPO或KTO做后训练提升对齐效果,但一上手就卡在了工程层…

作者头像 李华
网站建设 2026/4/18 2:00:01

Qwen3-VL-4B:让AI秒懂图像与视频的终极模型

Qwen3-VL-4B:让AI秒懂图像与视频的终极模型 【免费下载链接】Qwen3-VL-4B-Instruct-unsloth-bnb-4bit 项目地址: https://ai.gitcode.com/hf_mirrors/unsloth/Qwen3-VL-4B-Instruct-unsloth-bnb-4bit 导语:Qwen3-VL-4B-Instruct-unsloth-bnb-4bi…

作者头像 李华
网站建设 2026/4/18 1:58:37

5个维度带你掌握python-okx库:从API整合痛点到量化交易落地

5个维度带你掌握python-okx库:从API整合痛点到量化交易落地 【免费下载链接】python-okx 项目地址: https://gitcode.com/GitHub_Trending/py/python-okx 作为一名有2年经验的加密货币量化开发者,我曾为整合OKX交易所API付出过惨痛代价。3000行冗…

作者头像 李华
网站建设 2026/4/18 1:57:22

跨平台视频下载工具深度解析:高效解析与全场景应用指南

跨平台视频下载工具深度解析:高效解析与全场景应用指南 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持视频、音乐、番剧、课程下载……持续更新 项目地址: https://gitcode.com/GitHub_Trending/bilit/Bil…

作者头像 李华
网站建设 2026/4/18 1:59:52

3种方案解决Mac鼠标痛点:从诊断到部署的完整指南

3种方案解决Mac鼠标痛点:从诊断到部署的完整指南 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 问题诊断:你的鼠标在Mac上是否遇到…

作者头像 李华