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操作,因为训练的设备和部署的设备会有硬件差异。
【参考】
分类:
深度学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2018-10-16 函数,参数数组params与数组参数,结构函数
2018-10-16 字符串操作(大小写、去空格、拆分、替换、索引、判断首尾、比较、截取等)