问题

源代码模型的位置:ultralytics-main\ultralytics\cfg\models\11\yolo11-seg.yaml

model = YOLO("yolo11n-seg.yaml").load("yolo11m.pt")  

上述代码只能调用yolo11的scale为n的模型,用m模型的预训练参数,训练结束后模型大小和n接近。
解决方法: 要想得到yolo11的scale为m的模型,用m模型的预训练参数,训练结束后模型大小和m接近,需要将代码改成:

model = YOLO("yolo11m-seg.yaml").load("yolo11m.pt")  

注意:
1、YOLO(“yolo11n-seg.yaml”)是确定网络模型结构,而.load(“yolo11m.pt”) 确定网络模型预训练参数(不会确定网络模型结构)。
2、YOLO(“yolo11n-seg-test.yaml”)如果用的yolo11n-seg-test.yaml文件是自己的模型网络结构,也要在yolo11后+n/m/l,这样yolo才会去解析n/m/l的模型。
3、是否成功加载全部预训练参数看这段代码:

Transferred 119/1077 items from pretrained weights

119/1077说明没有加载m的预训练参数,你的模型是m而预训练参数调用为n。
4、yolov8同理,测试yolov版本:
Ultralytics 8.3.201 -->yolo11
Ultralytics YOLOv8.2.19 -->yolov8

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐