Ch01:从 YAML 到 DetectionModel.forward
目标:看完这一章,你能从一份
yolo26.yaml文件出发,完整追踪到DetectionModel的forward出口,并明确“哪些东西 YOLOv8/v9/v10/v11/v12/v26 共享,哪些不同”。
1.1 仓库的三层结构
Ultralytics 仓库可以先看成三层:配置层、模块层、引擎层。
配置层:ultralytics/cfg/models/**/*.yaml 描述模型拓扑、重复次数、通道数、head 类型、reg_max/end2end 等顶层开关 模块层:ultralytics/nn/modules/*.py + ultralytics/nn/tasks.py 定义 Conv/C2f/C3k2/A2C2f/SPPF/Detect 等 nn.Module,并用 parse_model 组装网络 引擎层:ultralytics/engine/*.py + ultralytics/models/yolo/*/*.p