2026/5/14 0:14:46
网站建设
项目流程
河南省建设银行网站,如何用dw制作网页框架,樟木头镇做网站,专业建站开发/root/yolov9 目录结构说明#xff0c;代码位置一目了然
你刚启动 YOLOv9 官方版训练与推理镜像#xff0c;终端里敲下 ls -l /root/#xff0c;看到一个醒目的 yolov9 文件夹——但点进去后#xff0c;面对几十个 Python 文件、嵌套的 models/ 和 data/ 子目录#xff0…/root/yolov9目录结构说明代码位置一目了然你刚启动 YOLOv9 官方版训练与推理镜像终端里敲下ls -l /root/看到一个醒目的yolov9文件夹——但点进去后面对几十个 Python 文件、嵌套的models/和data/子目录是否有点无从下手别急这不是代码太乱而是你还没掌握它的“地图”。本文不讲原理、不跑训练、不调参数只做一件事带你把/root/yolov9这个目录彻底看懂。每一级子目录是干什么的关键脚本detect_dual.py、train_dual.py藏在哪权重文件、配置文件、数据定义怎么找哪些文件你该改、哪些绝对别碰读完这篇你再进这个目录就像回到自己家——门在哪、厨房在哪、工具箱在哪个抽屉清清楚楚。1. 整体定位为什么是/root/yolov9先明确一个前提这个路径不是随意指定的而是镜像构建时就固化下来的工作主干目录。它等价于你在本地 clone 官方仓库后的项目根目录即 WongKinYiu/yolov9 的完整副本。它不是临时缓存也不是安装路径而是你所有操作的起点和落点推理命令python detect_dual.py ...必须在这个目录下执行训练日志、检测结果默认输出到runs/子目录而runs/就在/root/yolov9/下所有.yaml配置文件模型结构、超参、数据集都集中存放于此或其子目录中预置的yolov9-s.pt权重文件就躺在这个目录的最外层。换句话说你不需要cd到其他地方也不用到处找代码——/root/yolov9就是你的全部战场。2. 根目录全景一眼看清核心文件与作用进入/root/yolov9后运行ls -F加-F可直观区分文件/目录你会看到如下主要项data/ models/ utils/ detect_dual.py train_dual.py val_dual.py data.yaml hyp.scratch-high.yaml yolov9-s.pt README.md requirements.txt我们按功能分组梳理不堆术语只说“这东西你拿来干啥”2.1 必用脚本三个核心入口各司其职文件名类型一句话用途你什么时候会用它detect_dual.pyPython 脚本做推理把图片/视频喂给模型让它框出目标想快速测试一张图有没有检出马、人、车就用它train_dual.pyPython 脚本做训练用你的数据集从头或微调训练一个新模型你有自己的标注数据想训一个专用于产线缺陷检测的模型就用它val_dual.pyPython 脚本做验证在验证集上跑一遍看模型当前效果如何精度、召回率等训完模型后想知道 mAP 是多少就用它小提示这三个脚本名字里的_dual并非指“双卡”而是 YOLOv9 官方为支持其核心创新机制PGI、GELAN所设计的双分支前向逻辑属于模型内部实现细节。你只需知道它们是官方推荐的、开箱即用的标准入口即可无需修改。2.2 配置文件告诉模型“你要学什么、怎么学”文件名类型关键作用你通常要改它吗data.yamlYAML 配置定义你的数据集类别名names:、训练集/验证集/测试集路径train:/val:/test:必须改否则模型不知道你的图片在哪、有多少类hyp.scratch-high.yamlYAML 配置定义训练超参数学习率、动量、数据增强强度、标签平滑系数等建议初学者先用默认值熟悉后再调优models/detect/yolov9-s.yamlYAML 配置定义模型结构主干网backbone、颈部neck、头部head各层怎么搭❌ 不建议新手改换模型大小s/m/l/e时才需切换举个实际例子假设你要训一个“螺丝垫片”二分类检测模型。你只需打开data.yaml把names: [ person, car ]改成names: [ screw, washer ]再把train:后面的路径指向你放标注图片的文件夹如../my_dataset/images/train就完成了最关键的一步。2.3 权重与资源开箱即用的“弹药包”文件名类型说明你能直接用它吗yolov9-s.ptPyTorch 模型文件官方预训练好的轻量版权重已下载好就在根目录能detect_dual.py默认就加载它无需额外下载README.md文档官方仓库说明含最新用法、引用方式、许可证建议扫一眼尤其看 “Quick Start” 部分requirements.txt文本项目依赖列表虽然镜像已装好但可查版本❌ 日常不用管升级环境时可参考3. 关键子目录深度解析层层剥开直抵核心根目录只是表层真正干活的代码和配置藏在几个关键子目录里。我们一层层拆解不罗列所有文件只聚焦你每天都会打交道的部分。3.1models/目录模型结构的“图纸库”路径/root/yolov9/models/这是整个项目的“心脏设计图”所在。YOLOv9 提供了多个预设模型变体对应不同精度与速度权衡models/ ├── detect/ # 目标检测专用模型定义 │ ├── yolov9-s.yaml # 小型模型适合边缘设备 │ ├── yolov9-m.yaml # 中型模型平衡之选 │ ├── yolov9-l.yaml # 大型模型高精度场景 │ └── yolov9-e.yaml # 特大型模型研究/服务器端 └── segment/ # 实例分割模型本镜像暂未启用可忽略重点提醒yolov9-s.yaml是镜像中train_dual.py示例命令里--cfg models/detect/yolov9-s.yaml明确指定的配置如果你想换用yolov9-m只需把命令中的路径改成models/detect/yolov9-m.yaml无需重装任何东西这些.yaml文件本质是文本用cat或任意编辑器打开就能看到类似backbone: [ [-1, 1, Conv, [64, 3, 2]] ]的结构描述——它定义了网络每一层的输入、类型、参数是模型可复现性的基石。3.2utils/目录工具函数的“百宝箱”路径/root/yolov9/utils/这里没有主流程全是支撑性代码但你几乎每次调试、分析、定制都会用到子目录/文件作用你可能怎么用它general.py通用工具路径处理、文件检查、日志打印、NMS非极大值抑制实现查看non_max_suppression()函数源码理解框合并逻辑plots.py绘图工具画 PR 曲线、混淆矩阵、特征图热力图训练完想看 mAP 曲线它负责生成results.pngtorch_utils.pyPyTorch 专用工具模型初始化、梯度裁剪、混合精度开关想手动开启 FP16找amp_autocast相关逻辑autoanchor.py自动锚框计算虽 YOLOv9 主推 Anchor-free但部分模块仍兼容一般不用动了解即可实用技巧当你遇到报错如AttributeError: module utils.general has no attribute check_img_size直接cd /root/yolov9/utils ls看文件是否存在比百度更快。3.3data/目录数据组织的“标准样板间”路径/root/yolov9/data/镜像自带了一个最小可用示例数据集images/labels/位于data/images/和data/labels/。但它不是你该放自己数据的地方——那是给官方 demo 用的。真正的数据组织规范由data.yaml文件定义。你自己的数据集应按如下结构放在镜像外部或挂载卷内例如/workspace/my_dataset/my_dataset/ ├── images/ │ ├── train/ │ ├── val/ │ └── test/ # 可选 └── labels/ ├── train/ └── val/然后在data.yaml中写明路径train: ../my_dataset/images/train val: ../my_dataset/images/val test: ../my_dataset/images/test # 可选 nc: 2 # 类别数 names: [screw, washer] # 类别名顺序必须与 labels/ 中 txt 文件的 class_id 一致关键原则YOLOv9不关心你的数据在哪台机器上只认data.yaml里写的相对或绝对路径。只要路径对、格式对jpg 对应 txt它就能找到。3.4runs/目录所有输出的“自动归档站”路径/root/yolov9/runs/这是你唯一需要定期查看、也最该关注的输出目录。所有命令的产物都按类型自动归类存放runs/ ├── detect/ # detect_dual.py 的输出 │ └── yolov9_s_640_detect/ # 你指定的 --name 名称 │ ├── crops/ # 检出的目标裁剪图按类别分文件夹 │ ├── labels/ # 检测结果的 txt 标注文件YOLO 格式 │ ├── yolov9_s_640_detect.jpg # 带框的可视化结果图 │ └── ... ├── train/ # train_dual.py 的输出 │ └── yolov9-s/ # 你指定的 --name │ ├── weights/ # 训练过程保存的 best.pt、last.pt │ ├── results.csv # 每 epoch 的 metricsmAP, loss 等 │ ├── results.png # 自动生成的训练曲线图 │ ├── train_batch0.jpg # 训练初期的 batch 可视化检查数据增强是否正常 │ └── ... └── val/ # val_dual.py 的输出评估报告真实经验runs/detect/xxx/下的xxx.jpg是你第一眼验证效果的地方runs/train/xxx/weights/best.pt是你训完后要拿去部署的最终模型runs/train/xxx/results.csv用 Excel 打开看最后一行的metrics/mAP50-95(B)就是你的核心指标。4. 常见操作路径速查表告别find和grep新手最常卡壳的不是不会写代码而是“那个文件到底在哪儿”下面这张表按高频任务整理复制粘贴就能用你想做的事命令说明看当前有哪些预训练权重ls -lh /root/yolov9/*.pt确认yolov9-s.pt是否存在且大小正常约 220MB快速查看数据集配置cat /root/yolov9/data.yaml | head -n 20重点看train:、val:、names:三行检查模型结构定义cat /root/yolov9/models/detect/yolov9-s.yaml | head -n 15看nc:类别数、depth_multiple:网络深度缩放因子查看训练日志摘要tail -n 10 /root/yolov9/runs/train/yolov9-s/results.csv最后一行即最终 epoch 结果删除某次失败训练的全部输出rm -rf /root/yolov9/runs/train/yolov9-s彻底清理腾出空间避免干扰下次训练确认当前 Python 环境conda info --envs conda activate yolov9 python --version确保已激活yolov9环境Python 为 3.8.5进阶提示所有*.py脚本顶部都有清晰的argparse参数说明。直接python detect_dual.py -h就能看到所有可选项--source,--weights,--img,--device等比查文档还快。5. 安全边界提醒哪些地方千万别乱改目录结构清晰了但自由不等于随意。以下几处是新手易踩的“深坑”务必避开不要修改detect_dual.py/train_dual.py的主干逻辑它们是官方维护的稳定入口。想加功能在utils/里写新函数然后在脚本里import调用。不要手动编辑yolov9-s.pt或其他.pt文件这是二进制模型权重用文本编辑器打开只会损坏。想导出 ONNX用export.py如有或官方提供的转换脚本。不要把自定义数据集直接塞进/root/yolov9/data/镜像内的data/是只读示例。你的数据请放在/workspace/若已挂载或/root/datasets/等独立路径并通过data.yaml指向它。不要在models/下新建.yaml文件并随意修改层定义网络结构高度耦合少改一个通道数c1,c2就可能导致RuntimeError: shape mismatch。如需定制模型请先读懂models/common.py中的模块定义。不要删除utils/下的任何.py文件即使看起来没用如loss.py它们也是训练流程的隐式依赖。缺失会导致ImportError。正确姿势所有定制化都应遵循“配置驱动、脚本调用、外部数据”三原则——改data.yaml、调train_dual.py、数据放外面。这是最安全、最可持续的工作流。6. 总结你现在已经拥有了 YOLOv9 的“导航仪”读到这里你不再是一个面对/root/yolov9目录手足无措的新手而是一个手握精准地图的实践者你知道detect_dual.py是推理的开关train_dual.py是训练的引擎它们就在根目录随时待命你知道data.yaml是数据集的总开关models/detect/yolov9-s.yaml是模型的蓝图改它们比改代码更安全高效你知道yolov9-s.pt就在眼皮底下runs/目录会自动记录一切成果无需你手动管理路径你知道utils/是工具箱models/是图纸库它们分工明确各司其职你也清楚哪些红线不能碰哪些操作可以大胆尝试。技术落地的第一步从来不是写多炫酷的代码而是建立对工程环境的确定性认知。现在这份确定性你已经拿到了。下一步就是选一张图敲下那行python detect_dual.py --source ...亲眼看看 YOLOv9 在你眼前画出第一个检测框——那一刻目录结构就不再是文字而是你掌控模型的起点。--- **获取更多AI镜像** 想探索更多AI镜像和应用场景访问 [CSDN星图镜像广场](https://ai.csdn.net/?utm_sourcemirror_blog_end)提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。