引言:
Ultralytics YOLOv8 的导出模式提供了多种选项,用于将训练好的模型导出到不同的格式,可以在不同平台设备上部署
使用示例
将yolov8x.pt导出为ONNX格式
from ultralytics import YOLO
model = YOLO('yolov8x.pt')
model.export(format='onnx')
export参数详解
Argument | Type | Default | Description |
---|---|---|---|
format | str | ‘torchscript’ | 导出模型的目标格式,例如 ‘onnx’、‘torchscript’、‘tensorflow’ 或其他格式,用于定义与各种部署环境的兼容性 |
imgsz | int or tuple | 640 | 模型输入的期望图像大小。可以是整数,或者用于特定尺寸的元组(高度,宽度) |
keras | bool | False | 启用导出为Keras格式的TensorFlow SavedModel,提供与TensorFlow服务和API的兼容性 |
optimize | bool | False | 在导出到TorchScript时应用移动设备优化,可能会减少模型大小并提高性能 |
half | bool | False | 启用FP16(半精度)量化,减少模型大小,并可能在支持的硬件上加速推理 |
int8 | bool | False | 启用INT8量化,进一步压缩模型并加速推理,精度损失最小,主要适用于边缘设备 |
dynamic | bool | False | 允许 ONNX 和 TensorRT 导出支持动态输入尺寸,提高处理不同图像尺寸的灵活性 |
simplify | bool | False | 通过 onnxslim 简化 ONNX 导出的模型图,可能提高性能和兼容性 |
opset | int | None | 指定 ONNX opset 版本,以确保与不同的 ONNX 解析器和运行时兼容。如果未设置,将使用最新支持的版本 |
workspace | float | 4.0 | 设置 TensorRT 优化的最大工作空间大小(以 GiB 为单位),以平衡内存使用和性能 |
nms | bool | False | 为 CoreML 导出添加非极大值抑制(NMS),这是准确和高效检测后处理的关键 |
batch | int | 1 | 指定导出模型的批量推理大小或在预测模式下导出模型将同时处理的最大图像数量 |
export format 参数详解
以下是 YOLOv8 支持的导出格式。可以通过 format 参数将模型导出为任何格式,例如 format=‘onnx’ 或 format=‘engine’。导出的模型可以直接用于预测或验证,例如使用 yolo predict model=yolov8n.onnx。
Format | format Argument | Model | Metadata | Arguments |
---|---|---|---|---|
PyTorch | - | yolov8n.pt | ✅ | - |
TorchScript | torchscript | yolov8n.torchscript | ✅ | imgsz, optimize, batch |
ONNX | onnx | yolov8n.onnx | ✅ | imgsz, half, dynamic, simplify, opset, batch |
OpenVINO | openvino | yolov8n_openvino_model/ | ✅ | imgsz, half, int8, batch |
TensorRT | engine | yolov8n.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, batch |
CoreML | coreml | yolov8n.mlpackage | ✅ | imgsz, half, int8, nms, batch |
TF SavedModel | saved_model | yolov8n_saved_model/ | ✅ | imgsz, keras, int8, batch |
TF GraphDef | pb | yolov8n.pb | ❌ | imgsz, batch |
TF Lite | tflite | yolov8n.tflite | ✅ | imgsz, half, int8, batch |
TF Edge TPU | edgetpu | yolov8n_edgetpu.tflite | ✅ | imgsz |
TF.js | tfjs | yolov8n_web_model/ | ✅ | imgsz, half, int8, batch |
PaddlePaddle | paddle | yolov8n_paddle_model/ | ✅ | imgsz, batch |
NCNN | ncnn | yolov8n_ncnn_model/ | ✅ | imgsz, half, batch |
本文参考:
https://docs.ultralytics.com/modes/export/#arguments