Tìm hiểu cách xuất YOLO26 sang định dạng TF SavedModel#
Triển khai model machine learning có thể là một thách thức. Tuy nhiên, sử dụng định dạng model hiệu quả và linh hoạt có thể giúp công việc dễ dàng hơn. TF SavedModel là định dạng tuần tự hóa tiêu chuẩn của TensorFlow để lưu và tải model machine learning một cách nhất quán. Có thể hình dung định dạng này như một chiếc vali dành cho model TensorFlow, giúp 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 model Ultralytics YOLO26 sang TF SavedModel có thể giúp bạn dễ dàng triển khai model trên nhiều nền tảng và môi trường. Trong hướng dẫn này, chúng tôi sẽ trình bày cách chuyển đổi model sang định dạng TF SavedModel, giúp đơn giản hóa quy trình chạy suy luận trên các thiết bị khác nhau.
Tại sao 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ư minh họa bên dưới. Định dạng này được thiết kế để lưu và tuần tự hóa model TensorFlow một cách liền mạch. Định dạng này đóng gói đầy đủ thông tin chi tiết của model như kiến trúc, trọng số và cả thông tin biên dịch. Nhờ đó, việc chia sẻ, triển khai và tiếp tục huấn luyện model trên các môi trường khác nhau trở nên đơn giản.
TF SavedModel có một ưu điểm quan trọng: khả năng tương thích. TF SavedModel hoạt động tốt với TensorFlow Serving, LiteRT (trước đây là TensorFlow Lite) và TensorFlow.js. Khả năng tương thích này giúp chia sẻ và triển khai model trên nhiều nền tảng, bao gồm ứng dụng web và di động, dễ dàng hơn. Định dạng TF SavedModel hữu ích cho cả nghiên cứu lẫn production. Định dạng này cung cấp cách quản lý model thống nhất, đảm bảo model sẵn sàng cho mọi ứng dụng.
Các tính năng chính của TF SavedModel#
Sau đây là các tính năng chính khiến TF SavedModel trở thành lựa chọn phù hợp cho nhà phát triển AI:
-
Tính di động: TF SavedModel cung cấp định dạng tuần tự hóa trung lập về ngôn ngữ, có thể khôi phục và khép kín. Định dạng này cho phép các hệ thống và công cụ cấp cao hơn tạo, sử dụng và biến đổi model TensorFlow. Có thể dễ dàng chia sẻ và triển khai SavedModel trên nhiều nền tảng và môi trường khác nhau.
-
Dễ triển khai: TF SavedModel đóng gói đồ thị tính toán, 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. Có thể dễ dàng tải và sử dụng model để suy luận mà không cần code gốc dùng để xây dựng model. Nhờ đó, việc triển khai model TensorFlow trở nên đơn giản và hiệu quả trong nhiều môi trường production.
-
Quản lý tài nguyên: TF SavedModel hỗ trợ đưa vào các tài nguyên bên ngoài như từ vựng, embedding hoặc bảng tra cứu. Các tài nguyên này được lưu cùng với định nghĩa đồ thị và biến, đảm bảo luôn có sẵn khi tải model. Tính năng này giúp đơn giản hóa việc quản lý và phân phối model phụ thuộc vào tài nguyên bên ngoài.
Các tùy chọn triển khai với TF SavedModel#
Trước khi tìm hiểu quy trình xuất model YOLO26 sang định dạng TF SavedModel, hãy xem một số tình huống triển khai phổ biến sử dụng định dạng này.
TF SavedModel cung cấp nhiều tùy chọn để triển khai model machine learning:
-
TensorFlow Serving: TensorFlow Serving là hệ thống phục vụ linh hoạt, hiệu năng cao, được thiết kế cho môi trường production. Hệ thống hỗ trợ TF SavedModel nguyên bản, giúp dễ dàng triển khai và phục vụ model trên nền tảng đám mây, máy chủ tại chỗ hoặc thiết bị edge.
-
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 dịch vụ triển khai và chạy model TensorFlow, bao gồm TF SavedModel. Các dịch vụ này cung cấp hạ tầng được quản lý, có khả năng mở rộng, giúp bạn dễ dàng triển khai và mở rộng quy mô model.
-
Thiết bị di động và nhúng: LiteRT (trước đây là TensorFlow Lite), một giải pháp gọn nhẹ để chạy model machine learning trên thiết bị di động, nhúng và IoT, hỗ trợ chuyển đổi TF SavedModel sang định dạng LiteRT. Nhờ đó, bạn có thể triển khai model 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 vi điều khiển và thiết bị edge.
-
TensorFlow Runtime: TensorFlow Runtime (
tfrt) là runtime hiệu năng cao để thực thi đồ thị TensorFlow. Runtime này cung cấp API cấp thấp để tải và chạy TF SavedModel trong môi trường C++. TensorFlow Runtime có hiệu năng tốt hơn runtime TensorFlow tiêu chuẩn. Runtime này phù hợp với các tình huống triển khai cần suy luận độ trễ thấp và tích hợp chặt chẽ với codebase C++ hiện có.
Các tác vụ được hỗ trợ#
Tính năng xuất TF SavedModel hỗ trợ cả bảy tác vụ của Ultralytics. Chỉ YOLO26 có phân đoạn ngữ nghĩa và ước tính độ sâu, vì đây là họ model duy nhất có các head này.
Xuất model YOLO26 sang TF SavedModel#
Xuất model YOLO26 sang định dạng TF SavedModel giúp tăng tính linh hoạt và đơn giản hóa việc triển khai trên nhiều nền tảng.
Cài đặt#
Để cài đặt package cần thiết, hãy chạy:
# Install the required package for YOLO26
pip install ultralyticsĐể biết hướng dẫn chi tiết và các phương pháp tốt nhất về quy trình cài đặt, hãy xem hướng dẫn cài đặt Ultralytics. Nếu gặp khó khăn khi cài đặt các package cần thiết cho YOLO26, hãy tham khảo hướng dẫn khắc phục sự cố thường gặp để tìm giải pháp và mẹo hữu ích.
Cách sử dụng#
Tất cả model Ultralytics YOLO26 đều được thiết kế để hỗ trợ xuất ngay từ đầu, giúp bạn dễ dàng tích hợp chúng vào quy trình triển khai mong muốn. Bạn có thể xem danh sách đầy đủ các định dạng xuất được hỗ trợ và tùy chọn cấu hình để chọn thiết lập phù hợp nhất cho ứng dụng.
Định dạng TF SavedModel hỗ trợ các chế độ Export, Predict và Validate. Hãy xuất model, sau đó tải model đã xuất để chạy suy luận hoặc xác thực độ chính xác.
from ultralytics import YOLO
# Nạp model YOLO26
model = YOLO("yolo26n.pt")
# Xuất model sang định dạng TF SavedModel
model.export(format="saved_model") # creates 'yolo26n_saved_model'from ultralytics import YOLO
# Tải model TF SavedModel đã xuất
model = YOLO("./yolo26n_saved_model")
# Chạy suy luận
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Tải model TF SavedModel đã xuất
model = YOLO("./yolo26n_saved_model")
# # Đánh giá độ chính xác trên bộ dữ liệu COCO8
metrics = model.val(data="coco8.yaml")Các tham số xuất model#
| Đối số | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
format | str | 'saved_model' | Định dạng đích của model đã xuất, xác định khả năng tương thích với nhiều môi trường triển khai. |
imgsz | int hoặc tuple | 640 | Kích thước ảnh mong muốn cho đầu vào model. Có thể là số nguyên cho ảnh vuông hoặc tuple (height, width) để chỉ định kích thước cụ thể. |
quantize | int hoặc str | None | Độ chính xác lượng tử hóa: 8 (INT8/PTQ; cần hiệu chuẩn data/fraction) hoặc 32/để trống (FP32). Không hỗ trợ FP16 khi xuất SavedModel. Thay thế cờ int8 đã lỗi thời. |
opset | int | None | Chỉ định phiên bản opset ONNX cho đồ thị ONNX trung gian. Nếu không đặt, phiên bản được hỗ trợ mới nhất sẽ được sử dụng. |
nms | bool, không bắt buộc | None | Chọn đầu ra thô (None, mặc định), NMS nhúng (True) hoặc head không có NMS (False). |
batch | int | 1 | Chỉ định kích thước batch suy luận của model khi xuất hoặc số lượng ảnh tối đa mà model đã xuất xử lý đồng thời ở chế độ predict. |
data | str | None | Đường dẫn đến YAML của dataset, cần thiết cho việc lượng tử hóa; riêng tác vụ phân loại cần thư mục dataset hoặc tên dataset tích hợp sẵn. Nếu không chỉ định quantize=8, Ultralytics sẽ chọn dataset hiệu chuẩn mặc định cho tác vụ của model. |
fraction | float, int hoặc list | 1.0 | Tập con hiệu chuẩn dưới dạng tỷ lệ, số lượng ảnh hoặc tỷ lệ/số lượng [train, val, test]. Danh sách gồm hai mục giữ test ở dạng đầy đủ, còn 0 sẽ bỏ qua mục này. |
device | str | None | Chỉ định thiết bị dùng để export: 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 model.
Triển khai model YOLO26 TF SavedModel đã xuất#
Sau khi xuất model YOLO26 sang định dạng TF SavedModel, bước tiếp theo là triển khai model. Bước đầu tiên chính và được khuyến nghị để chạy model TF SavedModel là sử dụng phương thức YOLO("yolo26n_saved_model/"), như đã trình bày trong đoạn code ví dụ sử dụng ở trên.
Để biết hướng dẫn chi tiết về cách triển khai model TF SavedModel, hãy tham khảo các tài nguyên sau:
-
TensorFlow Serving: Tài liệu dành cho nhà phát triển này hướng dẫn cách triển khai model TF SavedModel bằng TensorFlow Serving.
-
Chạy TensorFlow SavedModel trong Node.js: Bài viết trên blog TensorFlow hướng dẫn chạy trực tiếp TensorFlow SavedModel trong Node.js mà không cần chuyển đổi.
-
Triển khai trên Cloud: Bài đăng trên blog TensorFlow về triển khai model TensorFlow SavedModel trên Cloud AI Platform.
Tóm tắt#
Trong hướng dẫn này, chúng ta đã tìm hiểu cách xuất model Ultralytics YOLO26 sang định dạng TF SavedModel. Việc xuất sang TF SavedModel giúp bạn linh hoạt tối ưu hóa, triển khai và mở rộng quy mô model YOLO26 trên nhiều nền tảng.
Để biết thêm chi tiết về cách sử dụng, hãy xem tài liệu chính thức của TF SavedModel.
Để biết thêm thông tin về cách tích hợp Ultralytics YOLO26 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 có nhiều tài nguyên hữu ích giúp bạn khai thác tối đa YOLO26 trong các dự án.
Câu hỏi thường gặp#
Việc xuất model Ultralytics YOLO sang định dạng TensorFlow SavedModel rất đơn giản. Bạn có thể dùng Python hoặc CLI để thực hiện:
Xuất YOLO26 sang TF SavedModelfrom ultralytics import YOLO # Nạp model YOLO26 model = YOLO("yolo26n.pt") # Xuất model sang định dạng TF SavedModel model.export(format="saved_model") # creates 'yolo26n_saved_model' # Tải TF SavedModel đã xuất để suy luận tf_savedmodel_model = YOLO("./yolo26n_saved_model") results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")Tham khảo tài liệu Xuất của Ultralytics để biết thêm chi tiết.
Định dạng TensorFlow SavedModel mang lại một số lợi thế cho việc triển khai model:
- Tính di động: Định dạng này không phụ thuộc vào ngôn ngữ lập trình, giúp dễ dàng chia sẻ và triển khai model trong 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, LiteRT và TensorFlow\.js, vốn thiết yếu để triển khai model trên nhiều nền tảng, bao gồm ứng dụng web và di động.
- Đóng gói toàn diện: Mã hóa kiến trúc model, trọng số và thông tin biên dịch, giúp chia sẻ và tiếp tục huấn luyện dễ dàng.
Để biết thêm lợi ích và các tùy chọn triển khai, hãy xem các tùy chọn triển khai model Ultralytics YOLO.
Có thể triển khai TF SavedModel trong nhiều môi trường, bao gồm:
- TensorFlow Serving: Lý tưởng cho môi trường production cần khả năng phục vụ model có thể mở rộng và hiệu năng 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 model có khả năng mở rộng.
- Thiết bị di động và nhúng: Dùng LiteRT (trước đây là TensorFlow Lite) để chuyển đổi TF SavedModel cho phép triển khai trên thiết bị di động, thiết bị IoT và vi điều khiển.
- TensorFlow Runtime: Dành cho môi trường C++ cần suy luận có độ trễ thấp và hiệu năng tốt hơn.
Để xem 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 model TensorFlow.
Để xuất model YOLO26, bạn cần cài đặt package
ultralytics. Chạy lệnh sau trong terminal:pip install ultralyticsĐể xem hướng dẫn cài đặt chi tiết hơn và các phương pháp tối ưu, hãy tham khảo hướng dẫn Cài đặt Ultralytics. Nếu gặp sự cố, hãy xem hướng dẫn Các sự cố thường gặp.
Định dạng TF SavedModel hữu ích cho nhà phát triển AI nhờ các tính năng sau:
- Tính di động: Cho phép dễ dàng chia sẻ và triển khai trong nhiều môi trường.
- Dễ triển khai: Đóng gói đồ thị tính toán, tham số đã huấn luyện và metadata vào một package duy nhất, giúp đơn giản hóa việc tải và suy luận.
- Quản lý tài nguyên: Hỗ trợ các tài nguyên bên ngoài như từ vựng, đảm bảo chúng khả dụng khi model được tải.
Để biết thêm chi tiết, hãy xem tài liệu chính thức của TensorFlow.