Câu hỏi thường gặp

Nếu bạn không tìm thấy câu trả lời cho câu hỏi của mình tại đây, vui lòng xem qua tài liệu chi tiết của chúng tôi về chủ đề này hoặc gửi vấn đề về GitHub .

Chuyển đổi mô hình

Những định dạng nào được hỗ trợ để chuyển đổi từ TensorFlow sang TensorFlow Lite?

Các định dạng được hỗ trợ được liệt kê ở đây

Tại sao một số thao tác không được triển khai trong TensorFlow Lite?

Để giữ cho TFLite nhẹ, chỉ một số toán tử TF nhất định (được liệt kê trong danh sách cho phép ) mới được hỗ trợ trong TFLite.

Tại sao mô hình của tôi không chuyển đổi được?

Vì số lượng hoạt động của TensorFlow Lite nhỏ hơn của TensorFlow nên một số mô hình có thể không chuyển đổi được. Một số lỗi phổ biến được liệt kê ở đây .

Đối với các sự cố chuyển đổi không liên quan đến các hoạt động bị thiếu hoặc các hoạt động kiểm soát luồng, hãy tìm kiếm các sự cố GitHub của chúng tôi hoặc gửi một vấn đề mới .

Làm cách nào để kiểm tra xem mô hình TensorFlow Lite có hoạt động giống với mô hình TensorFlow ban đầu không?

Cách tốt nhất để kiểm tra là so sánh kết quả đầu ra của mô hình TensorFlow và TensorFlow Lite cho cùng một đầu vào (dữ liệu thử nghiệm hoặc đầu vào ngẫu nhiên) như được hiển thị ở đây .

Làm cách nào để xác định đầu vào/đầu ra cho bộ đệm giao thức GraphDef?

Cách dễ nhất để kiểm tra biểu đồ từ tệp .pb là sử dụng Netron , một trình xem nguồn mở dành cho các mô hình học máy.

Nếu Netron không thể mở biểu đồ, bạn có thể thử công cụ summary_graph .

Nếu công cụ summary_graph gây ra lỗi, bạn có thể trực quan hóa GraphDef bằng TensorBoard và tìm kiếm đầu vào và đầu ra trong biểu đồ. Để trực quan hóa tệp .pb , hãy sử dụng tập lệnh import_pb_to_tensorboard.py như bên dưới:

python import_pb_to_tensorboard.py --model_dir <model path> --log_dir <log dir path>

Làm cách nào để kiểm tra tệp .tflite ?

Netron là cách dễ nhất để hình dung mô hình TensorFlow Lite.

Nếu Netron không thể mở mô hình TensorFlow Lite của bạn, bạn có thể thử tập lệnh visual.py trong kho lưu trữ của chúng tôi.

Nếu bạn đang sử dụng TF 2.5 hoặc phiên bản mới hơn

python -m tensorflow.lite.tools.visualize model.tflite visualized_model.html

Nếu không, bạn có thể chạy tập lệnh này với Bazel

bazel run //tensorflow/lite/tools:visualize model.tflite visualized_model.html

Tối ưu hóa

Làm cách nào để giảm kích thước của mô hình TensorFlow Lite đã chuyển đổi của tôi?

Lượng tử hóa sau đào tạo có thể được sử dụng trong quá trình chuyển đổi sang TensorFlow Lite để giảm kích thước của mô hình. Lượng tử hóa sau đào tạo lượng tử hóa các trọng số với độ chính xác 8 bit từ dấu phẩy động và khử lượng tử chúng trong thời gian chạy để thực hiện tính toán dấu phẩy động. Tuy nhiên, lưu ý rằng điều này có thể có một số ý nghĩa chính xác.

Nếu đào tạo lại mô hình là một tùy chọn, hãy xem xét đào tạo nhận biết lượng tử hóa . Tuy nhiên, hãy lưu ý rằng đào tạo nhận thức lượng tử hóa chỉ có sẵn cho một tập hợp con kiến ​​trúc mạng nơ-ron tích chập.

Để hiểu sâu hơn về các phương pháp tối ưu hóa khác nhau, hãy xem Tối ưu hóa mô hình .

Làm cách nào để tối ưu hóa hiệu suất TensorFlow Lite cho tác vụ machine learning của tôi?

Quy trình cấp cao để tối ưu hóa hiệu suất TensorFlow Lite trông giống như thế này:

  • Hãy chắc chắn rằng bạn có mô hình phù hợp cho nhiệm vụ. Để phân loại hình ảnh, hãy xem TensorFlow Hub .
  • Tinh chỉnh số lượng chủ đề. Nhiều toán tử TensorFlow Lite hỗ trợ hạt nhân đa luồng. Bạn có thể sử dụng SetNumThreads() trong API C++ để thực hiện việc này. Tuy nhiên, việc tăng các luồng dẫn đến sự thay đổi hiệu suất tùy thuộc vào môi trường.
  • Sử dụng bộ tăng tốc phần cứng. TensorFlow Lite hỗ trợ tăng tốc mô hình cho phần cứng cụ thể bằng cách sử dụng đại biểu. Xem hướng dẫn về Đại biểu của chúng tôi để biết thông tin về những chương trình tăng tốc nào được hỗ trợ và cách sử dụng chúng với mô hình trên thiết bị của bạn.
  • (Nâng cao) Mô hình hồ sơ. Công cụ đo điểm chuẩn Tensorflow Lite có trình lược tả tích hợp có thể hiển thị số liệu thống kê cho mỗi người vận hành. Nếu bạn biết cách có thể tối ưu hóa hiệu suất của một toán tử cho nền tảng cụ thể của mình, thì bạn có thể triển khai toán tử tùy chỉnh .

Để thảo luận sâu hơn về cách tối ưu hóa hiệu suất, hãy xem Thực tiễn tốt nhất .