Bỏ để qua phần nội dung

YOLOv8 Mô hình xuất sang TorchScript để triển khai nhanh

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 nền tảng bị hạn chế Python Hỗ trợ, đò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 môi trường mà toàn bộ Python Framework không khả dụng. Điều này làm cho nó lý tưởng cho các tình huống mà bạn cần triển khai khả năng thị giác máy tính của mình trên các thiết bị hoặc nền tảng khác nhau.

Xuất sang Torchscript để lập số sê-ri Ultralytics YOLOv8 Các mô hình 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 YOLOv8 mô hình cho TorchScript định dạng, giúp bạn sử dụng chúng dễ dàng hơn trên nhiều ứng dụng hơn.

Tại sao bạn nên xuất sang TorchScript?

Torchscript Tổng quan

Đượ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 PyTorch mô hình trên nhiều nền tảng khác nhau. Xuất khẩu YOLOv8 mô hình để TorchScript là rất quan trọng để chuyển từ nghiên cứu sang ứng dụng trong thế giới thực. TorchScript, một phần của PyTorch framework, giúp quá trình chuyển đổi này diễn ra suôn sẻ hơn bằng cách cho phép PyTorch Các mô hình đượ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: truy tìm và viết kịch bản. Truy tìm ghi lại các hoạt động trong quá trình thực thi mô hình, trong khi kịch bản 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 Python. Những kỹ thuật này đảm bảo rằng các mô hình như YOLOv8 vẫn có thể làm việc kỳ diệu của họ ngay cả bên ngoài thông thường của họ Python môi trường.

TorchScript Tập lệnh và theo dõi

TorchScript Các mô hình 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 lợi thế khác của xuất khẩu sang TorchScript là tiềm năng của nó để tăng tốc độ thực hiện mô hình trên các nền tảng phần cứng khác nhau. Nó tạo ra một đại diện độc lập, sẵn sàng sản xuất của bạn PyTorch mô hình có thể được tích hợp vào môi trường C ++, hệ thống nhúng hoặc đượ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 TorchScript Mô hình

TorchScript, một phần quan trọng của PyTorch Hệ sinh thái, 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 deep learning.

TorchScript Tính năng

Dưới đây là các tính năng chính tạo nên TorchScript Một công cụ có giá trị cho các nhà phát triển:

  • Static Graph Execution: TorchScript uses a static graph representation of the model's computation, which is different from PyTorch's dynamic graph execution. In static graph execution, the computational graph is defined and compiled once before the actual execution, resulting in improved performance during inference.

  • Lập số sê-ri hóa mô hình: TorchScript cho phép bạn lập số sê-ri hóa PyTorch mô hình thành một định dạng độc lập với nền tảng. Các mô hình nối tiếp có thể được tải mà không yêu cầu bản gốc Python mã, cho phép triển khai trong các môi trường thời gian chạy khác nhau.

  • JIT Compilation: TorchScript uses Just-In-Time (JIT) compilation to convert PyTorch models into an optimized intermediate representation. JIT compiles the model's computational graph, enabling efficient execution on target devices.

  • Tích hợp đa ngôn ngữ: với TorchScript, bạn có thể xuất PyTorch mô hình cho các ngôn ngữ khác như C ++, Java và JavaScript. Điều này làm cho nó dễ dàng hơn để tích hợp PyTorch mô hình hóa thành 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 dần dần: TorchScript Cung cấp cách tiếp cận chuyển đổi dần dần, cho phép bạn chuyển đổi từng phần của mình PyTorch Mô hình thành 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 mã.

Tùy chọn triển khai trong TorchScript

Before we look at the code for exporting YOLOv8 models to the TorchScript format, let's understand where TorchScript models are normally used.

TorchScript Cung cấp các 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ư:

  • API C++: Trường hợp sử dụng phổ biến nhất cho TorchScript là API C ++ của nó, cho phép bạn tải và thực thi được tối ưu hóa TorchScript mô hình 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 có sẵn. API C ++ cung cấp chi phí thấp và thực thi hiệu quả TorchScript mô hình, tối đa hóa tiềm năng hiệu suất.

  • Triển khai di động: TorchScript Cung cấp các công cụ để chuyển đổi mô hình thành các định dạng có thể triển khai dễ dàng trên thiết bị di động. PyTorch Điện thoại di động cung cấp thời gian chạy để thực thi các mô hình này trong ứ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 đám mây: TorchScript Các mô hình có thể được triển khai cho các máy chủ dựa trên đám mây bằng các giải pháp như TorchServe. Nó cung cấp các tính năng như lập phiên bản mô hình, phân lô và giám sát số liệu để triển khai có thể mở rộng trong môi trường sản xuất. Triển khai đám mây với TorchScript có thể làm cho mô hình của bạn có thể truy cập được thông qua API hoặc các dịch vụ web khác.

Xuất sang TorchScript: Chuyển đổi của bạn YOLOv8 Mẫu

Xuất khẩu YOLOv8 mô hình để TorchScript làm cho nó dễ dàng hơn để 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 trong thế giới thực.

Cài đặt

Để cài đặt gói yêu cầu, hãy chạy:

Cài đặt

# Install the required package for YOLOv8
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 quá trình cài đặt, hãy kiểm tra Ultralytics Hướng dẫn cài đặt. Trong khi cài đặt các gói cần thiết cho YOLOv8, 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.

Sử dụng

Trước khi đi sâu vào hướng dẫn sử dụng, điều quan trọng cần lưu ý là trong khi tất cả Ultralytics YOLOv8 Các mô hình có sẵn để xuất, bạn có thể đảm bảo rằng mô hình bạn chọn hỗ trợ chức năng xuất tại đây.

Sử dụng

from ultralytics import YOLO

# Load the YOLOv8 model
model = YOLO("yolov8n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolov8n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO("yolov8n.torchscript")

# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLOv8n PyTorch model to TorchScript format
yolo export model=yolov8n.pt format=torchscript  # creates 'yolov8n.torchscript'

# Run inference with the exported model
yolo predict model=yolov8n.torchscript source='https://ultralytics.com/images/bus.jpg'

Để biết thêm chi tiết về quy trình xuất, hãy truy cập Ultralytics trang tài liệu về xuất khẩu.

Triển khai xuất khẩu YOLOv8 TorchScript Mô hình

Sau khi xuất thành công Ultralytics YOLOv8 mô hình để TorchScript định dạng, bây giờ bạn có thể triển khai chúng. Bước đầu tiên chính và được đề xuất để chạy một TorchScript Mô hình là sử dụng YOLO("Mô hình.torchscriptPhương thức "), như đã nêu trong đoạn mã sử dụng trước. Tuy nhiên, để được hướng dẫn chuyên sâu về cách triển khai TorchScript Các mô hình trong nhiều cài đặt khác, hãy xem các tài nguyên sau:

  • Khám phá triển khai di động: PyTorch Tài liệu dành cho thiết bị di động cung cấp 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 hoạt động hiệu quả và đáp ứng.

  • Triển khai phía máy chủ chính: Tìm hiểu cách triển khai các mô hình phía máy chủ với TorchServe, cung cấp hướng dẫn từng bước để phục vụ mô hình hiệu quả, có thể mở rộng.

  • Triển khai triển khai C ++: Đi sâu vào hướng dẫn về tải một TorchScript Mô hình trong C ++, tạo điều kiện tích hợp TorchScript mô hình hóa thành 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 tôi đã khám phá quá trình xuất Ultralytics YOLOv8 mô hình cho TorchScript định dạng. Bằng cách làm theo hướng dẫn được cung cấp, bạn có thể tối ưu hóa YOLOv8 Các mô hình cho hiệu suất và đạt được sự linh hoạt để triển khai chúng trên các nền tảng và môi trường khác nhau.

For further details on usage, visit TorchScript's official documentation.

Also, if you'd like to know more about other Ultralytics YOLOv8 integrations, visit our integration guide page. You'll find plenty of useful resources and insights there.



Created 2024-03-01, Updated 2024-06-10
Authors: glenn-jocher (5), abirami-vina (2)

Ý kiến