ultralytics
导出模式#
导出模式:使您的模型以各种格式准备好部署。
import set_env
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt") # load an official model
# model = YOLO("path/to/best.pt") # load a custom trained model
# Export the model
model.export(format="onnx")
Ultralytics 8.3.28 🚀 Python-3.12.2 torch-2.5.0 CPU (Intel Xeon E5-2678 v3 2.50GHz)
YOLO11n summary (fused): 238 layers, 2,616,248 parameters, 0 gradients, 6.5 GFLOPs
PyTorch: starting from 'yolo11n.pt' with input shape (1, 3, 640, 640) BCHW and output shape(s) (1, 84, 8400) (5.4 MB)
ONNX: starting export with onnx 1.16.2 opset 19...
ONNX: slimming with onnxslim 0.1.34...
ONNX: export success ✅ 6.4s, saved as 'yolo11n.onnx' (10.2 MB)
Export complete (7.5s)
Results saved to /media/pc/data/lxw/ai/torch-book/doc/ultralytics/modes
Predict: yolo predict task=detect model=yolo11n.onnx imgsz=640
Validate: yolo val task=detect model=yolo11n.onnx imgsz=640 data=/usr/src/ultralytics/ultralytics/cfg/datasets/coco.yaml
Visualize: https://netron.app
'yolo11n.onnx'
导出参数#
本表详细介绍了将YOLO 模型导出为不同格式时可用的配置和选项。这些设置对于优化导出模型的性能、大小以及在不同平台和环境中的兼容性至关重要。正确的配置可确保模型以最佳效率部署到预定应用中。
参数 |
类型 |
默认值 |
描述 |
---|---|---|---|
|
|
|
导出模型的目标格式,例如 |
|
|
|
模型输入的期望图像大小。对于方形图像可以是整数,或为特定维度的元组 |
|
|
|
启用导出到 Keras 格式,用于 TensorFlow SavedModel,提供与 TensorFlow 服务和 API 的兼容性。 |
|
|
|
在导出到 TorchScript 时应用针对移动设备的优化,可能减少模型大小并提高性能。 |
|
|
|
启用 FP16(半精度)量化,减少模型大小并可能在支持的硬件上加快推理速度。 |
|
|
|
激活 INT8 量化,进一步压缩模型并在最小 准确性 损失下加速推理,主要用于边缘设备。 |
|
|
|
允许 ONNX、TensorRT 和 OpenVINO 导出的动态输入尺寸,增强处理不同图像尺寸的灵活性。 |
|
|
|
使用 |
|
|
|
指定兼容不同 ONNX 解析器和运行时的 ONNX opset 版本。如果未设置,则使用最新支持的版本。 |
|
|
|
设置 TensorRT 优化的最大工作区大小(以 GiB 为单位),平衡内存使用和性能。 |
|
|
|
向 CoreML 导出添加非最大抑制(NMS),这对于准确和高效的检测后处理至关重要。 |
|
|
|
指定导出模型的批处理推理大小或导出模型在 |
|
|
|
指定导出设备:GPU( |
调整这些参数可以定制导出过程,以适应特定需求,如部署环境、硬件限制和性能目标。选择适当的格式和设置对于在模型大小、速度和准确性之间取得最佳平衡至关重要。
导出格式#
下表列出了可用的YOLOv11导出格式。您可以使用format
参数将模型导出为任何格式,例如format='onnx'
或format='engine'
。您可以直接在导出的模型上进行预测或验证,例如yolo predict model=yolo11n.onnx
。导出完成后,将为您展示模型的使用示例。
Format |
|
Model |
Metadata |
Arguments |
---|---|---|---|---|
- |
|
✅ |
- |
|
|
|
✅ |
|
|
|
|
✅ |
|
|
|
|
✅ |
|
|
|
|
✅ |
|
|
|
|
✅ |
|
|
|
|
✅ |
|
|
|
|
❌ |
|
|
|
|
✅ |
|
|
|
|
✅ |
|
|
|
|
✅ |
|
|
|
|
✅ |
|
|
|
|
✅ |
|
|
|
|
✅ |
|
INT8 量化是压缩模型和加快推理速度的绝佳方法,尤其是在边缘设备上:
from ultralytics import YOLO
model = YOLO("yolo11n.pt") # Load a model
model.export(format="engine", int8=True)
动态输入尺寸允许导出的模型处理不同的图像尺寸,为不同的使用案例提供灵活性并优化处理效率。在导出为 ONNX 或 TensorRT 等格式时,启用动态输入尺寸可确保模型能无缝适应不同的输入形状。
要启用此功能,请使用 dynamic=True
标志:
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
model.export(format="onnx", dynamic=True)
Ultralytics 8.3.28 🚀 Python-3.12.2 torch-2.5.0 CPU (Intel Xeon E5-2678 v3 2.50GHz)
YOLO11n summary (fused): 238 layers, 2,616,248 parameters, 0 gradients, 6.5 GFLOPs
PyTorch: starting from 'yolo11n.pt' with input shape (1, 3, 640, 640) BCHW and output shape(s) (1, 84, 8400) (5.4 MB)
ONNX: starting export with onnx 1.16.2 opset 19...
ONNX: slimming with onnxslim 0.1.34...
ONNX: export success ✅ 21.2s, saved as 'yolo11n.onnx' (10.1 MB)
Export complete (21.5s)
Results saved to /media/pc/data/lxw/ai/torch-book/doc/ultralytics/modes
Predict: yolo predict task=detect model=yolo11n.onnx imgsz=640
Validate: yolo val task=detect model=yolo11n.onnx imgsz=640 data=/usr/src/ultralytics/ultralytics/cfg/datasets/coco.yaml
Visualize: https://netron.app
'yolo11n.onnx'
优化模型性能需要考虑哪些关键的出口参数?#
了解和配置导出参数对于优化模型性能至关重要:
format
: 导出模型的目标格式(例如:onnx
,torchscript
,tensorflow
).imgsz
: 模型输入所需的图像大小(例如:640
或(height, width)
).half
: 启用 FP16 量化,减少模型大小,并可能加快推理速度。optimize
: 针对移动或受限环境进行特定优化。int8
: 启用 INT8 量化,非常有利于边缘部署。