ONNX Xuất khẩu cho YOLO11 Mô hình
Thông thường, khi triển khai các mô hình thị giác máy tính , bạn sẽ cần một định dạng mô hình vừa linh hoạt vừa tương thích với nhiều nền tảng.
Xuất các mô hình Ultralytics YOLO11 sang ONNX định dạng hợp lý hóa việc triển khai và đảm bảo hiệu suất tối ưu trên nhiều môi trường khác nhau. Hướng dẫn này sẽ chỉ cho bạn cách dễ dàng chuyển đổi YOLO11 mô hình để ONNX và nâng cao khả năng mở rộng và hiệu quả của chúng trong các ứng dụng thực tế.
ONNX Và ONNX Thời gian chạy
ONNX , viết tắt của Open Neural Network Exchange, là một dự án cộng đồng mà Facebook và Microsoft ban đầu được phát triển. Sự phát triển đang diễn ra của ONNX là một nỗ lực hợp tác được hỗ trợ bởi nhiều tổ chức khác nhau như IBM, Amazon (thông qua AWS) và Google . Dự án nhằm mục đích tạo ra một định dạng tệp mở được thiết kế để biểu diễn các mô hình học máy theo cách cho phép chúng được sử dụng trên nhiều phần cứng và khuôn khổ AI khác nhau.
ONNX các mô hình có thể được sử dụng để chuyển đổi giữa các khuôn khổ khác nhau một cách liền mạch. Ví dụ, một mô hình học sâu được đào tạo trong PyTorch có thể được xuất khẩu sang ONNX định dạng và sau đó dễ dàng nhập vào TensorFlow .
Ngoài ra, ONNX các mô hình có thể được sử dụng với ONNX Thời gian chạy. ONNX Runtime là một trình tăng tốc đa nền tảng linh hoạt cho các mô hình học máy tương thích với các khuôn khổ như PyTorch , TensorFlow , TFLite, scikit-learn, v.v.
ONNX Thời gian chạy tối ưu hóa việc thực hiện ONNX mô hình bằng cách tận dụng các khả năng cụ thể của phần cứng. Việc tối ưu hóa này cho phép các mô hình chạy hiệu quả và có hiệu suất cao trên nhiều nền tảng phần cứng khác nhau, bao gồm CPU, GPU và bộ tăng tốc chuyên dụng.
Cho dù được sử dụng độc lập hay kết hợp với ONNX Thời gian chạy, ONNX cung cấp giải pháp linh hoạt cho việc triển khai và tương thích mô hình học máy.
Các tính năng chính của ONNX Mô hình
Khả năng của ONNX việc xử lý nhiều định dạng khác nhau có thể được quy cho các tính năng chính sau đây:
-
Biểu diễn mô hình chung : ONNX định nghĩa một tập hợp chung các toán tử (như tích chập, lớp, v.v.) và một định dạng dữ liệu chuẩn. Khi một mô hình được chuyển đổi thành ONNX định dạng, kiến trúc và trọng số của nó được dịch thành biểu diễn chung này. Sự đồng nhất này đảm bảo rằng mô hình có thể được hiểu bởi bất kỳ khuôn khổ nào hỗ trợ ONNX .
-
Quản lý phiên bản và khả năng tương thích ngược : ONNX duy trì hệ thống quản lý phiên bản cho các nhà điều hành. Điều này đảm bảo rằng ngay cả khi tiêu chuẩn phát triển, các mô hình được tạo trong các phiên bản cũ hơn vẫn có thể sử dụng được. Khả năng tương thích ngược là một tính năng quan trọng giúp ngăn các mô hình nhanh chóng trở nên lỗi thời.
-
Biểu diễn mô hình dựa trên đồ thị : ONNX biểu diễn các mô hình dưới dạng đồ thị tính toán. Cấu trúc dựa trên đồ thị này là một cách phổ biến để biểu diễn các mô hình học máy, trong đó các nút biểu diễn các phép toán hoặc phép tính và các cạnh biểu diễn các tenxơ chảy giữa chúng. Định dạng này dễ dàng thích ứng với nhiều khuôn khổ khác nhau cũng biểu diễn các mô hình dưới dạng đồ thị.
-
Công cụ và hệ sinh thái : Có một hệ sinh thái công cụ phong phú xung quanh ONNX hỗ trợ chuyển đổi mô hình, trực quan hóa và tối ưu hóa. Các công cụ này giúp các nhà phát triển làm việc dễ dàng hơn ONNX mô hình và chuyển đổi mô hình giữa các khuôn khổ khác nhau một cách liền mạch.
Sử dụng phổ biến của ONNX
Trước khi chúng ta tìm hiểu cách xuất khẩu YOLO11 các mô hình cho ONNX định dạng, chúng ta hãy xem nơi ONNX mô hình thường được sử dụng.
CPU Triển khai
ONNX các mô hình thường được triển khai trên CPU do khả năng tương thích của chúng với ONNX Thời gian chạy. Thời gian chạy này được tối ưu hóa cho CPU thực hiện. Nó cải thiện đáng kể tốc độ suy luận và làm cho thời gian thực CPU triển khai khả thi.
Tùy chọn triển khai được hỗ trợ
Trong khi ONNX Các mô hình thường được sử dụng trên CPU, chúng cũng có thể được triển khai trên các nền tảng sau:
-
Tăng tốc GPU : ONNX hỗ trợ đầy đủ GPU tăng tốc, đặc biệt NVIDIA CUDA . Điều này cho phép thực hiện hiệu quả trên NVIDIA GPU dành cho các tác vụ đòi hỏi sức mạnh tính toán cao.
-
Thiết bị Edge và Di động : ONNX mở rộng đến các thiết bị biên và thiết bị di động, hoàn hảo cho các tình huống suy luận trên thiết bị và thời gian thực. Nó nhẹ và tương thích với phần cứng biên.
-
Trình duyệt web : ONNX có thể chạy trực tiếp trên trình duyệt web, hỗ trợ các ứng dụng AI tương tác và năng động dựa trên web.
Xuất khẩu YOLO11 Các mô hình để ONNX
Bạn có thể mở rộng khả năng tương thích của mô hình và tính linh hoạt triển khai bằng cách chuyển đổi YOLO11 mô hình để ONNX định dạng. Ultralytics YOLO11 cung cấp quy trình xuất dữ liệu đơn giản có thể cải thiện đáng kể hiệu suất mô hình của bạn trên nhiều nền tảng khác nhau.
Cài đặt
Để cài đặt gói cần thiết, hãy chạy:
Để biết hướng dẫn chi tiết và các biện pháp thực hành tốt nhất liên quan đến quy trình cài đặt, hãy xem hướng dẫn Cài đặt YOLO11 của chúng tôi. Trong khi cài đặt các gói cần thiết cho YOLO11 , nếu bạn gặp bất kỳ khó khăn nào, hãy tham khảo hướng dẫn Sự cố thường gặp của chúng tôi để biết giải pháp và mẹo.
Cách sử dụng
Trước khi tìm hiểu hướng dẫn sử dụng, hãy chắc chắn kiểm tra phạm vi các mẫu YOLO11 do Ultralytics cung cấp . Điều này sẽ giúp bạn chọn được mẫu phù hợp nhất cho yêu cầu dự án của mình.
Cách sử dụng
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
model.export(format="onnx") # creates 'yolo11n.onnx'
# Load the exported ONNX model
onnx_model = YOLO("yolo11n.onnx")
# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
Xuất khẩu đối số
Khi xuất khẩu của bạn YOLO11 mô hình để ONNX định dạng, bạn có thể tùy chỉnh quy trình bằng nhiều đối số khác nhau để tối ưu hóa cho nhu cầu triển khai cụ thể của mình:
Lý lẽ | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
format |
str |
'onnx' |
Định dạng mục tiêu cho mô hình được xuất ra, xác định khả năng tương thích với nhiều 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 ảnh vuông hoặc một bộ (height, width) cho các kích thước cụ thể. |
half |
bool |
False |
Cho phép lượng tử hóa FP16 (bán 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ợ. |
dynamic |
bool |
False |
Cho phép kích thước đầu vào động, 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 đồ thị mô hình 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 các ONNX trình phân tích cú pháp và thời gian chạy. Nếu không được thiết lập, sử dụng phiên bản được hỗ trợ mới nhất. |
nms |
bool |
False |
Thêm chức năng loại bỏ không tối đa (NMS), cần thiết cho quá trình xử lý phát hiện sau đó chính xác và hiệu quả. |
batch |
int |
1 |
Chỉ định kích thước suy luận lô 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 cách thức. |
Để biết thêm chi tiết về quy trình xuất, hãy truy cập trang tài liệu Ultralytics về xuất .
Triển khai Đã xuất YOLO11 ONNX Mô hình
Sau khi bạn đã xuất thành công Ultralytics YOLO11 mô hình để ONNX định dạng, bước tiếp theo là triển khai các mô hình này trong nhiều môi trường khác nhau. Để biết hướng dẫn chi tiết về việc triển khai ONNX mô hình, hãy xem các tài nguyên sau:
-
Tài liệu API Python Runtime ONNX : Hướng dẫn này cung cấp thông tin cần thiết để tải và chạy ONNX mô hình sử dụng ONNX Thời gian chạy.
-
Triển khai trên Thiết bị Edge : Kiểm tra trang tài liệu này để biết các ví dụ khác nhau về việc triển khai ONNX mô hình trên cạnh.
-
Hướng dẫn ONNX trên GitHub : Một bộ sưu tập các hướng dẫn toàn diện bao gồm nhiều khía cạnh khác nhau của việc sử dụng và triển khai ONNX mô hình trong các tình huống khác nhau.
-
Triton Inference Server : Tìm hiểu cách triển khai ONNX các mô hình với NVIDIA 'S Triton Máy chủ suy luận cho các triển khai có hiệu suất cao và khả năng mở rộng.
Bản tóm tắt
Trong hướng dẫn này, bạn đã học cách xuất Ultralytics YOLO11 mô hình để ONNX định dạng để tăng khả năng tương tác và hiệu suất của chúng trên nhiều nền tảng khác nhau. Bạn cũng đã được giới thiệu về ONNX Thời gian chạy và ONNX tùy chọn triển khai.
ONNX xuất khẩu chỉ là một trong nhiều định dạng xuất khẩu được hỗ trợ bởi Ultralytics YOLO11 , cho phép bạn triển khai các mô hình của mình trong hầu như mọi môi trường. Tùy thuộc vào nhu cầu cụ thể của bạn, bạn cũng có thể muốn khám phá các tùy chọn xuất khác như TensorRT để có hiệu quả tối đa GPU hiệu suất hoặc CoreML cho các thiết bị Apple.
Để biết thêm chi tiết về cách sử dụng, hãy truy cập tài liệu chính thức ONNX .
Ngoài ra, nếu bạn muốn biết thêm về những điều khác Ultralytics YOLO11 tích hợp, hãy truy cập trang hướng dẫn tích hợp của chúng tôi. Bạn sẽ tìm thấy nhiều tài nguyên và thông tin hữu ích ở đó.
CÂU HỎI THƯỜNG GẶP
Làm thế nào để tôi xuất khẩu YOLO11 mô hình để ONNX định dạng sử dụng Ultralytics ?
Để xuất khẩu của bạn YOLO11 mô hình để ONNX định dạng sử dụng Ultralytics , hãy làm theo các bước sau:
Cách sử dụng
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
model.export(format="onnx") # creates 'yolo11n.onnx'
# Load the exported ONNX model
onnx_model = YOLO("yolo11n.onnx")
# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
Để biết thêm chi tiết, hãy truy cập tài liệu xuất khẩu .
Những lợi ích của việc sử dụng là gì? ONNX Thời gian chạy để triển khai YOLO11 mô hình?
Sử dụng ONNX Thời gian chạy để triển khai YOLO11 mô hình cung cấp một số lợi thế:
- Khả năng tương thích đa nền tảng : ONNX Runtime hỗ trợ nhiều nền tảng khác nhau, chẳng hạn như Windows, macOS và Linux, đảm bảo mô hình của bạn chạy mượt mà trên nhiều môi trường khác nhau.
- Tăng tốc phần cứng : ONNX Thời gian chạy có thể tận dụng các tối ưu hóa dành riêng cho phần cứng cho CPU, GPU và bộ tăng tốc chuyên dụng, mang lại khả năng suy luận hiệu suất cao.
- Khả năng tương tác của khung : Các mô hình được đào tạo trong các khung phổ biến như PyTorch hoặc TensorFlow có thể dễ dàng chuyển đổi thành ONNX định dạng và chạy bằng ONNX Thời gian chạy.
- Tối ưu hóa hiệu suất : ONNX Thời gian chạy có thể cung cấp tới 3x CPU tăng tốc so với bản địa PyTorch các mô hình, làm cho nó trở nên lý tưởng cho các tình huống triển khai khi GPU nguồn lực có hạn.
Tìm hiểu thêm bằng cách kiểm tra tài liệu ONNX Runtime .
Những tùy chọn triển khai nào có sẵn cho YOLO11 mô hình xuất khẩu sang ONNX ?
YOLO11 mô hình xuất khẩu sang ONNX có thể triển khai trên nhiều nền tảng khác nhau bao gồm:
- CPU : Sử dụng ONNX Thời gian chạy để tối ưu hóa CPU suy luận.
- GPU : Tận dụng NVIDIA CUDA cho hiệu suất cao GPU sự gia tốc.
- Thiết bị biên : Chạy các mô hình nhẹ trên thiết bị biên và thiết bị di động để suy luận theo thời gian thực trên thiết bị.
- Trình duyệt web : Thực hiện mô hình trực tiếp trong trình duyệt web cho các ứng dụng tương tác dựa trên web.
- Dịch vụ đám mây : Triển khai trên nền tảng đám mây hỗ trợ ONNX định dạng cho suy luận có thể mở rộng.
Để biết thêm thông tin, hãy khám phá hướng dẫn của chúng tôi về các tùy chọn triển khai mô hình .
Tại sao tôi nên sử dụng ONNX định dạng cho Ultralytics YOLO11 mô hình?
Sử dụng ONNX định dạng cho Ultralytics YOLO11 mô hình cung cấp nhiều lợi ích:
- Khả năng tương tác : ONNX cho phép chuyển đổi các mô hình giữa các khuôn khổ máy học khác nhau một cách liền mạch.
- Tối ưu hóa hiệu suất : ONNX Thời gian chạy có thể nâng cao hiệu suất mô hình bằng cách sử dụng các tối ưu hóa dành riêng cho phần cứng.
- Tính linh hoạt : ONNX hỗ trợ nhiều môi trường triển khai khác nhau, cho phép bạn sử dụng cùng một mô hình trên nhiều nền tảng khác nhau mà không cần sửa đổi.
- Chuẩn hóa : ONNX cung cấp định dạng chuẩn được hỗ trợ rộng rãi trong toàn ngành, đảm bảo khả năng tương thích lâu dài.
Tham khảo hướng dẫn toàn diện về cách xuất mô hình YOLO11 sang ONNX .
Làm thế nào tôi có thể khắc phục sự cố khi xuất YOLO11 mô hình để ONNX ?
Khi xuất khẩu YOLO11 mô hình để ONNX , bạn có thể gặp phải các vấn đề phổ biến như phụ thuộc không khớp hoặc hoạt động không được hỗ trợ. Để khắc phục sự cố này:
- Xác minh rằng bạn đã cài đặt đúng phiên bản các phần phụ thuộc cần thiết.
- Kiểm tra tài liệu chính thức ONNX để biết các tính năng và nhà điều hành được hỗ trợ.
- Xem lại thông báo lỗi để tìm manh mối và tham khảo hướng dẫn Sự cố thường gặp Ultralytics .
- Hãy thử sử dụng các đối số xuất khẩu khác nhau như
simplify=True
hoặc điều chỉnhopset
phiên bản. - Đối với các vấn đề về kích thước đầu vào động, hãy đặt
dynamic=True
trong quá trình xuất khẩu.
Nếu vấn đề vẫn tiếp diễn, hãy liên hệ Ultralytics hỗ trợ thêm.