2026/2/19 1:06:16
网站建设
项目流程
电商平台有哪些网站名,wordpress显示产品类别,用户网站建设,电信宽带360元一年YOLO26如何导出模型#xff1f;export功能使用教程
YOLO26作为Ultralytics最新发布的高性能目标检测与姿态估计统一架构#xff0c;不仅在精度和速度上实现突破#xff0c;更通过标准化的export接口大幅简化了模型部署流程。但很多刚接触YOLO26的朋友发现#xff1a;训练完…YOLO26如何导出模型export功能使用教程YOLO26作为Ultralytics最新发布的高性能目标检测与姿态估计统一架构不仅在精度和速度上实现突破更通过标准化的export接口大幅简化了模型部署流程。但很多刚接触YOLO26的朋友发现训练完模型后不知道怎么把它变成能直接集成进业务系统的格式——比如ONNX、TensorRT、TorchScript甚至OpenVINO。别急这篇教程就专为你讲清楚YOLO26的export功能到底怎么用、导出哪些格式最实用、每种格式适合什么场景、常见报错怎么快速解决。全文不讲抽象原理只聚焦“你打开终端后敲哪几行命令就能得到可用模型”。所有操作均基于你已启动的「YOLO26官方版训练与推理镜像」无需额外安装依赖开箱即用。1. 为什么必须掌握export——不是训练完就结束了很多人误以为模型训练完成.pt文件生成就万事大吉其实恰恰相反.pt只是Ultralytics内部训练格式不能直接用于生产环境。它体积大、加载慢、跨平台兼容性差且无法被边缘设备如Jetson、RK3588、Web端ONNX Runtime、工业相机SDK等识别。而export功能就是把训练好的.pt模型安全、无损、可验证地转换成工业级部署格式。它不只是“换个后缀”而是自动剥离训练专用模块如Loss计算、数据增强插入标准推理前/后处理逻辑NMS、坐标归一化、置信度阈值校验输入输出张量形状与类型确保与实际部署环境一致生成带版本信息的元数据便于模型生命周期管理换句话说export是连接算法研发与工程落地的关键桥梁。跳过这步你的模型再准也只是一份“纸上谈兵”的实验成果。2. export基础用法一行命令搞定主流格式YOLO26的export调用极其简洁核心语法就这一行yolo export modelyolo26n-pose.pt formatonnx或使用Python API推荐可控性更强from ultralytics import YOLO model YOLO(yolo26n-pose.pt) model.export(formatonnx, imgsz640, halfTrue, dynamicTrue)2.1 关键参数详解小白也能懂参数取值示例说明小白建议formatonnx,torchscript,engine,openvino,coreml,pb必填指定导出目标格式首选onnx通用性强边缘部署选engineTensorRTimgsz640,[640, 640],[320, 480]输入图像尺寸像素必须与你训练时的imgsz一致否则结果错乱halfTrue/False是否启用FP16半精度True可减小模型体积、提升GPU推理速度绝大多数情况建议开启dynamicTrue/False是否启用动态轴batch/height/widthTrue支持变长输入如不同分辨率图片部署到API服务必开simplifyTrue/False是否对ONNX模型进行图优化True可提升ONNX运行效率导出ONNX时默认开启注意formatengine即TensorRT引擎需额外安装tensorrt库本镜像已预装无需手动配置。2.2 实操演示导出ONNX并验证有效性我们以镜像中自带的轻量级模型yolo26n-pose.pt为例执行完整导出流程# 进入代码目录确保在ultralytics-8.4.2根目录下 cd /root/workspace/ultralytics-8.4.2 # 导出为ONNX格式FP16 动态batch 自动简化 yolo export modelyolo26n-pose.pt formatonnx imgsz640 halfTrue dynamicTrue执行成功后终端会输出类似信息Export complete (12.4s) Saved as: /root/workspace/ultralytics-8.4.2/yolo26n-pose.onnx此时同目录下会生成yolo26n-pose.onnx文件。但这还不够必须验证导出结果是否正确# 创建 verify_export.py 验证脚本 cat verify_export.py EOF from ultralytics import YOLO import torch # 1. 加载原始PT模型并推理基准 model_pt YOLO(yolo26n-pose.pt) results_pt model_pt(ultralytics/assets/zidane.jpg, verboseFalse) boxes_pt results_pt[0].boxes.xyxy.cpu().numpy() # 2. 加载导出的ONNX模型并推理 model_onnx YOLO(yolo26n-pose.onnx) results_onnx model_onnx(ultralytics/assets/zidane.jpg, verboseFalse) boxes_onnx results_onnx[0].boxes.xyxy.cpu().numpy() # 3. 比较关键输出前5个框的坐标 print(PT模型前5框坐标, boxes_pt[:5]) print(ONNX模型前5框坐标, boxes_onnx[:5]) print(坐标最大误差, np.max(np.abs(boxes_pt[:5] - boxes_onnx[:5]))) EOF python verify_export.py若输出误差在1e-3量级内通常为0.000x说明导出完全成功数值一致性有保障。3. 各格式深度解析选对格式事半功倍YOLO26支持7种导出格式但并非所有都适合你。下面按实用性排序直击核心3.1 ONNX首推90%场景首选优势跨平台Windows/Linux/macOS/Android/iOS、被所有主流推理引擎支持ONNX Runtime、TensorRT、OpenVINO、Core ML、社区生态完善、调试方便适用场景Web服务FastAPI ONNX Runtime、移动端iOS Core ML / Android NNAPI、私有云部署、模型交换⚙关键技巧添加opset17参数yolo export ... opset17兼容更多算子若需更高性能导出后用onnxsim进一步简化pip install onnxsim python -m onnxsim yolo26n-pose.onnx yolo26n-pose-sim.onnx3.2 TensorRT EngineGPU服务器/边缘设备终极选择优势NVIDIA GPU上推理速度最快比ONNX快2–5倍、显存占用更低、支持INT8量化适用场景高并发视频分析如安防摄像头流、Jetson系列边缘盒子、数据中心GPU服务器⚙关键技巧必须指定device0使用GPU导出yolo export modelyolo26n-pose.pt formatengine device0如需INT8量化先准备校准数据集再加参数int8True calib_datapath/to/calib/images3.3 TorchScriptPyTorch生态无缝衔接优势零依赖部署无需安装ultralytics、可直接用torch.jit.load()加载、支持C调用适用场景已有PyTorch服务框架、需要C集成如自动驾驶中间件、离线环境部署⚙注意导出后文件较大含完整PyTorch运行时且不支持动态shape3.4 其他格式简明指南格式何时选用注意事项openvinoIntel CPU/NPU设备如i7、Arc GPU需Intel OpenVINO ToolkitCPU推理性能优异coremliOS/macOS原生应用仅Apple生态导出后需Xcode签名pbTensorFlow老旧TF1.x系统兼容已逐步淘汰新项目不推荐torchscript见3.3节—真实建议新手从ONNX起步有GPU加速需求再上TensorRT其他格式按硬件生态被动选择。4. 常见问题与解决方案避坑指南导出过程看似简单但新手常踩以下5个坑。我们按发生频率排序并给出一行命令级解决方案4.1 报错ModuleNotFoundError: No module named tensorrt导出engine时❌ 错误原因虽然镜像预装了TensorRT但Python环境未正确链接一键修复conda activate yolo pip install nvidia-tensorrt --index-url https://pypi.ngc.nvidia.com4.2 导出ONNX后推理结果全为0或坐标异常❌ 错误原因imgsz参数与训练尺寸不一致或未开启dynamicTrue导致输入尺寸被强制截断立即检查# 查看训练时的imgsz打开train.py找imgsz参数 grep imgsz train.py # 确保export时imgsz完全一致且加dynamic yolo export modelyolo26n-pose.pt formatonnx imgsz640 dynamicTrue4.3 导出速度极慢卡在“Building engine…”超10分钟❌ 错误原因首次导出TensorRT需编译CUDA kernel耗时较长属正常现象应对策略耐心等待首次完成后续相同配置导出将秒级完成。可加verboseTrue观察进度。4.4 导出的ONNX模型在ONNX Runtime报错InvalidArgument输入shape不匹配❌ 错误原因ONNX模型输入名非标准如images而非input或缺少动态axis声明强制规范yolo export modelyolo26n-pose.pt formatonnx imgsz640 dynamicTrue opset17 # 导出后用Netron工具https://netron.app打开检查输入节点名与shape4.5 想导出带自定义后处理如添加类别映射、坐标反归一化的模型❌ 原生export不支持修改后处理逻辑替代方案导出为TorchScript再用PyTorch手动包装# 1. 先导出TorchScript model YOLO(yolo26n-pose.pt) model.export(formattorchscript) # 2. 加载并封装后处理 import torch ts_model torch.jit.load(yolo26n-pose.torchscript) class DeployModel(torch.nn.Module): def __init__(self, model): super().__init__() self.model model def forward(self, x): pred self.model(x) # 原始输出 # 在此处插入你的后处理逻辑 return your_postprocess(pred) deploy_model DeployModel(ts_model) torch.jit.script(deploy_model).save(deploy_model.torchscript)5. 进阶技巧批量导出自动化验证当你要为多个模型如yolo26n.pt,yolo26s.pt,yolo26m.pt导出同一格式时手动操作效率低下。用这个脚本一键搞定# 创建 batch_export.sh cat batch_export.sh EOF #!/bin/bash MODELS(yolo26n-pose.pt yolo26s-pose.pt yolo26m-pose.pt) FORMATonnx IMGSZ640 for model in ${MODELS[]}; do echo 正在导出 $model 为 $FORMAT... yolo export model$model format$FORMAT imgsz$IMGSZ halfTrue dynamicTrue # 自动验证 python -c from ultralytics import YOLO m YOLO($model); r1 m(ultralytics/assets/bus.jpg, verboseFalse)[0].boxes.xyxy m_onnx YOLO(${model%.pt}.$FORMAT); r2 m_onnx(ultralytics/assets/bus.jpg, verboseFalse)[0].boxes.xyxy err max(abs((r1-r2).flatten())) print(f $model - ${model%.pt}.$FORMAT 验证通过最大误差: {err:.6f}) done EOF chmod x batch_export.sh ./batch_export.sh运行后自动完成全部模型导出逐个验证结果清晰打印省时省力。6. 总结export不是终点而是新起点回顾一下你已经掌握了为什么导出.pt只是训练中间产物export才是通往生产的必经之路怎么导出一行yolo export命令配合format/imgsz/half/dynamic四大核心参数选什么格式ONNX通用首选TensorRT追求极致GPU性能TorchScript适配PyTorch生态怎么避坑5个高频报错的一行修复命令覆盖95%实战问题怎么提效批量导出脚本让重复工作自动化。但请记住导出完成≠部署完成。下一步你需要将ONNX模型接入ONNX Runtime服务参考onnxruntime-server文档用TensorRT Builder做INT8量化提升边缘设备帧率编写C/Python推理胶水代码对接你的业务API这些内容我们将在下期《YOLO26模型部署实战从ONNX到高并发API服务》中详细展开。现在立刻打开你的终端用yolo export把第一个模型导出来吧——真正的工程落地就从这一行命令开始。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。