ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Ultralytics YOLO26 模型导出实战指南:Export 模式详解与 ONNX / TensorRT / CoreML 等多格式部署

Ultralytics YOLO26 模型导出实战指南:Export 模式详解与 ONNX / TensorRT / CoreML 等多格式部署 Ultralytics YOLO26 模型导出实战指南Export 模式详解与 ONNX / TensorRT / CoreML 等多格式部署【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics模型训练的终点是部署。Ultralytics 的Export导出模式允许把训练好的 PyTorch 权重一次性转换为 ONNX、TensorRT、CoreML、OpenVINO、LiteRT 等二十余种运行格式让同一份模型能够跑在不同的硬件与推理框架上。本文以仓库文档 docs/en/modes/export.md 为主体结合 ultralytics/engine/exporter.py 的源码实现系统讲解导出参数、量化精度、格式选型与常见问题帮助你把 YOLO26 模型稳定地送上目标部署环境。一、什么是 Export 模式为何需要导出模型训练产出的best.pt是 PyTorch 原生格式直接用它推理固然可行但真实产品往往需要更快的推理速度、更小的模型体积、更强的算子优化或对特定硬件的适配——这就要通过 Export 模式把模型翻译成目标运行时能直接加载的中间表示或引擎文件。在 Ultralytics 中导出是六大模式train / val / predict /export/ track / benchmark之一。核心入口非常简单Pythonmodel.export(format...)CLIyolo export model... format...导出动作完成后Ultralytics 会打印该格式的后续使用示例如yolo predict modelyolo26n.onnx导出的产物可以直接用于predict或val例如yolo predict modelyolo26n.onnx。这意味着同一个推理链路上只要换一个model路径就能无缝切换到导出的运行时后端。甚至无需任何本地环境也可以在 Ultralytics Platform 的浏览器中直接完成导出参见 docs/en/platform/train/models.md 中的 Export Model 说明。选择导出格式的收益原文档给出的性能指引在仓库与集成文档中保持一致导出为 ONNX 或 OpenVINO在CPU上可获得最高约3 倍的推理加速导出为 TensorRT在NVIDIA GPU上可获得最高约5 倍的推理加速。Export 模式的突出能力一键导出Python / CLI 各一条命令即可切换目标格式批处理能力可通过batch参数导出支持批量推理的模型推理优化产物针对目标运行时做了算子级优化如 ONNX 图简化、TensorRT 引擎构建广泛兼容覆盖从云端 GPU 到移动端、NPU、边缘设备的多种软硬件环境。从源码结构看ultralytics/engine/exporter.py 中的Exporter类exporter.py#L508-L558把「参数校验 → 设备选择 → 模型预处理 → 逐格式导出 → 结果检查」封装成一个完整的流水线每个目标格式都对应独立的export_xxx()方法全部通过try_export装饰器包裹exporter.py#L485-L505——导出成功时输出耗时与产物体积导出失败则抛出明确错误同时会断言产物文件大于 0.1 MB防止生成损坏或算子不支持的模型。二、快速开始导出你的第一个模型以官方 YOLO26n 权重或自定义训练权重为例 Pythonpython from ultralytics import YOLO # 加载模型 model YOLO(yolo26n.pt) # 加载官方模型 model YOLO(path/to/best.pt) # 加载自定义训练模型 # 导出模型 model.export(formatonnx) CLIbash yolo export modelyolo26n.pt formatonnx # 导出官方模型 yolo export modelpath/to/best.pt formatonnx # 导出自定义训练模型 前置条件若此前仅安装了基础包需要补充导出相关依赖可执行pip install ultralytics[export]。这一点也在 exporter.py 顶部的模块 docstring 中有明确标注。导出到不同格式时目标产物命名遵循统一规则以 YOLO26 为例参考 exporter.py#L146-L277 中export_formats()的Suffix列格式format参数产物文件PyTorch-yolo26n.ptTorchScripttorchscriptyolo26n.torchscriptONNXonnxyolo26n.onnxOpenVINOopenvinoyolo26n_openvino_model/TensorRTengineyolo26n.engineCoreMLcoremlyolo26n.mlpackageTensorFlow SavedModelsaved_modelyolo26n_saved_model/TensorFlow GraphDefpbyolo26n.pbTensorFlow Edge TPUedgetpuyolo26n_edgetpu.tflitePaddlePaddlepaddleyolo26n_paddle_model/MNNmnnyolo26n.mnnNCNNncnnyolo26n_ncnn_model/IMX500imxyolo26n_imx_model/RKNNrknnyolo26n_rknn_model/ExecuTorchexecutorchyolo26n_executorch_model/Axelera AIaxelerayolo26n_axelera_model/DEEPXdeepxyolo26n_deepx_model/Qualcomm QNNqnnyolo26n_qnn.onnxLiteRTlitertyolo26n.tfliteHailohailoyolo26n_hailo_model/Huawei Ascendascendyolo26n_ascend_model/Apple Core AIcoreaiyolo26n.aimodel源码中的格式别名与兼容处理Exporter.__call__exporter.py#L572-L603会自动规范化format参数tensorrt/trt归一到enginemlmodel/mlpackage/mlprogram/apple/ios归一到coremlhuawei/cann/om归一到ascend而历史遗留的tflite/tfjs参数自 8.4.83 起被统一为 Google LiteRT 导出litert并输出弃用警告。若传入完全无法识别的格式源码会尝试用difflib匹配最相近的合法格式否则直接抛出 Invalid export format 错误。此外formatengineTensorRT必须依赖 GPU源码在未指定设备时会自动分配device0。三、导出参数全解3.1 参数总表下列参数控制导出的目标格式、输入尺寸、量化精度与部署行为继承并展开自 docs/macros/export-args.md其中多数默认值可在 ultralytics/cfg/default.yaml 的 Export settings 段核对参数类型默认值说明formatstrtorchscript目标导出格式如onnx、torchscript、engineTensorRT等每种格式对应不同的部署环境。namestrNone需要指定硬件目标的格式使用Hailo 架构hailo8/hailo8l/hailo10h/hailo15h/hailo15l默认hailo8l、Rockchip RKNN 芯片默认rk3588、Huawei Ascend SoCCANN--soc_version默认Ascend310B4、Qualcomm QNN HTP 目标默认73。注意它与 train/predict 等模式中project/name的运行命名对是两回事。imgszint或tuple640模型输入尺寸。整数表示正方形如 640×640元组为(height, width)。若不显式传入则复用权重中记录的训练尺寸官方 YOLO26 权重中 depth 记录 768、classify 记录 224、OBB 记录 1024其余任务为 640自定义微调模型则记录其训练时的imgsz。由 YAML 构建的模型没有训练记录因此默认 640。kerasboolFalseTensorFlow SavedModel 是否导出为 Keras 格式兼容 TensorFlow Serving 等 API。optimizeboolFalse仅 DEEPX 使用开启更高编译优化以降低推理延迟但会拉长编译时间。quantizeint或strNone量化精度16FP16缩小体积、在支持硬件上加速、8INT8/PTQ进一步压缩、主要面向边缘设备需要校准data/fraction32/不设置表示 FP32。支持混合权重/激活精度导出的格式还接受w8a8/w16a16/w8a16/w8a32记法。它取代了已弃用的half/int8参数halfTrue→16int8True→8仍会接受但给出弃用警告。只有目标格式支持的精度才会被允许详见第四节。dynamicboolFalse是否允许动态输入尺寸适用于 TorchScript、ONNX、OpenVINO、TensorRT 与 CoreML便于处理多变图像尺寸。simplifyboolTrue对会生成中间 ONNX 图的导出使用onnxslim简化计算图提升性能与兼容性。opsetintNone中间 ONNX 图的 opset 版本用于兼容不同解析器与运行时不设置则用最新支持版本。workspacefloat或NoneNoneTensorRT 构建时的最大 workspace 大小GiB平衡显存与性能None表示交给 TensorRT 自动分配到设备上限。nmsboolFalse在支持的格式中把 NMS 后处理融合进导出模型见 Export Formats 一节各格式支持情况提升检测后处理效率。end2end 模型不可用CoreML 仅检测模型支持。conffloatNone在「导出期生成 NMS」的场景使用nmsTrue导出、Hailo 非端到端检测导出以及内部强制nmsTrue的 IMX 检测/姿态/分割导出。未设置时默认 0.25。ioufloat0.7在同样生成导出期 NMS 的场景中使用的 IoU 阈值。max_detint300导出模型输出保留的最大检测数量。作用于除 CoreML其 NMS 无检测上限之外所有nmsTrue导出以及无 NMS 的端到端检测导出YOLO26、YOLOv10会按可用 anchor 数截断还有 IMX 的检测/姿态/分割导出。agnostic_nmsboolFalse在标准nmsTrue管线下启用类别无关 NMS包含 CoreML 自己的 NMS 阶段即跨类别抑制低分重叠框。Hailo、IMX 自行生成的 NMS 无此选项始终保持类别相关。对端到端导出YOLO26、YOLOv10同样生效但仅用于阻止同一检测框以多个类别标签重复出现IoU1.0 的重复不会做 IoU 阈值层面的框间抑制。batchint1导出模型的批大小或 predict 时并发处理的最大图像数。Edge TPU 导出会被自动置为 1。devicestrNone导出用设备GPUdevice0、CPUdevicecpu、Apple silicon MPSdevicemps、Huawei Ascend NPUdevicenpu或devicenpu:0、NVIDIA Jetson DLAdevicedla:0/dla:1。TensorRT 自动使用 GPU且 TensorRT 11.0 不支持 DLA。verboseboolFalse仅formatengine生效把 TensorRT builder 日志提升到 VERBOSE 级别其他格式忽略。datastrNone数据集 YAML 路径INT8 量化校准时必需分类任务则接受数据集目录或内置数据集名。INT8 开启但未指定时Ultralytics 会按需选择任务专用校准数据集或回退到该任务默认数据集。splitstrval用于构建 INT8 量化校准 dataloader 的数据集划分train/val/test。fractionfloat/int/list1.0INT8 校准所用数据子集比例、图像数量或[train, val, test]列表。1表示整份划分大于 1 的整数表示图像数量仅可选的 test 项接受0/0.0表示不使用双元素列表表示 test 使用完整集。end2endboolNone覆盖支持无 NMS 推理的 YOLO 模型YOLO26、YOLOv10的端到端模式。设为False可导出兼容传统 NMS 后处理流程的版本详见 End-to-End Detection 指南。3.2 关键参数背后的源码逻辑参数-格式匹配校验validate_argsexporter.py#L447-L482会先取export_formats()中该格式允许的参数集合再比对实际传入值。若某个参数对该格式无效如给 PaddlePaddle 传dynamic导出会直接以ERROR ❌️ argument ... is not supported for format...中止而不是等导出失败后才暴露问题。这是保证「导出的每一步都可预期」的重要防线。量化前置校验validate_args同时按第四节精度矩阵拦截不支持的组合例如quantize16FP16用于不在 FP16 支持集内的格式时会立即报错并提示该格式可用的精度选项。输入形状self.imgsz check_imgsz(...)保证输入尺寸对齐模型 stride随后用torch.zeros(batch, channels, *imgsz)构造虚拟输入做两次 dry-run 前向拿到真实输出形状output_shape后再进入逐格式导出exporter.py#L717、L846、L916-L930。模型预处理导出前会对模型做deepcopy、冻结参数requires_gradFalse、切到eval、float并对 Conv-BN 做fuse()exporter.py#L854-L859对 Detect 系列头会按当前imgsz把max_det夹紧到可用 anchor 数量之内保证 TensorRT 兼容性。硬件目标自动选择源码为需要name的格式提供默认值——RKNN 默认rk3588并校验RKNN_CHIPSRV1103/RV1106 等低端芯片强制 INT8Ascend 默认Ascend310B4合法值取决于本机安装的 CANN 内核包QNN 默认73Snapdragon 8 Gen 2并接受v73等别名exporter.py#L720-L772。端到端分支自动回退对不支持 top-k 算子的格式RKNN、NCNN、ExecuTorch、Paddle、IMX、Edge TPU、QNN以及 LiteRT INT8 静态量化场景源码会自动关闭 end2end 分支并警告exporter.py#L678-L688TensorRT 8.5.0 因缺少 Mod 算子同样会回退。四、支持的导出格式与各自参数下表整理了 YOLO26 支持的全部导出格式。任何格式都可以直接作为predict或val的model输入例如yolo predict modelyolo26n.onnx导出成功后在终端会给出对应的用法示例。格式format参数产物元数据支持参数PyTorch-yolo26n.pt✅-TorchScripttorchscriptyolo26n.torchscript✅imgsz,quantize,dynamic,nmsnmsTrue时还可配conf/iou/agnostic_nms,batch,deviceONNXonnxyolo26n.onnx✅imgsz,quantize,dynamic,simplify,opset,nms同左,batch,data,fraction,deviceOpenVINOopenvinoyolo26n_openvino_model/✅imgsz,quantize,dynamic,nms同左,batch,data,fraction,deviceTensorRTengineyolo26n.engine✅imgsz,quantize,dynamic,simplify,opset,workspace,nms同左,batch,data,fraction,deviceCoreMLcoremlyolo26n.mlpackage✅imgsz,dynamic,quantize,nms同左,batch,deviceTF SavedModelsaved_modelyolo26n_saved_model/✅imgsz,keras,quantize,opset,nms同左,batch,data,fraction,deviceTF GraphDefpbyolo26n.pb❌imgsz,opset,batch,deviceTF Edge TPUedgetpuyolo26n_edgetpu.tflite✅imgsz,quantize,opset,data,fraction,devicePaddlePaddlepaddleyolo26n_paddle_model/✅imgsz,batch,deviceMNNmnnyolo26n.mnn✅imgsz,batch,dynamic,quantize,simplify,opset,nms同左,deviceNCNNncnnyolo26n_ncnn_model/✅imgsz,quantize,batch,deviceSony IMX500imxyolo26n_imx_model/✅imgsz,quantize,data,fraction,nms同左,deviceRockchip RKNNrknnyolo26n_rknn_model/✅imgsz,batch,name,quantize,simplify,opset,data,fraction,deviceExecuTorchexecutorchyolo26n_executorch_model/✅imgsz,batch,deviceAxeleraaxelerayolo26n_axelera_model/✅imgsz,batch,quantize,data,fraction,deviceDEEPXdeepxyolo26n_deepx_model/✅imgsz,quantize,simplify,opset,data,optimize,deviceQualcomm QNNqnnyolo26n_qnn.onnx✅imgsz,batch,name,quantize,simplify,opset,data,fraction,deviceLiteRTlitertyolo26n.tflite✅imgsz,quantize,batch,data,fraction,deviceHailohailoyolo26n_hailo_model/✅imgsz,name,quantize,data,fraction,simplify,conf,iouHuawei Ascendascendyolo26n_ascend_model/✅imgsz,batch,name,quantize,opset,simplify,nms同左Apple Core AIcoreaiyolo26n.aimodel✅imgsz,batch,quantize上表依据 docs/macros/export-table.md 渲染并与源码export_formats()exporter.py#L146-L277中每个格式注册的Arguments列表一一对应——这正是validate_args校验合法参数的数据来源。几点补充IMX500 格式目前仅支持 YOLOv8n、YOLO11n 模型大部分格式会携带模型元数据描述、作者、版本、stride、task、imgsz、names、导出参数等构建于 exporter.py#L934-L950后续被写入 ONNX custom metadata、OpenVINOmetadata.yaml或 TFLite 元数据中表格中元数据标记为 ❌ 的 TF GraphDef 格式不做导出期精度转换也无法保存元数据。五、量化精度用quantize精确控制导出精度quantize参数用于显式请求导出精度。字符串值大小写不敏感Ultralytics 在导出前会把别名统一规范化请求值规范化值含义8,8,int8,w8a88INT8 权重与激活16,16,fp16,w16a1616FP16 权重与激活32,32,fp32,w32a3232FP32 导出等同于不设置但 CoreML NMS ML Programs 默认是 FP16w8a16w8a16INT8 权重 16 位激活FP16LiteRT 上为 INT16w8a32w8a32INT8 权重 FP32 激活LiteRT 动态 INT8无需校准历史遗留的halfTrue、int8True仍然会被接受但会伴随弃用警告并分别转发为quantize16与quantize8。5.1 各格式精度支持矩阵并非每种格式都支持每种精度。显式传入不支持的quantize请求要么按该格式产生目标精度要么在导出前直接失败格式FP3232/未设置FP1616INT88W8A16w8a16备注PyTorch✅N/AN/AN/A原生训练/检查点格式。TorchScript✅✅ 仅 GPU❌❌FP16 TorchScript 导出需要device0CPU 导出为 FP32。ONNX✅✅✅❌INT8 使用 ONNX Runtime 静态量化与校准数据。OpenVINO✅✅✅❌INT8 使用 NNCF 训练后量化。TensorRT✅✅✅❌INT8 需要代表性校准数据。CoreML✅¹✅✅✅CoreML INT8 为权重量化W8A16 使用 INT8 权重 FP16 激活。¹ 未设置时 NMS ML Programs 默认 FP16。TF SavedModel✅❌✅❌INT8 导出使用 TensorFlow 校准。TF GraphDef✅❌❌❌无导出期精度转换。Edge TPU❌❌✅ 自动❌Edge TPU 强制 INT8未设置时自动启用。PaddlePaddle✅❌❌❌无导出期精度转换。MNN✅✅✅❌INT8 为 MNN 转换阶段的权重量化。NCNN✅✅❌❌面向移动/嵌入式运行时的格式。IMX500❌❌✅ 自动✅IMX500 强制量化未设置时 INT8 自动启用。RKNN❌✅ 依芯片而定✅❌RK3588/RK3576/RK3566/RK3568/RK3562/RK2118/RV1126B 支持 FP16 或 INT8RV1103/RV1106 变体仅支持 INT8。ExecuTorch✅❌❌❌无导出期精度转换。Axelera❌❌✅ 自动❌Axelera 导出强制 INT8未设置时自动启用。DEEPX❌❌✅ 自动❌DEEPX 导出强制 INT8未设置时自动启用。Qualcomm QNN❌❌❌✅ 自动QNN HTP 导出固定为 INT8 权重 16 位激活。LiteRT✅❌✅✅静态 INT88与w8a16INT8 权重 INT16激活需要校准数据另支持w8a32动态 INT8无需校准。quantize16不构成独立导出FP32 模型运行期通过 GPU delegate 以 FP16 执行。Huawei Ascend❌✅ 自动❌❌Ascend AI Core 卷积仅接受 FP16/INT8 输入因此 ATC 编译 FP16未设置时自动启用。5.2 校准数据与源码级约束对于 INT8 与 W8A16 导出需要借助data提供代表性校准数据例如datacoco8.yaml除非目标集成文档声明了默认或自动启用行为。LiteRT 的w8a32动态 INT8方案则无需校准数据。从源码看这一整套约束由三处协作实现支持集常量FP16_FORMATS、INT8_FORMATS、W8A16_FORMATS、W8A32_FORMATS与FP32_UNSUPPORTED_FORMATS定义了每个精度对应的格式白名单exporter.py#L400-L444validate_args校验逐一分发16/8/w8a16/w8a32/32分支断言不符合即报错并列出该格式可用的quantize选项exporter.py#L464-L478自动行为兜底Edge TPU / IMX / Axelera / DEEPX / QNN / Hailo / Ascend 这类强制量化格式会在未设置时自动启用 INT8QNN 为 W8A16、Ascend 为 FP16并对缺失的data回退到任务默认校准集exporter.py#L624-L634、L831-L835。5.3 实操示例INT8 量化导出 Pythonpython from ultralytics import YOLO model YOLO(yolo26n.pt) # 加载模型 model.export(formatonnx, quantize8, datacoco8.yaml) CLIbash yolo export modelyolo26n.pt formatonnx quantize8 datacoco8.yaml # 导出带 INT8 量化的 ONNX INT8 量化适用于 ONNX、TensorRT、OpenVINO、CoreML、Rockchip RKNN 等格式。为取得最优量化效果建议用data参数指定一个有代表性的数据集。六、导出模型的输出张量结构把 YOLO 导出到 ONNX / TensorRT 等格式后输出张量结构与任务类型、导出设置强相关。这对自定义推理实现尤为重要在 exporter.py#L926-L930 中output_shape会被打印出来便于核对。检测模型如yolo26n.pt端到端导出支持该模式的格式默认开启输出形状为(batch_size, max_detections, 6)每个检测对应[x1, y1, x2, y2, confidence, class_id]。默认max_det300时通常为(batch_size, 300, 6)。部分受算子约束的格式会自动回退到传统输出布局。非端到端导出或使用end2endFalse导出的 YOLO26输出通常是单个张量形状为(batch_size, 4 num_classes, num_predictions)通道维度为框坐标加各类别分数num_predictions取决于导出输入分辨率可动态。哪些格式保留端到端输出参见 End-to-End Detection 指南。分割模型如yolo26n-seg.pt通常返回两个输出第一个张量形状为(batch_size, 4 num_classes mask_dim, num_predictions)框、类别分数与 mask 系数第二个张量形状为(batch_size, mask_dim, proto_h, proto_w)mask 原型配合系数生成实例 mask。尺寸取决于导出输入分辨率可动态。姿态模型如yolo26n-pose.pt输出张量形状通常为(batch_size, 4 num_classes keypoint_dims, num_predictions)其中keypoint_dims取决于姿态规格关键点数量、是否包含置信度num_predictions同样取决于导出输入分辨率可动态。若需要处理这些输出的逐语言示例仓库的 examples 目录examples与各集成文档提供了多语言实现供参考。七、常见问题FAQ7.1 如何把 YOLO26 导出为 ONNX直接使用 Python 或 CLI 即可 Pythonpython from ultralytics import YOLO # 加载模型 model YOLO(yolo26n.pt) # 加载官方模型 model YOLO(path/to/best.pt) # 加载自定义训练模型 # 导出模型 model.export(formatonnx) CLIbash yolo export modelyolo26n.pt formatonnx # 导出官方模型 yolo export modelpath/to/best.pt formatonnx # 导出自定义训练模型 涉及不同输入尺寸等进阶选项时参考 ONNX 集成指南。7.2 使用 TensorRT 导出有哪些收益导出为 TensorRT 能带来显著的性能提升YOLO26 导出到 TensorRT 可获得最高约 5 倍的 GPU 推理加速适合实时推理应用。硬件针对性为特定 NVIDIA 硬件定制优化速度借助深度算子优化获得更快推理兼容性与 NVIDIA 生态无缝集成。具体集成方式参见 TensorRT 集成指南。7.3 端到端模型end2end导出说明YOLO26 与 YOLOv10 支持无 NMS 的端到端推理。默认情况下在支持的格式中端到端导出自动启用。如果需要兼容传统的 NMS 后处理管线可显式传入end2endFalse而 RKNN / NCNN / ExecuTorch / Paddle / IMX / Edge TPU / QNN 等不支持 top-k 算子的格式会强制回退为非端到端LiteRT 的 INT8 静态量化同样会关闭端到端分支。详见 docs/en/guides/end2end-detection.md。7.4 动态输入尺寸为何重要如何开启动态输入尺寸允许导出模型处理任意分辨率的图像在视频流处理、多来源图像等输入维度不固定的场景尤为有用。对 ONNX、TensorRT、CoreML、OpenVINO、TorchScript 等格式使用dynamicTrue即可 Pythonpython from ultralytics import YOLO model YOLO(yolo26n.pt) model.export(formatonnx, dynamicTrue) CLIbash yolo export modelyolo26n.pt formatonnx dynamicTrue 注意结合第三节表格约束例如 CoreML 的dynamicTrue与nmsTrue互斥、不支持分类与 RT-DETR 模型MNN 不支持dynamicTrue与nmsTrue同时开启CoreMLbatch1也要求开启dynamic。这些互斥约束均在源码 exporter.py#L789-L813 中有显式断言。7.5 官方是否有 C 推理 APIUltralytics 目前没有为 YOLO 模型提供专用的 C 推理 API。做 C 部署时先把模型导出为运行时格式如 ONNX、TensorRT、TorchScript、MNN再以该运行时自带的 C API 加载产物。例如检测模型执行yolo export modelyolo26n.pt formatonnx后用 ONNX Runtime C 加载.onnx或用formatengine从 TensorRT C 应用中加载引擎文件。使用自定义 C 后处理时必须匹配任务与导出设置对应的输出布局YOLO26 端到端检测导出通常返回(batch, max_det, 6)而非端到端导出返回需要外部后处理的原始预测张量。7.6 量化模型开启end2endTrue后为何output0仍是 FP32当quantize16FP16或quantize8INT8时绝大多数张量会被降为低精度以减小体积、提升性能。但end2endTrue会把后处理包括类别索引直接嵌入导出计算图而output0中的类别索引在内部以浮点表示——FP16 因尾数精度有限无法可靠表示 2048 以上的整数值。为避免精度损失或类别 ID 出错output0会被刻意保留为 FP32。这是预期行为同样适用于其它低精度/量化导出。若确需全 FP16 输出请以end2endFalse导出并在外部完成后处理。八、部署的下一步导出只是部署的第一步。找到目标运行时的集成文档ONNX、TensorRT、CoreML 等完整列表见 integrations 索引即可按其中的加载与推理示例把导出产物跑起来。仓库内针对各导出格式的冒烟测试集中在 tests/test_exports.py是查阅「某个格式参数组合是否被 CI 覆盖」的第一手材料Exporter类的完整字段与逐格式导出方法清单可继续阅读 ultralytics/engine/exporter.py。一句话总结选型策略CPU 部署优先考虑 ONNX/OpenVINONVIDIA GPU 实时应用优先 TensorRTApple 生态用 CoreML移动/嵌入式端看 NCNN/LiteRTNPU 与专用加速卡RKNN、QNN、Ascend、Hailo、Edge TPU、Axelera、DEEPX、IMX500再按硬件逐一匹配——所有选项都只是同一个model.export(format...)参数的不同取值而已。【免费下载链接】ultralyticsUltralytics YOLO26, YOLO11, YOLOv8 — object detection, instance segmentation, semantic segmentation, image classification, pose estimation, object tracking项目地址: https://gitcode.com/GitHub_Trending/ul/ultralytics创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表