Xuất Mô Hình YOLO11 sang TorchScript để Triển Khai Nhanh Chóng
Việc triển khai các mô hình thị giác máy tính trên các môi trường khác nhau, bao gồm các hệ thống nhúng, trình duyệt web hoặc các nền tảng có hỗ trợ Python hạn chế, đòi hỏi một giải pháp linh hoạt và di động. TorchScript tập trung vào tính di động và khả năng chạy các mô hình trong các môi trường mà toàn bộ khung Python không khả dụng. Điều này làm cho nó trở nên lý tưởng cho các tình huống mà bạn cần triển khai các khả năng thị giác máy tính của mình trên nhiều thiết bị hoặc nền tảng khác nhau.
Xuất sang Torchscript để tuần tự hóa các mô hình Ultralytics YOLO11 của bạn để tương thích đa nền tảng và triển khai hợp lý. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách xuất các mô hình YOLO11 của bạn sang định dạng TorchScript, giúp bạn dễ dàng sử dụng chúng trên nhiều ứng dụng hơn.
Tại sao bạn nên xuất sang TorchScript?
Được phát triển bởi những người tạo ra PyTorch, TorchScript là một công cụ mạnh mẽ để tối ưu hóa và triển khai các mô hình PyTorch trên nhiều nền tảng khác nhau. Xuất các mô hình YOLO11 sang TorchScript là rất quan trọng để chuyển từ nghiên cứu sang các ứng dụng thực tế. TorchScript, một phần của framework PyTorch, giúp quá trình chuyển đổi này trở nên mượt mà hơn bằng cách cho phép các mô hình PyTorch được sử dụng trong các môi trường không hỗ trợ Python.
Quá trình này bao gồm hai kỹ thuật: tracing (dấu vết) và scripting (tạo tập lệnh). Tracing ghi lại các hoạt động trong quá trình thực thi mô hình, trong khi scripting cho phép định nghĩa các mô hình bằng cách sử dụng một tập hợp con của Python. Các kỹ thuật này đảm bảo rằng các mô hình như YOLO11 vẫn có thể hoạt động kỳ diệu ngay cả bên ngoài môi trường Python thông thường của chúng.
Các mô hình TorchScript cũng có thể được tối ưu hóa thông qua các kỹ thuật như hợp nhất toán tử và tinh chỉnh trong việc sử dụng bộ nhớ, đảm bảo thực thi hiệu quả. Một ưu điểm khác của việc xuất sang TorchScript là tiềm năng tăng tốc độ thực thi mô hình trên nhiều nền tảng phần cứng khác nhau. Nó tạo ra một bản trình bày độc lập, sẵn sàng cho sản xuất của mô hình PyTorch của bạn, có thể được tích hợp vào môi trường C++, hệ thống nhúng hoặc triển khai trong các ứng dụng web hoặc di động.
Các tính năng chính của mô hình TorchScript
TorchScript, một phần quan trọng của hệ sinh thái PyTorch, cung cấp các tính năng mạnh mẽ để tối ưu hóa và triển khai các mô hình học sâu.
Dưới đây là các tính năng chính khiến TorchScript trở thành một công cụ giá trị cho các nhà phát triển:
-
Thực thi đồ thị tĩnh: TorchScript sử dụng biểu diễn đồ thị tĩnh về tính toán của mô hình, khác với thực thi đồ thị động của PyTorch. Trong thực thi đồ thị tĩnh, đồ thị tính toán được xác định và biên dịch một lần trước khi thực thi thực tế, dẫn đến cải thiện hiệu suất trong quá trình suy luận.
-
Tuần tự hóa mô hình: TorchScript cho phép bạn tuần tự hóa các mô hình PyTorch thành định dạng độc lập với nền tảng. Các mô hình đã tuần tự hóa có thể được tải mà không cần mã Python ban đầu, cho phép triển khai trong các môi trường runtime khác nhau.
-
JIT Compilation: TorchScript sử dụng biên dịch Just-In-Time (JIT) để chuyển đổi các mô hình PyTorch thành một biểu diễn trung gian được tối ưu hóa. JIT biên dịch đồ thị tính toán của mô hình, cho phép thực thi hiệu quả trên các thiết bị đích.
-
Tích hợp đa ngôn ngữ: Với TorchScript, bạn có thể xuất các mô hình PyTorch sang các ngôn ngữ khác như C++, Java và JavaScript. Điều này giúp bạn dễ dàng tích hợp các mô hình PyTorch vào các hệ thống phần mềm hiện có được viết bằng các ngôn ngữ khác nhau.
-
Chuyển đổi từng bước: TorchScript cung cấp phương pháp chuyển đổi từng bước, cho phép bạn chuyển đổi dần các phần của mô hình PyTorch sang TorchScript. Tính linh hoạt này đặc biệt hữu ích khi xử lý các mô hình phức tạp hoặc khi bạn muốn tối ưu hóa các phần cụ thể của code.
Các tùy chọn triển khai trong TorchScript
Trước khi chúng ta xem xét mã để xuất các mô hình YOLO11 sang định dạng TorchScript, hãy hiểu nơi các mô hình TorchScript thường được sử dụng.
TorchScript cung cấp nhiều tùy chọn triển khai khác nhau cho các mô hình học máy, chẳng hạn như:
-
C++ API: Trường hợp sử dụng phổ biến nhất của TorchScript là C++ API, cho phép bạn tải và thực thi các mô hình TorchScript đã được tối ưu hóa trực tiếp trong các ứng dụng C++. Điều này lý tưởng cho môi trường sản xuất, nơi python có thể không phù hợp hoặc không khả dụng. C++ API cung cấp chi phí thấp và thực thi hiệu quả các mô hình TorchScript, tối đa hóa tiềm năng hiệu suất.
-
Triển khai trên thiết bị di động: TorchScript cung cấp các công cụ để chuyển đổi mô hình sang các định dạng sẵn sàng triển khai trên thiết bị di động. PyTorch Mobile cung cấp một runtime để thực thi các mô hình này trong các ứng dụng iOS và Android. Điều này cho phép khả năng suy luận ngoại tuyến, độ trễ thấp, nâng cao trải nghiệm người dùng và quyền riêng tư dữ liệu.
-
Triển Khai Trên Cloud: Các mô hình TorchScript có thể được triển khai lên các máy chủ trên cloud bằng cách sử dụng các giải pháp như TorchServe. Nó cung cấp các tính năng như quản lý phiên bản mô hình, batching và giám sát số liệu để triển khai có khả năng mở rộng trong môi trường production. Triển khai trên cloud với TorchScript có thể giúp các mô hình của bạn có thể truy cập được thông qua các API hoặc các dịch vụ web khác.
Xuất sang TorchScript: Chuyển đổi Mô hình YOLO11 của bạn
Xuất các mô hình YOLO11 sang TorchScript giúp bạn dễ dàng sử dụng chúng ở những nơi khác nhau và giúp chúng chạy nhanh hơn và hiệu quả hơn. Điều này rất tốt cho bất kỳ ai muốn sử dụng các mô hình học sâu hiệu quả hơn trong các ứng dụng thực tế.
Cài đặt
Để cài đặt gói cần thiết, hãy chạy:
Cài đặt
# Install the required package for YOLO11
pip install ultralytics
Để biết hướng dẫn chi tiết và các phương pháp hay nhất liên quan đến quy trình cài đặt, hãy xem hướng dẫn Cài đặt Ultralytics 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 Các Vấn đề Thường gặp của chúng tôi để biết các giải pháp và mẹo.
Cách sử dụng
Tất cả các mô hình Ultralytics YOLO11 đều được thiết kế để hỗ trợ xuất ngay lập tức, giúp bạn dễ dàng tích hợp chúng vào quy trình triển khai ưa thích của mình. Bạn có thể xem danh sách đầy đủ các định dạng xuất và tùy chọn cấu hình được hỗ trợ để chọn thiết lập tốt nhất cho ứng dụng 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 TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'
# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'
Các đối số xuất
Đối số | Loại | Mặc định | Mô tả |
---|---|---|---|
format |
str |
'torchscript' |
Dạng mục tiêu cho mô hình được xuất, 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 của mô hình. Có thể là một số nguyên cho hình ảnh vuông hoặc một bộ giá trị (height, width) cho các kích thước cụ thể. |
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. |
optimize |
bool |
False |
Áp dụng tối ưu hóa cho thiết bị di động, có khả năng giảm kích thước mô hình và cải thiện hiệu suất. |
nms |
bool |
False |
Thêm Non-Maximum Suppression (NMS), rất cần thiết cho việc 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 theo lô của 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 ở chế độ predict chế độ. |
device |
str |
None |
Chỉ định thiết bị để xuất: GPU (device=0 ), CPU (device=cpu ), MPS cho Apple silicon (device=mps ). |
Để 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 các Mô Hình YOLO11 TorchScript Đã Xuất
Sau khi xuất thành công các mô hình Ultralytics YOLO11 của bạn sang định dạng TorchScript, giờ đây bạn có thể triển khai chúng. Bước đầu tiên và được khuyến nghị để chạy mô hình TorchScript là sử dụng phương pháp YOLO("model.torchscript"), như được trình bày trong đoạn mã sử dụng trước đó. Tuy nhiên, để biết hướng dẫn chuyên sâu về cách triển khai các mô hình TorchScript của bạn trong nhiều cài đặt khác, hãy xem các tài nguyên sau:
-
Khám phá Triển khai trên Thiết bị Di động: Tài liệu về PyTorch Mobile cung cấp các hướng dẫn toàn diện để triển khai các mô hình trên thiết bị di động, đảm bảo các ứng dụng của bạn hiệu quả và phản hồi nhanh.
-
Làm chủ triển khai phía máy chủ (Server-Side): Tìm hiểu cách triển khai các mô hình phía máy chủ bằng TorchServe, cung cấp hướng dẫn từng bước để phục vụ mô hình hiệu quả, có khả năng mở rộng.
-
Triển khai C++: Đi sâu vào Hướng dẫn về Tải Mô hình TorchScript trong C++, tạo điều kiện tích hợp các mô hình TorchScript của bạn vào các ứng dụng C++ để nâng cao hiệu suất và tính linh hoạt.
Tóm tắt
Trong hướng dẫn này, chúng ta đã khám phá quy trình xuất các mô hình Ultralytics YOLO11 sang định dạng TorchScript. Bằng cách làm theo các hướng dẫn được cung cấp, bạn có thể tối ưu hóa các mô hình YOLO11 để có hiệu suất và có được sự linh hoạt để triển khai chúng trên nhiều nền tảng và môi trường khác nhau.
Để 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 của TorchScript.
Ngoài ra, nếu bạn muốn biết thêm về các tích hợp Ultralytics YOLO11 khác, 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 rất nhiều tài nguyên và thông tin chi tiết hữu ích ở đó.
Câu hỏi thường gặp
Xuất mô hình Ultralytics YOLO11 sang TorchScript là gì?
Xuất mô hình Ultralytics YOLO11 sang TorchScript cho phép triển khai linh hoạt, đa nền tảng. TorchScript, một phần của hệ sinh thái PyTorch, tạo điều kiện thuận lợi cho việc tuần tự hóa các mô hình, sau đó có thể được thực thi trong các môi trường thiếu hỗ trợ Python. Điều này làm cho nó trở nên lý tưởng để triển khai các mô hình trên các hệ thống nhúng, môi trường C++, ứng dụng di động và thậm chí cả trình duyệt web. Xuất sang TorchScript cho phép hiệu suất hiệu quả và khả năng ứng dụng rộng rãi hơn của các mô hình YOLO11 của bạn trên các nền tảng khác nhau.
Làm cách nào để xuất mô hình YOLO11 của tôi sang TorchScript bằng Ultralytics?
Để xuất mô hình YOLO11 sang TorchScript, bạn có thể sử dụng đoạn mã ví dụ sau:
Cách sử dụng
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TorchScript format
model.export(format="torchscript") # creates 'yolo11n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")
# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'
# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'
Để biết thêm chi tiết về quy trình xuất, hãy tham khảo tài liệu Ultralytics về xuất.
Tại sao tôi nên sử dụng TorchScript để triển khai các mô hình YOLO11?
Sử dụng TorchScript để triển khai các mô hình YOLO11 mang lại một số lợi thế:
- Tính di động: Các mô hình đã xuất có thể chạy trong các môi trường mà không cần python, chẳng hạn như các ứng dụng C++, hệ thống nhúng hoặc thiết bị di động.
- Tối ưu hóa: TorchScript hỗ trợ thực thi đồ thị tĩnh và biên dịch Just-In-Time (JIT), có thể tối ưu hóa hiệu suất mô hình.
- Tích hợp đa ngôn ngữ: Mô hình TorchScript có thể được tích hợp vào các ngôn ngữ lập trình khác, tăng cường tính linh hoạt và khả năng mở rộng.
- Tuần tự hóa: Các mô hình có thể được tuần tự hóa, cho phép tải và suy luận độc lập với nền tảng.
Để hiểu rõ hơn về việc triển khai, hãy truy cập Tài liệu về PyTorch Mobile, Tài liệu về TorchServe và Hướng dẫn triển khai C++.
Các bước cài đặt để xuất mô hình YOLO11 sang TorchScript là gì?
Để cài đặt gói cần thiết để xuất mô hình YOLO11, hãy sử dụng lệnh sau:
Cài đặt
# Install the required package for YOLO11
pip install ultralytics
Để biết hướng dẫn chi tiết, hãy truy cập hướng dẫn Cài đặt Ultralytics. Nếu có bất kỳ vấn đề nào phát sinh trong quá trình cài đặt, hãy tham khảo hướng dẫn Các Vấn đề Thường gặp.
Làm cách nào để triển khai các mô hình TorchScript YOLO11 đã xuất của tôi?
Sau khi xuất các mô hình YOLO11 sang định dạng TorchScript, bạn có thể triển khai chúng trên nhiều nền tảng khác nhau:
- C++ API: Lý tưởng cho môi trường sản xuất có chi phí thấp và hiệu quả cao.
- Triển khai trên thiết bị di động: Sử dụng PyTorch Mobile cho các ứng dụng iOS và Android.
- Triển Khai Trên Cloud: Sử dụng các dịch vụ như TorchServe để triển khai phía máy chủ có khả năng mở rộng.
Khám phá các hướng dẫn toàn diện để triển khai các mô hình trong các cài đặt này để tận dụng tối đa khả năng của TorchScript.