Xuất mô hình với Ultralytics YOLO
Giới thiệu
The ultimate goal of training a model is to deploy it for real-world applications. Export mode in Ultralytics YOLO11 offers a versatile range of options for exporting your trained model to different formats, making it deployable across various platforms and devices. This comprehensive guide aims to walk you through the nuances of model exporting, showcasing how to achieve maximum compatibility and performance.
Xem: How To Export Custom Trained Ultralytics YOLO Model and Run Live Inference on Webcam.
Why Choose YOLO11's Export Mode?
- Linh hoạt: Xuất sang nhiều định dạng bao gồm: ONNX, TensorRT, CoreMLvà hơn thế nữa.
- Hiệu năng: Tăng tới 5 lần GPU Tăng tốc với TensorRT và 3x CPU Tăng tốc với ONNX hoặc OpenVINO.
- Tương thích: Làm cho mô hình của bạn có thể triển khai phổ biến trên nhiều môi trường phần cứng và phần mềm.
- Dễ sử dụng: Giản dị CLI và Python API để xuất mô hình nhanh chóng và đơn giản.
Các tính năng chính của chế độ xuất khẩu
Dưới đây là một số chức năng nổi bật:
- Xuất bằng một cú nhấp chuột: Các lệnh đơn giản để xuất sang các định dạng khác nhau.
- Xuất khẩu hàng loạt: Xuất các mô hình có khả năng suy luận hàng loạt.
- Suy luận được tối ưu hóa: Các mô hình đã xuất được tối ưu hóa để có thời gian suy luận nhanh hơn.
- Video hướng dẫn: Hướng dẫn và hướng dẫn chuyên sâu để có trải nghiệm xuất mượt mà.
Mẹo
Ví dụ sử dụng
Export a YOLO11n model to a different format like ONNX or TensorRT. See the Arguments section below for a full list of export arguments.
Ví dụ
Lập luận
Bảng này chi tiết các cấu hình và tùy chọn có sẵn để xuất YOLO mô hình đến các định dạng khác nhau. Các cài đặt này rất quan trọng để tối ưu hóa hiệu suất, kích thước và khả năng tương thích của mô hình đã xuất trên các nền tảng và môi trường khác nhau. Cấu hình phù hợp đảm bảo rằng mô hình đã sẵn sàng để triển khai trong ứng dụng dự định với hiệu quả tối ưu.
Lý lẽ | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
format |
str |
'torchscript' |
Định dạng đích cho mô hình đã xuất, chẳng hạn như 'onnx' , 'torchscript' , 'tensorflow' hoặc các môi trường khác, xác định khả năng tương thích với các môi trường triển khai khác nhau. |
imgsz |
int hoặc tuple |
640 |
Kích thước hình ảnh mong muốn cho đầu vào mô hình. Có thể là số nguyên cho hình vuông hoặc bộ dữ liệu (height, width) cho các kích thước cụ thể. |
keras |
bool |
False |
Enables export to Keras format for TensorFlow SavedModel, providing compatibility with TensorFlow serving and APIs. |
optimize |
bool |
False |
Áp dụng tối ưu hóa cho thiết bị di động khi xuất sang TorchScript, có khả năng giảm kích thước mô hình và cải thiện hiệu suất. |
half |
bool |
False |
Cho phép lượng tử hóa FP16 (nửa chính xác), giảm kích thước mô hình và có khả năng tăng tốc độ suy luận trên phần cứng được hỗ trợ. |
int8 |
bool |
False |
Activates INT8 quantization, further compressing the model and speeding up inference with minimal accuracy loss, primarily for edge devices. |
dynamic |
bool |
False |
Cho phép kích thước đầu vào động cho ONNX, TensorRT và OpenVINO xuất khẩu, tăng cường tính linh hoạt trong việc xử lý các kích thước hình ảnh khác nhau. |
simplify |
bool |
True |
Đơn giản hóa biểu đồ mô hình cho ONNX xuất khẩu với onnxslim , có khả năng cải thiện hiệu suất và khả năng tương thích. |
opset |
int |
None |
Chỉ định ONNX Phiên bản opset để tương thích với khác nhau ONNX Trình phân tích cú pháp và thời gian chạy. Nếu không được đặt, hãy sử dụng phiên bản được hỗ trợ mới nhất. |
workspace |
float |
4.0 |
Đặt kích thước không gian làm việc tối đa trong GiB cho TensorRT tối ưu hóa, cân bằng giữa việc sử dụng bộ nhớ và hiệu suất. |
nms |
bool |
False |
Thêm chế áp không tối đa (NMS) vào CoreML xuất khẩu, cần thiết để xử lý hậu kỳ phát hiện chính xác và hiệu quả. |
batch |
int |
1 |
Chỉ định kích thước suy luận hàng loạt mô hình xuất hoặc số lượng hình ảnh tối đa mà mô hình đã xuất sẽ xử lý đồng thời trong predict chế độ. |
Adjusting these parameters allows for customization of the export process to fit specific requirements, such as deployment environment, hardware constraints, and performance targets. Selecting the appropriate format and settings is essential for achieving the best balance between model size, speed, and accuracy.
Định dạng xuất
Available YOLO11 export formats are in the table below. You can export to any format using the format
lập luận, tức là format='onnx'
hoặc format='engine'
. Bạn có thể dự đoán hoặc xác thực trực tiếp trên các mô hình đã xuất, tức là yolo predict model=yolo11n.onnx
. Ví dụ sử dụng được hiển thị cho mô hình của bạn sau khi xuất hoàn tất.
Định dạng | format Lý lẽ |
Mẫu | Siêu dữ liệu | Lập luận |
---|---|---|---|---|
PyTorch | - | yolo11n.pt |
✅ | - |
TorchScript | torchscript |
yolo11n.torchscript |
✅ | imgsz , optimize , batch |
ONNX | onnx |
yolo11n.onnx |
✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolo11n_openvino_model/ |
✅ | imgsz , half , int8 , batch |
TensorRT | engine |
yolo11n.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , batch |
CoreML | coreml |
yolo11n.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolo11n_saved_model/ |
✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolo11n.pb |
❌ | imgsz , batch |
TF Lite | tflite |
yolo11n.tflite |
✅ | imgsz , half , int8 , batch |
TF Cạnh TPU | edgetpu |
yolo11n_edgetpu.tflite |
✅ | imgsz |
TF.Js | tfjs |
yolo11n_web_model/ |
✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolo11n_paddle_model/ |
✅ | imgsz , batch |
NCNN | ncnn |
yolo11n_ncnn_model/ |
✅ | imgsz , half , batch |
FAQ
How do I export a YOLO11 model to ONNX format?
Exporting a YOLO11 model to ONNX format is straightforward with Ultralytics. It provides both Python and CLI methods for exporting models.
Ví dụ
For more details on the process, including advanced options like handling different input sizes, refer to the ONNX section.
Lợi ích của việc sử dụng là gì TensorRT để xuất mô hình?
Using TensorRT for model export offers significant performance improvements. YOLO11 models exported to TensorRT can achieve up to a 5x GPU speedup, making it ideal for real-time inference applications.
- Linh hoạt: Tối ưu hóa các mô hình cho một thiết lập phần cứng cụ thể.
- Tốc độ: Đạt được suy luận nhanh hơn thông qua tối ưu hóa nâng cao.
- Tương thích: Tích hợp trơn tru với NVIDIA phần cứng.
To learn more about integrating TensorRT, see the TensorRT integration guide.
How do I enable INT8 quantization when exporting my YOLO11 model?
Lượng tử hóa INT8 là một cách tuyệt vời để nén mô hình và tăng tốc độ suy luận, đặc biệt là trên các thiết bị biên. Đây là cách bạn có thể kích hoạt lượng tử hóa INT8:
Ví dụ
INT8 quantization can be applied to various formats, such as TensorRT and CoreML. More details can be found in the Export section.
Tại sao kích thước đầu vào động lại quan trọng khi xuất mô hình?
Kích thước đầu vào động cho phép mô hình được xuất xử lý các kích thước hình ảnh khác nhau, mang lại sự linh hoạt và tối ưu hóa hiệu quả xử lý cho các trường hợp sử dụng khác nhau. Khi xuất sang các định dạng như ONNX hoặc TensorRT, cho phép kích thước đầu vào động đảm bảo rằng mô hình có thể thích ứng liền mạch với các hình dạng đầu vào khác nhau.
Để bật tính năng này, hãy sử dụng dynamic=True
Cờ trong quá trình xuất:
Ví dụ
Để biết thêm ngữ cảnh, hãy tham khảo cấu hình kích thước đầu vào động.
Các đối số xuất khẩu chính cần xem xét để tối ưu hóa hiệu suất mô hình là gì?
Hiểu và định cấu hình các đối số xuất là rất quan trọng để tối ưu hóa hiệu suất mô hình:
format:
Định dạng đích cho mô hình đã xuất (ví dụ:onnx
,torchscript
,tensorflow
).imgsz:
Kích thước hình ảnh mong muốn cho đầu vào mô hình (ví dụ:640
hoặc(height, width)
).half:
Cho phép lượng tử hóa FP16, giảm kích thước mô hình và có khả năng tăng tốc độ suy luận.optimize:
Áp dụng các tối ưu hóa cụ thể cho môi trường di động hoặc bị hạn chế.int8:
Cho phép lượng tử hóa INT8, rất có lợi cho việc triển khai biên.
For a detailed list and explanations of all the export arguments, visit the Export Arguments section.