You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
6.4 KiB
88 lines
6.4 KiB
--- |
|
comments: true |
|
description: Step-by-step guide on exporting your YOLOv8 models to various format like ONNX, TensorRT, CoreML and more for deployment. Explore now!. |
|
keywords: YOLO, YOLOv8, Ultralytics, Model export, ONNX, TensorRT, CoreML, TensorFlow SavedModel, OpenVINO, PyTorch, export model |
|
--- |
|
|
|
<img width="1024" src="https://github.com/ultralytics/assets/raw/main/yolov8/banner-integrations.png"> |
|
|
|
**Export mode** is used for exporting a YOLOv8 model to a format that can be used for deployment. In this mode, the |
|
model is converted to a format that can be used by other software applications or hardware devices. This mode is useful |
|
when deploying the model to production environments. |
|
|
|
!!! tip "Tip" |
|
|
|
* Export to ONNX or OpenVINO for up to 3x CPU speedup. |
|
* Export to TensorRT for up to 5x GPU speedup. |
|
|
|
## Usage Examples |
|
|
|
Export a YOLOv8n model to a different format like ONNX or TensorRT. See Arguments section below for a full list of |
|
export arguments. |
|
|
|
!!! example "" |
|
|
|
=== "Python" |
|
|
|
```python |
|
from ultralytics import YOLO |
|
|
|
# Load a model |
|
model = YOLO('yolov8n.pt') # load an official model |
|
model = YOLO('path/to/best.pt') # load a custom trained |
|
|
|
# Export the model |
|
model.export(format='onnx') |
|
``` |
|
=== "CLI" |
|
|
|
```bash |
|
yolo export model=yolov8n.pt format=onnx # export official model |
|
yolo export model=path/to/best.pt format=onnx # export custom trained model |
|
``` |
|
|
|
## Arguments |
|
|
|
Export settings for YOLO models refer to the various configurations and options used to save or |
|
export the model for use in other environments or platforms. These settings can affect the model's performance, size, |
|
and compatibility with different systems. Some common YOLO export settings include the format of the exported model |
|
file (e.g. ONNX, TensorFlow SavedModel), the device on which the model will be run (e.g. CPU, GPU), and the presence of |
|
additional features such as masks or multiple labels per box. Other factors that may affect the export process include |
|
the specific task the model is being used for and the requirements or constraints of the target environment or platform. |
|
It is important to carefully consider and configure these settings to ensure that the exported model is optimized for |
|
the intended use case and can be used effectively in the target environment. |
|
|
|
| Key | Value | Description | |
|
|-------------|-----------------|------------------------------------------------------| |
|
| `format` | `'torchscript'` | format to export to | |
|
| `imgsz` | `640` | image size as scalar or (h, w) list, i.e. (640, 480) | |
|
| `keras` | `False` | use Keras for TF SavedModel export | |
|
| `optimize` | `False` | TorchScript: optimize for mobile | |
|
| `half` | `False` | FP16 quantization | |
|
| `int8` | `False` | INT8 quantization | |
|
| `dynamic` | `False` | ONNX/TensorRT: dynamic axes | |
|
| `simplify` | `False` | ONNX/TensorRT: simplify model | |
|
| `opset` | `None` | ONNX: opset version (optional, defaults to latest) | |
|
| `workspace` | `4` | TensorRT: workspace size (GB) | |
|
| `nms` | `False` | CoreML: add NMS | |
|
|
|
## Export Formats |
|
|
|
Available YOLOv8 export formats are in the table below. You can export to any format using the `format` argument, |
|
i.e. `format='onnx'` or `format='engine'`. |
|
|
|
| Format | `format` Argument | Model | Metadata | Arguments | |
|
|--------------------------------------------------------------------|-------------------|---------------------------|----------|-----------------------------------------------------| |
|
| [PyTorch](https://pytorch.org/) | - | `yolov8n.pt` | ✅ | - | |
|
| [TorchScript](https://pytorch.org/docs/stable/jit.html) | `torchscript` | `yolov8n.torchscript` | ✅ | `imgsz`, `optimize` | |
|
| [ONNX](https://onnx.ai/) | `onnx` | `yolov8n.onnx` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `opset` | |
|
| [OpenVINO](https://docs.openvino.ai/latest/index.html) | `openvino` | `yolov8n_openvino_model/` | ✅ | `imgsz`, `half` | |
|
| [TensorRT](https://developer.nvidia.com/tensorrt) | `engine` | `yolov8n.engine` | ✅ | `imgsz`, `half`, `dynamic`, `simplify`, `workspace` | |
|
| [CoreML](https://github.com/apple/coremltools) | `coreml` | `yolov8n.mlpackage` | ✅ | `imgsz`, `half`, `int8`, `nms` | |
|
| [TF SavedModel](https://www.tensorflow.org/guide/saved_model) | `saved_model` | `yolov8n_saved_model/` | ✅ | `imgsz`, `keras` | |
|
| [TF GraphDef](https://www.tensorflow.org/api_docs/python/tf/Graph) | `pb` | `yolov8n.pb` | ❌ | `imgsz` | |
|
| [TF Lite](https://www.tensorflow.org/lite) | `tflite` | `yolov8n.tflite` | ✅ | `imgsz`, `half`, `int8` | |
|
| [TF Edge TPU](https://coral.ai/docs/edgetpu/models-intro/) | `edgetpu` | `yolov8n_edgetpu.tflite` | ✅ | `imgsz` | |
|
| [TF.js](https://www.tensorflow.org/js) | `tfjs` | `yolov8n_web_model/` | ✅ | `imgsz` | |
|
| [PaddlePaddle](https://github.com/PaddlePaddle) | `paddle` | `yolov8n_paddle_model/` | ✅ | `imgsz` | |
|
| [ncnn](https://github.com/Tencent/ncnn) | `ncnn` | `yolov8n_ncnn_model/` | ✅ | `imgsz`, `half` |
|
|
|