Tìm hiểu cách xuất sang định dạng TF SavedModel từ YOLO11
Việc triển khai các mô hình học máy có thể là một thách thức. Tuy nhiên, việc sử dụng một định dạng mô hình hiệu quả và linh hoạt có thể giúp công việc của bạn dễ dàng hơn. TF SavedModel là một khung học máy mã nguồn mở được TensorFlow sử dụng để tải các mô hình học máy một cách nhất quán. Nó giống như một chiếc vali cho các mô hình TensorFlow, giúp chúng dễ dàng mang theo và sử dụng trên các thiết bị và hệ thống khác nhau.
Tìm hiểu cách xuất sang TF SavedModel từ các mô hình Ultralytics YOLO11 có thể giúp bạn triển khai các mô hình một cách dễ dàng trên các nền tảng và môi trường khác nhau. Trong hướng dẫn này, chúng ta sẽ xem xét cách chuyển đổi các mô hình của bạn sang định dạng TF SavedModel, đơn giản hóa quy trình chạy suy luận với các mô hình của bạn trên các thiết bị khác nhau.
Tại sao bạn nên xuất sang TF SavedModel?
Định dạng TensorFlow SavedModel là một phần của hệ sinh thái TensorFlow do Google phát triển như hình bên dưới. Nó được thiết kế để lưu và tuần tự hóa các mô hình TensorFlow một cách liền mạch. Nó đóng gói đầy đủ các chi tiết của mô hình như kiến trúc, trọng số và thậm chí cả thông tin biên dịch. Điều này giúp bạn dễ dàng chia sẻ, triển khai và tiếp tục đào tạo trên các môi trường khác nhau.
TF SavedModel có một lợi thế chính: khả năng tương thích. Nó hoạt động tốt với TensorFlow Serving, TensorFlow Lite và TensorFlow.js. Khả năng tương thích này giúp bạn dễ dàng chia sẻ và triển khai các mô hình trên nhiều nền tảng khác nhau, bao gồm các ứng dụng web và di động. Định dạng TF SavedModel rất hữu ích cho cả nghiên cứu và sản xuất. Nó cung cấp một cách thống nhất để quản lý các mô hình của bạn, đảm bảo chúng sẵn sàng cho mọi ứng dụng.
Các tính năng chính của TF SavedModels
Dưới đây là các tính năng chính khiến TF SavedModel trở thành một lựa chọn tuyệt vời cho các nhà phát triển AI:
-
Tính di động: TF SavedModel cung cấp một định dạng tuần tự hóa khép kín, có thể phục hồi và trung lập về ngôn ngữ. Chúng cho phép các hệ thống và công cụ cấp cao hơn tạo, sử dụng và chuyển đổi các mô hình TensorFlow. SavedModel có thể dễ dàng được chia sẻ và triển khai trên các nền tảng và môi trường khác nhau.
-
Dễ dàng triển khai: TF SavedModel đóng gói đồ thị tính toán, các tham số đã huấn luyện và siêu dữ liệu cần thiết vào một gói duy nhất. Chúng có thể dễ dàng được tải và sử dụng để suy luận mà không cần mã nguồn gốc đã xây dựng mô hình. Điều này làm cho việc triển khai các mô hình TensorFlow trở nên đơn giản và hiệu quả trong nhiều môi trường sản xuất khác nhau.
-
Quản lý tài sản: TF SavedModel hỗ trợ bao gồm các tài sản bên ngoài như từ vựng, embedding hoặc bảng tra cứu. Các tài sản này được lưu trữ cùng với định nghĩa đồ thị và các biến, đảm bảo chúng luôn sẵn có khi mô hình được tải. Tính năng này đơn giản hóa việc quản lý và phân phối các mô hình dựa trên tài nguyên bên ngoài.
Các tùy chọn triển khai với TF SavedModel
Trước khi chúng ta đi sâu vào quy trình xuất các mô hình YOLO11 sang định dạng TF SavedModel, hãy khám phá một số tình huống triển khai điển hình mà định dạng này được sử dụng.
TF SavedModel cung cấp một loạt các tùy chọn để triển khai các mô hình machine learning của bạn:
-
TensorFlow Serving: TensorFlow Serving là một hệ thống linh hoạt, hiệu suất cao được thiết kế cho môi trường production. Nó hỗ trợ TF SavedModels một cách tự nhiên, giúp bạn dễ dàng triển khai và phục vụ các mô hình của mình trên các nền tảng đám mây, máy chủ tại chỗ hoặc thiết bị biên.
-
Nền tảng đám mây: Các nhà cung cấp dịch vụ đám mây lớn như Google Cloud Platform (GCP), Amazon Web Services (AWS) và Microsoft Azure cung cấp các dịch vụ để triển khai và chạy các mô hình TensorFlow, bao gồm cả TF SavedModels. Các dịch vụ này cung cấp cơ sở hạ tầng có thể mở rộng và được quản lý, cho phép bạn triển khai và mở rộng quy mô mô hình của mình một cách dễ dàng.
-
Thiết bị di động và nhúng: TensorFlow Lite, một giải pháp nhẹ để chạy các mô hình máy học trên các thiết bị di động, nhúng và IoT, hỗ trợ chuyển đổi TF SavedModels sang định dạng TensorFlow Lite. Điều này cho phép bạn triển khai các mô hình của mình trên nhiều loại thiết bị, từ điện thoại thông minh và máy tính bảng đến bộ vi điều khiển và thiết bị biên.
-
TensorFlow Runtime: TensorFlow Runtime (
tfrt
) là một thời gian chạy hiệu suất cao để thực thi TensorFlow đồ thị. Nó cung cấp các API cấp thấp hơn để tải và chạy TF SavedModel trong môi trường C++. TensorFlow Runtime mang lại hiệu suất tốt hơn so với thời gian chạy TensorFlow tiêu chuẩn. Nó phù hợp cho các tình huống triển khai yêu cầu suy luận độ trễ thấp và tích hợp chặt chẽ với các cơ sở mã C++ hiện có.
Xuất các mô hình YOLO11 sang TF SavedModel
Bằng cách xuất các mô hình YOLO11 sang định dạng TF SavedModel, bạn sẽ tăng cường khả năng thích ứng và dễ dàng triển khai chúng 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:
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 TF SavedModel format
model.export(format="saved_model") # creates '/yolo11n_saved_model'
# Load the exported TF SavedModel model
tf_savedmodel_model = YOLO("./yolo11n_saved_model")
# Run inference
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TF SavedModel format
yolo export model=yolo11n.pt format=saved_model # creates '/yolo11n_saved_model'
# Run inference with the exported model
yolo predict model='./yolo11n_saved_model' source='https://ultralytics.com/images/bus.jpg'
Các đối số xuất
Đối số | Loại | Mặc định | Mô tả |
---|---|---|---|
format |
str |
'saved_model' |
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ể. |
keras |
bool |
False |
Cho phép xuất sang định dạng Keras, cung cấp khả năng tương thích với TensorFlow serving và các API. |
int8 |
bool |
False |
Kích hoạt lượng tử hóa INT8, nén thêm mô hình và tăng tốc độ suy luận với mức giảm độ chính xác tối thiểu, chủ yếu dành cho các thiết bị biên. |
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: 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 TF SavedModel Đã Xuất
Bây giờ bạn đã xuất mô hình YOLO11 của mình sang định dạng TF SavedModel, bước tiếp theo là triển khai nó. Bước đầu tiên chính và được khuyến nghị để chạy mô hình TF SavedModel là sử dụng YOLO("yolo11n_saved_model/")
phương thức, như đã trình bày trước đó trong đoạn mã sử dụng.
Tuy nhiên, để biết hướng dẫn chuyên sâu về cách triển khai các mô hình TF SavedModel của bạn, hãy xem các tài nguyên sau:
-
TensorFlow Serving: Đây là tài liệu dành cho nhà phát triển về cách triển khai các mô hình TF SavedModel bằng TensorFlow Serving.
-
Chạy TensorFlow SavedModel trong Node.js: Một bài đăng trên blog TensorFlow về việc chạy TensorFlow SavedModel trong Node.js trực tiếp mà không cần chuyển đổi.
-
Triển khai trên Cloud: Một bài đăng trên blog TensorFlow về việc triển khai mô hình TensorFlow SavedModel trên Cloud AI Platform.
Tóm tắt
Trong hướng dẫn này, chúng ta đã khám phá cách xuất các mô hình Ultralytics YOLO11 sang định dạng TF SavedModel. Bằng cách xuất sang TF SavedModel, bạn có được sự linh hoạt để tối ưu hóa, triển khai và mở rộng quy mô các mô hình YOLO11 của mình trên nhiều nền tảng.
Để 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 TF SavedModel.
Để biết thêm thông tin về tích hợp Ultralytics YOLO11 với các nền tảng và framework khác, đừng quên xem trang hướng dẫn tích hợp của chúng tôi. Trang này chứa đầy các tài nguyên tuyệt vời để giúp bạn tận dụng tối đa YOLO11 trong các dự án của mình.
Câu hỏi thường gặp
Làm cách nào để xuất một mô hình Ultralytics YOLO sang định dạng TensorFlow SavedModel?
Việc xuất mô hình Ultralytics YOLO sang định dạng TensorFlow SavedModel rất đơn giản. Bạn có thể sử dụng Python hoặc CLI để đạt được điều này:
Xuất YOLO11 sang TF SavedModel
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo11n_saved_model'
# Load the exported TF SavedModel for inference
tf_savedmodel_model = YOLO("./yolo11n_saved_model")
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")
# Export the YOLO11 model to TF SavedModel format
yolo export model=yolo11n.pt format=saved_model # creates '/yolo11n_saved_model'
# Run inference with the exported model
yolo predict model='./yolo11n_saved_model' source='https://ultralytics.com/images/bus.jpg'
Tham khảo tài liệu Ultralytics Export để biết thêm chi tiết.
Tại sao tôi nên sử dụng định dạng TensorFlow SavedModel?
Định dạng TensorFlow SavedModel cung cấp một số lợi thế cho việc triển khai mô hình:
- Tính di động: Nó cung cấp một định dạng trung lập về ngôn ngữ, giúp dễ dàng chia sẻ và triển khai các mô hình trên các môi trường khác nhau.
- Khả năng tương thích: Tích hợp liền mạch với các công cụ như TensorFlow Serving, TensorFlow Lite và TensorFlow.js, rất cần thiết để triển khai các mô hình trên nhiều nền tảng khác nhau, bao gồm các ứng dụng web và di động.
- Đóng gói hoàn chỉnh: Mã hóa kiến trúc mô hình, trọng số và thông tin biên dịch, cho phép chia sẻ đơn giản và tiếp tục đào tạo.
Để biết thêm các lợi ích và tùy chọn triển khai, hãy xem các tùy chọn triển khai mô hình Ultralytics YOLO.
Các tình huống triển khai điển hình cho TF SavedModel là gì?
TF SavedModel có thể được triển khai trong nhiều môi trường khác nhau, bao gồm:
- TensorFlow Serving: Lý tưởng cho môi trường sản xuất đòi hỏi khả năng phục vụ mô hình có thể mở rộng và hiệu suất cao.
- Nền Tảng Cloud: Hỗ trợ các dịch vụ cloud lớn như Google Cloud Platform (GCP), Amazon Web Services (AWS) và Microsoft Azure để triển khai mô hình có khả năng mở rộng.
- Thiết bị di động và nhúng: Sử dụng TensorFlow Lite để chuyển đổi TF SavedModels cho phép triển khai trên các thiết bị di động, thiết bị IoT và bộ vi điều khiển.
- TensorFlow Runtime: Dành cho môi trường C++ cần suy luận độ trễ thấp với hiệu suất tốt hơn.
Để biết các tùy chọn triển khai chi tiết, hãy truy cập hướng dẫn chính thức về triển khai các mô hình TensorFlow.
Làm thế nào để cài đặt các gói cần thiết để xuất mô hình YOLO11?
Để xuất các mô hình YOLO11, bạn cần cài đặt ultralytics
gói. Chạy lệnh sau trong terminal của bạn:
pip install ultralytics
Để biết thêm hướng dẫn cài đặt chi tiết và các phương pháp hay nhất, hãy tham khảo hướng dẫn Cài đặt Ultralytics của chúng tôi. Nếu bạn gặp bất kỳ vấ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.
Các tính năng chính của định dạng TensorFlow SavedModel là gì?
Định dạng TF SavedModel có lợi cho các nhà phát triển AI do các tính năng sau:
- Tính di động: Cho phép chia sẻ và triển khai dễ dàng trên nhiều môi trường khác nhau.
- Dễ dàng triển khai: Đóng gói đồ thị tính toán, các tham số đã huấn luyện và siêu dữ liệu vào một gói duy nhất, giúp đơn giản hóa việc tải và suy luận.
- Quản lý tài sản: Hỗ trợ các tài sản bên ngoài như từ vựng, đảm bảo chúng luôn sẵn có khi mô hình tải.
Để biết thêm chi tiết, hãy tham khảo tài liệu chính thức của TensorFlow.