YOLO11在训练和导出时的一些参数设置

train时,imsz只能设置成1个整数。如果设置成数组,会提示:updating to 'imgsz=640'. 'train' and 'val' imgsz must be an integer, while 'predict' and 'export' 

图像会以较长的边等比例缩放到指定的整数,然后较短的边的两侧填充114到指定的整数尺寸。即最终会是一个正方形,原图缩放在中间。原图尺寸推荐32的倍数。

export时,imsz可以设置成1个整数或数组。如果原图高*宽是480*640,可以输出设置为imsz=[480,640]。预测时,imsz=[480,640]

 

训练时,设置如下

from ultralytics import YOLO
# 训练
model = YOLO("yolo11n.pt")
results = model.train(data="D:/datasets/foreignfiber.yaml", epochs=100, batch=16, imgsz=640, device=0)

导出时,为了提速,可以设置 half、int8,这两个只能1个为True。但是int8=True得到的模型,预测效果会差很多,也不知道哪里有问题。(int8是速度最快的,但是精度下降了)

int8=True需要指定验证集,必须设置data参数(会自动识别到yaml配置里的验证集,验证集推荐不低于500张图,1000张最佳),同时dynamic=True(即使不设置也会变为True)

设置如下:

# -------------------- 转格式
from ultralytics import YOLO

model = YOLO("./runs/detect/train/weights/best.pt")
model.export(format="engine", imgsz=[384, 640], batch=1, half=False, int8=True, dynamic=True, data="D:/datasets/foreignfiber.yaml", device=0)

或者

# -------------------- 转格式
from ultralytics import YOLO

model = YOLO("./runs/detect/train/weights/best.pt")
model.export(format="engine", imgsz=[384, 640], batch=1, dynamic=False, half=True, int8=False, device=0)

int8=True时,需要在部署的设备上进行export操作,因为训练的设备和部署的设备会有硬件差异。

【参考】

Train - Ultralytics YOLO Docs

Export - Ultralytics YOLO Docs

TensorRT - Ultralytics YOLO Docs

posted @   夕西行  阅读(1852)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2018-10-16 函数,参数数组params与数组参数,结构函数
2018-10-16 字符串操作(大小写、去空格、拆分、替换、索引、判断首尾、比较、截取等)
点击右上角即可分享
微信分享提示