Cách xuất sang TF GraphDef từ YOLO26 để triển khai#
Khi triển khai các model thị giác máy tính tiên tiến như YOLO26 trong nhiều môi trường khác nhau, bạn có thể gặp phải các vấn đề về khả năng tương thích. TensorFlow GraphDef của Google, hay TF GraphDef, cung cấp giải pháp bằng cách cung cấp biểu diễn model được tuần tự hóa và độc lập với nền tảng. Sử dụng định dạng model TF GraphDef, bạn có thể triển khai model YOLO26 trong các môi trường không có đầy đủ hệ sinh thái TensorFlow, chẳng hạn như thiết bị di động hoặc phần cứng chuyên dụng.
Trong hướng dẫn này, chúng tôi sẽ hướng dẫn từng bước cách xuất các model Ultralytics YOLO26 sang định dạng model TF GraphDef. Bằng cách chuyển đổi model, bạn có thể đơn giản hóa quá trình triển khai và sử dụng các khả năng thị giác máy tính của YOLO26 trong nhiều ứng dụng và nền tảng hơn.
Tại sao nên xuất sang TF GraphDef?#
TF GraphDef là một thành phần mạnh mẽ trong hệ sinh thái TensorFlow, được Google phát triển. Nó có thể được sử dụng để tối ưu hóa và triển khai các model như YOLO26. Việc xuất sang TF GraphDef cho phép chuyển model từ nghiên cứu sang các ứng dụng thực tế. Nhờ đó, model có thể chạy trong các môi trường không có đầy đủ framework TensorFlow.
Định dạng GraphDef biểu diễn model dưới dạng một đồ thị tính toán được tuần tự hóa. Điều này cho phép áp dụng nhiều kỹ thuật tối ưu hóa như gấp hằng số, lượng tử hóa và biến đổi đồ thị. Các tối ưu hóa này đảm bảo thực thi hiệu quả, giảm mức sử dụng bộ nhớ và tăng tốc độ suy luận.
Các model GraphDef có thể sử dụng các bộ tăng tốc phần cứng như GPU, TPU và chip AI, mang lại mức tăng hiệu năng đáng kể cho pipeline suy luận YOLO26. Định dạng TF GraphDef tạo ra một gói độc lập chứa model và các dependency của model, giúp đơn giản hóa việc triển khai và tích hợp vào nhiều hệ thống khác nhau.
Các tính năng chính của model TF GraphDef#
TF GraphDef cung cấp các tính năng riêng biệt để đơn giản hóa quá trình triển khai model và tối ưu hóa.
Dưới đây là các đặc điểm chính:
-
Tuần tự hóa model: TF GraphDef cung cấp cách tuần tự hóa và lưu trữ các model TensorFlow ở định dạng độc lập với nền tảng. Biểu diễn được tuần tự hóa này cho phép bạn tải và thực thi model mà không cần codebase Python ban đầu, giúp việc triển khai dễ dàng hơn.
-
Tối ưu hóa đồ thị: TF GraphDef cho phép tối ưu hóa các đồ thị tính toán. Những tối ưu hóa này có thể cải thiện hiệu năng bằng cách tinh gọn luồng thực thi, giảm các thao tác dư thừa và điều chỉnh các phép toán cho phù hợp với phần cứng cụ thể.
-
Tính linh hoạt khi triển khai: Các model được xuất sang định dạng GraphDef có thể được sử dụng trong nhiều môi trường, bao gồm thiết bị hạn chế tài nguyên, trình duyệt web và hệ thống có phần cứng chuyên dụng. Điều này mở ra khả năng triển khai các model TensorFlow trên phạm vi rộng hơn.
-
Tập trung cho môi trường production: GraphDef được thiết kế để triển khai trong môi trường production. Định dạng này hỗ trợ thực thi hiệu quả, các tính năng tuần tự hóa và những tối ưu hóa phù hợp với các trường hợp sử dụng thực tế.
Các tùy chọn triển khai với TF GraphDef#
Trước khi đi vào quy trình xuất model YOLO26 sang TF GraphDef, hãy cùng xem một số tình huống triển khai điển hình sử dụng định dạng này.
Dưới đây là cách triển khai hiệu quả với TF GraphDef trên nhiều nền tảng khác nhau.
-
TensorFlow Serving: Framework này được thiết kế để triển khai các model TensorFlow trong môi trường production. TensorFlow Serving cung cấp khả năng quản lý model, quản lý phiên bản và hạ tầng để phục vụ model hiệu quả ở quy mô lớn. Đây là cách liền mạch để tích hợp các model dựa trên GraphDef vào các web service hoặc API production.
-
Thiết bị di động và thiết bị nhúng: Với các công cụ như LiteRT, bạn có thể chuyển đổi các model TF GraphDef sang những định dạng được tối ưu hóa cho smartphone, tablet và nhiều thiết bị nhúng khác nhau. Sau đó, model có thể được sử dụng để suy luận trên thiết bị, trong đó quá trình thực thi diễn ra cục bộ, thường mang lại hiệu năng cao hơn và khả năng hoạt động ngoại tuyến.
-
Trình duyệt web: TensorFlow.js cho phép triển khai trực tiếp các model TF GraphDef trong trình duyệt web. Điều này mở đường cho các ứng dụng phát hiện đối tượng theo thời gian thực chạy ở phía client, sử dụng khả năng của YOLO26 thông qua JavaScript.
-
Phần cứng chuyên dụng: Tính chất độc lập với nền tảng của TF GraphDef cho phép nhắm đến phần cứng tùy chỉnh, chẳng hạn như các bộ tăng tốc và TPU (bộ xử lý Tensor). Những thiết bị này có thể mang lại lợi thế về hiệu năng cho các model có cường độ tính toán cao.
Các Task được hỗ trợ#
Tính năng xuất TF GraphDef hỗ trợ sáu trong bảy task của Ultralytics. Phân đoạn ngữ nghĩa và ước tính độ sâu chỉ có trên YOLO26, là family duy nhất được phát hành kèm các head này. Các model pose có thể được xuất, nhưng hiện Ultralytics chưa hỗ trợ suy luận GraphDef cho chúng.
Xuất model YOLO26 sang TF GraphDef#
Bạn có thể chuyển đổi model YOLO26 sang định dạng TF GraphDef, tương thích với nhiều hệ thống khác nhau, để cải thiện hiệu năng trên các nền tảng.
Cài đặt#
Để cài đặt package bắt buộc, hãy chạy:
# 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 GraphDef hỗ trợ các mode Export, Predict và Validate, ngoại trừ việc các model pose hiện chỉ hỗ trợ export. Hãy export model, sau đó load model đã export để chạy suy luận hoặc validate độ chính xác.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF GraphDef format
model.export(format="pb") # creates 'yolo26n.pb'from ultralytics import YOLO
# Load the exported TF GraphDef model
model = YOLO("yolo26n.pb")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported TF GraphDef model
model = YOLO("yolo26n.pb")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Đối số Export#
| Đối số | Kiểu | Mặc định | Mô tả |
|---|---|---|---|
format | str | 'pb' | Đị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. |
imgsz | int hoặc tuple | 640 | Kí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ể. |
quantize | int hoặc str | None | Export FP32 cố định. GraphDef không hỗ trợ chuyển đổi precision FP16, INT8 hoặc W8A16 tại thời điểm export. |
opset | int | None | Chỉ đị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. |
batch | int | 1 | Chỉ đị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. |
device | str | None | Chỉ đị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 các model YOLO26 TF GraphDef đã export#
Sau khi export model YOLO26 sang định dạng TF GraphDef, bước tiếp theo là triển khai. Bước đầu tiên và được khuyến nghị để chạy model TF GraphDef là sử dụng phương thức YOLO("model.pb"), như đã trình bày trước đó trong đoạn code mẫu sử dụng.
Tuy nhiên, để biết thêm thông tin về việc triển khai các model TF GraphDef, hãy tham khảo các tài nguyên sau:
-
TensorFlow Serving: Hướng dẫn về TensorFlow Serving, chỉ cách triển khai và phục vụ hiệu quả các model machine learning trong môi trường production.
-
TensorFlow Lite: Trang này mô tả cách chuyển đổi các model machine learning sang định dạng được tối ưu hóa cho suy luận trên thiết bị với TensorFlow Lite.
-
TensorFlow.js: Hướng dẫn chuyển đổi model, chỉ cách chuyển đổi các model TensorFlow hoặc Keras sang định dạng TensorFlow.js để sử dụng trong các ứng dụng web.
Tóm tắt#
Trong hướng dẫn này, chúng ta đã tìm hiểu cách export các model Ultralytics YOLO26 sang định dạng TF GraphDef. Nhờ đó, bạn có thể triển khai linh hoạt các model YOLO26 đã tối ưu hóa trong nhiều 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 về TF GraphDef.
Để 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, hãy xem trang hướng dẫn tích hợp của chúng tôi.
FAQ#
Các model Ultralytics YOLO26 có thể được export liền mạch sang định dạng TensorFlow GraphDef (TF GraphDef). Định dạng này cung cấp biểu diễn model được tuần tự hóa và độc lập với nền tảng, lý tưởng để triển khai trong nhiều môi trường như thiết bị di động và web. Để export model YOLO26 sang TF GraphDef, hãy thực hiện các bước sau:
Cách sử dụngfrom ultralytics import YOLO # Load a YOLO26 model model = YOLO("yolo26n.pt") # Export the model to TF GraphDef format model.export(format="pb") # creates 'yolo26n.pb' # Load the exported TF GraphDef model tf_graphdef_model = YOLO("yolo26n.pb") # Run inference results = tf_graphdef_model("https://ultralytics.com/images/bus.jpg")Để biết thêm thông tin về các tùy chọn export khác nhau, hãy truy cập tài liệu Ultralytics về export model.
Việc export model YOLO26 sang định dạng TF GraphDef mang lại nhiều ưu điểm, bao gồm:
- Độc lập với nền tảng: TF GraphDef cung cấp định dạng độc lập với nền tảng, cho phép triển khai model trên nhiều môi trường khác nhau, bao gồm thiết bị di động và trình duyệt web.
- Tối ưu hóa: Định dạng này cho phép áp dụng nhiều tối ưu hóa như gấp hằng số, lượng tử hóa và biến đổi đồ thị, giúp nâng cao hiệu quả thực thi và giảm mức sử dụng bộ nhớ.
- Tăng tốc phần cứng: Các model ở định dạng TF GraphDef có thể tận dụng các bộ tăng tốc phần cứng như GPU, TPU và chip AI để cải thiện hiệu năng.
Đọc thêm về các lợi ích trong phần TF GraphDef của tài liệu chúng tôi.
Ultralytics YOLO26 mang lại nhiều ưu điểm so với các model khác như YOLOv5 và YOLOv7. Một số lợi ích chính bao gồm:
- Hiệu năng tiên tiến: YOLO26 cung cấp tốc độ và độ chính xác vượt trội cho phát hiện đối tượng, phân đoạn instance, phân đoạn ngữ nghĩa và phân loại theo thời gian thực.
- Dễ sử dụng: Cung cấp API thân thiện với người dùng cho việc training, validation, prediction và export model, giúp cả người mới bắt đầu lẫn chuyên gia đều có thể tiếp cận.
- Khả năng tương thích rộng: Hỗ trợ nhiều định dạng export, bao gồm ONNX, TensorRT, CoreML và TensorFlow, mang lại các tùy chọn triển khai linh hoạt.
Tìm hiểu thêm trong phần giới thiệu về YOLO26 của chúng tôi.
Sau khi model YOLO26 được export sang định dạng TF GraphDef, bạn có thể triển khai model trên nhiều nền tảng phần cứng chuyên dụng khác nhau. Các tình huống triển khai điển hình bao gồm:
- TensorFlow Serving: Sử dụng TensorFlow Serving để triển khai model có khả năng mở rộng trong môi trường production. TensorFlow Serving hỗ trợ quản lý model và phục vụ model hiệu quả.
- Thiết bị di động: Chuyển đổi các model TF GraphDef sang TensorFlow Lite, được tối ưu hóa cho thiết bị di động và thiết bị nhúng, cho phép suy luận trên thiết bị.
- Trình duyệt web: Triển khai model bằng TensorFlow.js để thực hiện suy luận phía client trong các ứng dụng web.
- Bộ tăng tốc AI: Tận dụng TPU và các chip AI tùy chỉnh để tăng tốc suy luận.
Xem phần tùy chọn triển khai để biết thông tin chi tiết.
Để khắc phục các vấn đề thường gặp khi export model YOLO26, Ultralytics cung cấp các hướng dẫn và tài nguyên toàn diện. Nếu gặp vấn đề trong quá trình cài đặt hoặc export model, hãy tham khảo:
- Hướng dẫn các vấn đề thường gặp: Cung cấp giải pháp cho những vấn đề thường gặp.
- Hướng dẫn cài đặt: Hướng dẫn từng bước để thiết lập các package cần thiết.
Các tài nguyên này sẽ giúp bạn giải quyết hầu hết vấn đề liên quan đến việc export và triển khai model YOLO26.