2026/3/28 2:18:34
网站建设
项目流程
做网上商城网站设计,深圳建筑工务署官网,媒体网站的品牌建设,网站建设加盟招商YOLO11项目目录结构说明#xff0c;一看就懂
你刚拉起YOLO11镜像#xff0c;打开终端#xff0c;输入ls却看到满屏文件夹——ultralytics/、datasets/、runs/、weights/、train.py……它们各自负责什么#xff1f;哪个该放图片、哪个该改参数、哪个动了会训练失败#xf…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.py中from 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: food3.4 你该怎么做严格按结构放图和标签图片进images/生成的.txt进labels/文件名必须一一对应abc.jpg↔abc.txtYAML 中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 found或No labels found90% 是因为path写错或images/和labels/没放在train/val/下。4. 运行产出区runs/—— 模型的“成长日记本”4.1 它自动产生什么每次你运行python train.pyYOLO11 就会在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.pt≠best.ptlast.pt是训练终点best.pt是验证集表现顶峰——后者才是部署首选效率技巧想快速对比两次训练直接打开两个results.png并排看曲线比读日志快十倍。5. 资源管理区weights/与train.py—— 你的“控制台”5.1weights/预训练模型的保险柜这个目录专放.pt权重文件YOLO11 官方提供多种尺寸和任务的预训练模型yolo11n-seg.pt轻量级适合边缘设备yolo11m-seg.pt平衡型本文示例默认使用yolo11x-seg.pt高精度需大显存你只需做两件事把下载好的.pt文件放进weights/在train.py中写明路径model YOLO(yolo11m-seg.yaml).load(weights/yolo11m-seg.pt)注意.yaml结构和.pt权重必须匹配yolo11m-seg.yamlyolo11m-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.comruns/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.yaml改path、train、val、names把图片直接放datasets/根目录你的数据datasets/seg_point_offer_20240930/放train/images/、train/labels/在labels/里放.json或.xml预训练模型weights/yolo11m-seg.pt下载后复制进来用yolo11n.yamlyolo11m.pt混搭训练脚本train.py根目录修改data、epochs、batch等参数删除from ultralytics import YOLO行训练结果runs/segment/train2/查results.png、取best.pt、看args.yaml手动修改weights/last.pt的内容这张表就是你在YOLO11镜像里的“导航仪”。下次遇到问题先问自己这个问题属于哪一类然后直奔对应目录90% 的困惑都能迎刃而解。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。