Tổng quan về việc chuyển đổi mô hình

Các mô hình học máy (ML) mà bạn sử dụng với TensorFlow Lite ban đầu được xây dựng và huấn luyện bằng các công cụ và thư viện cốt lõi của TensorFlow. Sau khi tạo xong một mô hình có lõi TensorFlow, bạn có thể chuyển đổi mô hình đó thành một định dạng mô hình ML nhỏ hơn, hiệu quả hơn được gọi là mô hình TensorFlow Lite. Phần này hướng dẫn cách chuyển đổi các mô hình TensorFlow sang định dạng mô hình TensorFlow Lite.

Quy trình chuyển đổi

Việc chuyển đổi các mô hình TensorFlow sang định dạng TensorFlow Lite có thể thực hiện một vài lộ trình tuỳ thuộc vào nội dung của mô hình ML. Trong bước đầu tiên của quá trình đó, bạn nên đánh giá mô hình để xác định xem mô hình đó có thể chuyển đổi trực tiếp hay không. Quá trình đánh giá này xác định xem nội dung của mô hình có được môi trường thời gian chạy TensorFlow Lite tiêu chuẩn hỗ trợ hay không dựa trên các thao tác của TensorFlow mà nó sử dụng. Nếu mô hình của bạn sử dụng các thao tác bên ngoài nhóm được hỗ trợ, thì bạn có thể tái cấu trúc mô hình hoặc sử dụng các kỹ thuật chuyển đổi nâng cao.

Sơ đồ dưới đây thể hiện các bước cấp cao trong việc chuyển đổi mô hình.

Quy trình chuyển đổi TFLite

Hình 1. Quy trình chuyển đổi của TensorFlow Lite.

Các phần sau đây trình bày quy trình đánh giá và chuyển đổi mô hình để sử dụng với TensorFlow Lite.

Định dạng của mô hình đầu vào

Bạn có thể sử dụng trình chuyển đổi với các định dạng mô hình đầu vào sau:

Bạn có thể lưu cả Keras và mô hình hàm cụ thể dưới dạngSavedModel, đồng thời chuyển đổi bằng cách sử dụng đường dẫn được đề xuất.

Nếu có mô hình Jax, bạn có thể sử dụng API TFLiteConverter.experimental_from_jax để chuyển đổi mô hình đó sang định dạng TensorFlow Lite. Xin lưu ý rằng API này có thể thay đổi khi ở chế độ thử nghiệm.

Đánh giá lượt chuyển đổi

Việc đánh giá mô hình của bạn là một bước quan trọng trước khi cố gắng chuyển đổi mô hình đó. Khi đánh giá, bạn nên xác định xem nội dung trong mô hình của mình có tương thích với định dạng TensorFlow Lite hay không. Bạn cũng nên xác định xem mô hình của mình có phù hợp để sử dụng trên thiết bị di động và thiết bị biên về mặt kích thước dữ liệu mà mô hình sử dụng, các yêu cầu xử lý phần cứng cũng như kích thước và độ phức tạp tổng thể của mô hình hay không.

Đối với nhiều mô hình, bộ chuyển đổi sẽ hoạt động tốt. Tuy nhiên, thư viện toán tử tích hợp của TensorFlow Lite hỗ trợ một tập hợp con các toán tử cốt lõi của TensorFlow, có nghĩa là một số mô hình có thể cần thêm các bước trước khi chuyển đổi sang TensorFlow Lite. Ngoài ra, một số thao tác được TensorFlow Lite hỗ trợ đã hạn chế các yêu cầu sử dụng vì lý do hiệu suất. Hãy xem hướng dẫn về khả năng tương thích của toán tử để xác định xem mô hình của bạn có cần được tái cấu trúc để chuyển đổi hay không.

Chuyển đổi mô hình

Bộ chuyển đổi TensorFlow Lite sử dụng mô hình TensorFlow và tạo mô hình TensorFlow Lite (một định dạng FlatBuffer được tối ưu hóa được xác định bằng đuôi tệp .tflite). Bạn có thể tải SaveModel hoặc trực tiếp chuyển đổi mô hình mà bạn tạo trong mã.

Bộ chuyển đổi sẽ nhận 3 cờ chính (hoặc tuỳ chọn) tuỳ chỉnh lượt chuyển đổi cho mô hình của bạn:

  1. Cờ tương thích cho phép bạn chỉ định xem lượt chuyển đổi có cho phép các toán tử tuỳ chỉnh hay không.
  2. Cờ tối ưu hoá cho phép bạn chỉ định loại tối ưu hoá để áp dụng trong quá trình chuyển đổi. Kỹ thuật tối ưu hoá thường dùng nhất là số lượng sau khi đào tạo.
  3. Cờ siêu dữ liệu cho phép bạn thêm siêu dữ liệu vào mô hình đã chuyển đổi, giúp bạn dễ dàng tạo mã bao bọc cụ thể cho nền tảng khi triển khai mô hình trên thiết bị.

Bạn có thể chuyển đổi mô hình bằng cách sử dụng API Python hoặc công cụ Dòng lệnh. Xem hướng dẫn Chuyển đổi mô hình TF để biết hướng dẫn từng bước về cách chạy bộ chuyển đổi trên mô hình của bạn.

Thông thường, bạn cần chuyển đổi mô hình của mình cho môi trường thời gian chạy tiêu chuẩn của TensorFlow Lite hoặc môi trường thời gian chạy của Dịch vụ Google Play cho TensorFlow Lite (Beta). Một số trường hợp sử dụng nâng cao yêu cầu tuỳ chỉnh môi trường thời gian chạy của mô hình. Việc này đòi hỏi phải thực hiện thêm một số bước trong quy trình chuyển đổi. Hãy xem phần môi trường thời gian chạy nâng cao trong phần tổng quan về Android để biết thêm hướng dẫn.

Chuyển đổi nâng cao

Nếu bạn gặp lỗi trong khi chạy trình chuyển đổi trên mô hình, rất có thể bạn gặp phải vấn đề về khả năng tương thích của toán tử. Không phải thao tác nào của TensorFlow cũng được TensorFlow Lite hỗ trợ. Bạn có thể giải quyết những vấn đề này bằng cách tái cấu trúc mô hình hoặc sử dụng các tuỳ chọn chuyển đổi nâng cao cho phép tạo mô hình định dạng TensorFlow Lite đã sửa đổi và môi trường thời gian chạy tuỳ chỉnh cho mô hình đó.

  • Vui lòng xem bài viết Tổng quan về khả năng tương thích của mô hình để biết thêm thông tin về các điểm cần cân nhắc liên quan đến khả năng tương thích với mô hình TensorFlow và TensorFlow Lite.
  • Các chủ đề trong phần Tổng quan về khả năng tương thích với mô hình đề cập đến các kỹ thuật nâng cao để tái cấu trúc mô hình, chẳng hạn như hướng dẫn Chọn toán tử.
  • Để biết danh sách đầy đủ các thao tác và giới hạn, hãy truy cập vào trang TensorFlow Lite Ops.

Các bước tiếp theo