当我使用 Python 脚本,通过加载 yolov12.yaml 并 model.load('yolov12n.pt') 的方式来训练自定义数据集时,日志显示 Transferred 699/701 items from pretrained weights。
这导致训练完全无法收敛,第一个 epoch 的 mAP 仅为 9.57e-05,这表明模型的关键层(很可能是检测头)是随机初始化的。
如果我绕过 .yaml 文件,直接使用 model = YOLO('/home/MyProject/yolov12n.pt') 来训练(不使用 model.load()),模型 mAP 就能正常达到 0.6+。
这证明我的数据集、环境都是正常的。
问题似乎是出在仓库中的 yolov12.yaml(蓝图)和官方提供的 yolov12n.pt(权重)之间存在 2 个层的版本不匹配。这使得任何想要基于 .yaml 进行修改(比如我的科研项目)的下游任务都无法正确进行。
请问这是预期的行为吗?还是说 .yaml 和 .pt 文件确实不同步?我应该如何才能正确地加载 100% 的权重并开始修改 .yaml 文件?
当我使用 Python 脚本,通过加载 yolov12.yaml 并 model.load('yolov12n.pt') 的方式来训练自定义数据集时,日志显示 Transferred 699/701 items from pretrained weights。
这导致训练完全无法收敛,第一个 epoch 的 mAP 仅为 9.57e-05,这表明模型的关键层(很可能是检测头)是随机初始化的。
如果我绕过 .yaml 文件,直接使用 model = YOLO('/home/MyProject/yolov12n.pt') 来训练(不使用 model.load()),模型 mAP 就能正常达到 0.6+。
这证明我的数据集、环境都是正常的。
问题似乎是出在仓库中的 yolov12.yaml(蓝图)和官方提供的 yolov12n.pt(权重)之间存在 2 个层的版本不匹配。这使得任何想要基于 .yaml 进行修改(比如我的科研项目)的下游任务都无法正确进行。
请问这是预期的行为吗?还是说 .yaml 和 .pt 文件确实不同步?我应该如何才能正确地加载 100% 的权重并开始修改 .yaml 文件?