Ultralytics YOLO27:

Tìm hiểu cách xuất sang định dạng TF SavedModel từ YOLO26#

Việc triển khai các model machine learning có thể đầy thách thức. Tuy nhiên, sử dụng một định dạng model 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 framework machine learning mã nguồn mở được TensorFlow sử dụng để tải các model machine learning theo cách nhất quán. Nó giống như một chiếc va-li dành cho các 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 các 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 khác nhau. 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, đơn giản hóa quy trình chạy inference với model 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à serialize các model TensorFlow một cách liền mạch. Nó đóng gói đầy đủ thông tin chi tiết của model, chẳng hạn như kiến trúc, weights và cả thông tin compilation. Nhờ đó, việc chia sẻ, triển khai và tiếp tục training trên các môi trường khác nhau trở nên đơn giản.

TensorFlow SavedModel export format structure

TF SavedModel có một ưu điểm then chốt: khả năng tương thích. Định dạng này 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 việc chia sẻ và triển khai model trên nhiều nền tảng, bao gồm ứng dụng web và mobile, trở nên 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 một cách thống nhất để quản lý model, đả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 SavedModel#

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 AI developer:

  • Tính portable: TF SavedModel cung cấp một định dạng serialization trung lập với ngôn ngữ, có thể khôi phục và hermetic. Đị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à chuyển đổi các model TensorFlow. SavedModel có thể dễ dàng được chia sẻ và triển khai 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 computational graph, các tham số đã training và metadata cần thiết vào một package duy nhất. Model có thể dễ dàng được tải và sử dụng để inference mà không cần mã nguồn ban đầu đã xây dựng model. Điều này giúp 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ý asset: TF SavedModel hỗ trợ đưa vào các asset bên ngoài như vocabulary, embedding hoặc lookup table. Các asset này được lưu cùng với định nghĩa graph và các biến, đảm bảo chúng luôn có sẵn khi model đượ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 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 đi sâu vào quy trình xuất các model YOLO26 sang định dạng TF SavedModel, hãy cùng xem xét một số kịch bản 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 các model machine learning của bạn:

  • TensorFlow Serving: TensorFlow Serving là một hệ thống serving linh hoạt, hiệu năng cao, được thiết kế cho môi trường production. Hệ thống này hỗ trợ TF SavedModel nguyên bản, giúp dễ dàng triển khai và serving model trên các nền tảng cloud, server on-premises hoặc edge device.

  • Nền tảng cloud: Các nhà cung cấp cloud lớn như Google Cloud Platform (GCP), Amazon Web Services (AWS)Microsoft Azure cung cấp các dịch vụ để triển khai và chạy model TensorFlow, bao gồm cả TF SavedModel. Các dịch vụ này cung cấp hạ tầng có khả năng mở rộng và được quản lý, cho phép bạn dễ dàng triển khai và scale model.

  • Thiết bị mobile và nhúng: LiteRT (trước đây là TensorFlow Lite), một giải pháp nhẹ để chạy model machine learning trên thiết bị mobile, nhúng và IoT, hỗ trợ chuyển đổi TF SavedModel sang định dạng LiteRT. Điều này cho phép bạn triển khai model trên nhiều loại thiết bị, từ smartphone và tablet đến vi điều khiển và edge device.

  • TensorFlow Runtime: TensorFlow Runtime (tfrt) là một runtime hiệu năng cao để thực thi TensorFlow graph. Runtime này 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 năng tốt hơn so với TensorFlow runtime tiêu chuẩn. Runtime này phù hợp với các kịch bản triển khai yêu cầu inference độ trễ thấp và tích hợp chặt chẽ với các codebase C++ hiện có.

Các Task được hỗ trợ#

Tính năng xuất TF SavedModel hỗ trợ cả bảy task của Ultralytics. Semantic segmentation và depth estimation chỉ khả dụng với YOLO26, dòng duy nhất được phát hành cùng các head này.

TaskYOLOv8YOLO11YOLO26
Detect
Segment
Semantic
Depth
Classify
Pose
OBB

Xuất model YOLO26 sang TF SavedModel#

Bằng cách xuất model YOLO26 sang định dạng TF SavedModel, bạn nâng cao khả năng thích ứng và mức độ dễ triển khai của model trên nhiều nền tảng khác nhau.

Cài đặt#

Để cài đặt package bắt buộc, hãy chạy:

Cài đặt
# Install the required package for YOLO26
pip install ultralytics

Để xem hướng dẫn chi tiết và các best practice liên quan đến quy trình cài đặt, hãy tham khảo 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 xem hướng dẫn Các vấn đề Thường gặp để tìm giải pháp và mẹo xử lý.

Cách sử dụng#

Tất cả model Ultralytics YOLO26 đều được thiết kế để hỗ trợ xuất ngay khi cài đặt, giúp dễ dàng tích hợp vào quy trình triển khai mà bạn lựa chọn. 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 phù hợp nhất cho ứng dụng của mình.

Định dạng TF SavedModel hỗ trợ các mode Export, PredictValidate. Hãy xuất model, sau đó tải model đã xuất để chạy inference hoặc validate độ chính xác.

Export
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TF SavedModel format
model.export(format="saved_model")  # creates 'yolo26n_saved_model'
Predict
from ultralytics import YOLO

# Load the exported TF SavedModel model
model = YOLO("./yolo26n_saved_model")

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validate
from ultralytics import YOLO

# Load the exported TF SavedModel model
model = YOLO("./yolo26n_saved_model")

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Đối số Export#

Đối sốKiểuMặc địnhMô tả
formatstr'saved_model'Định dạng đích của model đã export, xác định khả năng tương thích với nhiều môi trường triển khai.
imgszint hoặc tuple640Kích thước ảnh mong muốn cho input của model. Có thể là một số nguyên đối với ảnh vuông hoặc một tuple (height, width) cho các kích thước cụ thể.
kerasboolFalseCho 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.
quantizeint hoặc strNoneĐộ chính xác quantization: 8 (INT8/PTQ; cần calibration data/fraction) hoặc 32/bỏ trống (FP32). FP16 không được hỗ trợ khi xuất SavedModel. Thay thế flag int8 đã deprecated.
opsetintNoneChỉ định phiên bản opset ONNX cho graph ONNX trung gian. Nếu không thiết lập, phiên bản được hỗ trợ mới nhất sẽ được sử dụng.
nmsbool, tùy chọnNoneChọn đầu ra thô (None, mặc định), NMS tích hợp (True), hoặc phần đầu không có NMS (False).
batchint1Chỉ định batch inference size của model export hoặc số image tối đa mà model đã export sẽ xử lý đồng thời trong mode predict.
datastrNoneĐường dẫn đến YAML của dataset, cần thiết cho lượng tử hóa; tác vụ classification thay vào đó nhận một thư mục dataset hoặc tên dataset tích hợp sẵn. Nếu bị bỏ qua khi dùng quantize=8, Ultralytics sẽ chọn dataset calibration mặc định cho tác vụ của model.
fractionfloat, int hoặc list1.0Tập con hiệu chuẩn dưới dạng tỷ lệ, số lượng ảnh hoặc các tỷ lệ/số lượng [train, val, test]. Với danh sách gồm hai mục, test để trống, còn 0 sẽ bỏ qua mục này.
devicestrNoneChỉ định thiết bị dùng để xuất: CPU (device=cpu), MPS cho Apple silicon (device=mps).

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

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 đượ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 sử dụng ở trên.

Tuy nhiên, để xem hướng dẫn chuyên sâu về triển khai model TF SavedModel, hãy tham khảo các tài nguyên sau:

  • TensorFlow Serving: Đây là tài liệu developer 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 TensorFlow SavedModel trực tiếp trong Node.js mà không cần chuyển đổi.

  • Triển khai trên Cloud: Bài viết trên blog TensorFlow hướng dẫn 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 các model Ultralytics YOLO26 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à scale 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 truy cập tài liệu chính thức về TF SavedModel.

Để biết thêm thông tin về việc 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 cung cấp nhiều tài nguyên hữu ích giúp bạn khai thác tối đa YOLO26 trong các project.

FAQ#

  • Việc xuất model Ultralytics YOLO sang định dạng TensorFlow SavedModel rất đơn giản. Bạn có thể sử dụng Python hoặc CLI để thực hiện:

    Xuất YOLO26 sang TF SavedModel
    from ultralytics import YOLO
    
    # Load a YOLO26 model
    model = YOLO("yolo26n.pt")
    
    # Export the model to TF SavedModel format
    model.export(format="saved_model")  # creates 'yolo26n_saved_model'
    
    # Load the exported TF SavedModel for inference
    tf_savedmodel_model = YOLO("./yolo26n_saved_model")
    results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")

    Tham khảo tài liệu Export của Ultralytics để biết thêm chi tiết.

  • Định dạng TensorFlow SavedModel mang lại một số lợi ích cho việc triển khai model:

    • Tính portable: Cung cấp định dạng trung lập với ngôn ngữ, giúp dễ dàng chia sẻ và triển khai model 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, LiteRT và TensorFlow.js, vốn rất cần thiết để triển khai model trên nhiều nền tảng, bao gồm ứng dụng web và mobile.
    • Đóng gói đầy đủ: Mã hóa kiến trúc model, weights và thông tin compilation, cho phép dễ dàng chia sẻ và tiếp tục training.

    Để 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 YOLO của Ultralytics.

  • 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 các môi trường production yêu cầu model serving có khả năng 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ị mobile và nhúng: Sử 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ị mobile, thiết bị IoT và vi điều khiển.
    • TensorFlow Runtime: Dành cho các môi trường C++ cần inference độ trễ thấp với hiệu năng tốt hơn.

    Để biết chi tiết về các tùy chọn triển khai, hãy truy cập các 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

    Để biết hướng dẫn cài đặt chi tiết hơn và các best practice, hãy tham khảo hướng dẫn Cài đặt Ultralytics. Nếu gặp bất kỳ vấn đề nào, hãy xem hướng dẫn Các vấn đề thường gặp.

  • Định dạng TF SavedModel mang lại lợi ích cho các AI developer nhờ những tính năng sau:

    • Tính portable: Cho phép dễ dàng chia sẻ và triển khai trên nhiều môi trường khác nhau.
    • Dễ triển khai: Đóng gói computational graph, các tham số đã training và metadata vào một package duy nhất, giúp đơn giản hóa việc tải và inference.
    • Quản lý asset: Hỗ trợ các asset bên ngoài như vocabulary, đảm bảo chúng có sẵn khi model được tải.

    Để biết thêm chi tiết, hãy xem tài liệu TensorFlow chính thức.

Bình luận