Khả năng tương thích với nhà điều hành TensorFlow Lite và TensorFlow

TensorFlow Lite hỗ trợ một số hoạt động TensorFlow được sử dụng trong các mô hình suy luận phổ biến. Khi chúng được xử lý bởi TensorFlow Lite Optimizing Converter, các hoạt động đó có thể được giải quyết hoặc hợp nhất, trước khi các hoạt động được hỗ trợ được ánh xạ tới các đối tác TensorFlow Lite của chúng.

Vì thư viện toán tử nội trang TensorFlow Lite chỉ hỗ trợ một số giới hạn toán tử TensorFlow, không phải mọi mô hình đều có thể chuyển đổi. Ngay cả đối với các hoạt động được hỗ trợ, các kiểu sử dụng rất cụ thể đôi khi được mong đợi, vì lý do hiệu suất. Chúng tôi hy vọng sẽ mở rộng tập hợp các hoạt động được hỗ trợ trong các bản phát hành TensorFlow Lite trong tương lai.

Cách tốt nhất để hiểu cách xây dựng mô hình TensorFlow có thể được sử dụng với TensorFlow Lite là xem xét cẩn thận cách các hoạt động được chuyển đổi và tối ưu hóa, cùng với những hạn chế do quy trình này áp đặt.

Các loại được hỗ trợ

Hầu hết các hoạt động của TensorFlow Lite đều nhắm mục tiêu đến cả suy luận dấu phẩy động ( float32 ) và lượng tử hóa ( uint8 , int8 ), nhưng nhiều hoạt động chưa áp dụng cho các loại khác như tf.float16 và chuỗi.

Ngoài việc sử dụng phiên bản khác nhau của các hoạt động, sự khác biệt khác giữa mô hình dấu phẩy động và mô hình lượng tử hóa là cách chúng được chuyển đổi. Chuyển đổi lượng tử hóa yêu cầu thông tin dải động cho tensor. Điều này yêu cầu "lượng tử hóa giả" trong quá trình đào tạo mô hình, nhận thông tin phạm vi thông qua tập dữ liệu hiệu chuẩn hoặc thực hiện ước tính phạm vi "nhanh chóng". Xem lượng tử hóa .

Các hoạt động được hỗ trợ và các hạn chế

TensorFlow Lite hỗ trợ một tập hợp con các hoạt động TensorFlow với một số hạn chế. Để biết danh sách đầy đủ các thao tác và giới hạn, hãy xem trang TF Lite Ops .

Chuyển đổi thẳng, liên tục gấp và nung chảy

Một số hoạt động TensorFlow có thể được xử lý bởi TensorFlow Lite mặc dù chúng không có chức năng tương đương trực tiếp. Đây là trường hợp của các phép toán có thể được loại bỏ đơn giản khỏi biểu đồ ( tf.identity ), thay thế bằng tensor ( tf.placeholder ) hoặc hợp nhất thành các phép toán phức tạp hơn ( tf.nn.bias_add ). Thậm chí một số hoạt động được hỗ trợ đôi khi có thể bị xóa thông qua một trong các quy trình này.

Dưới đây là danh sách không đầy đủ các hoạt động TensorFlow thường bị xóa khỏi biểu đồ:

Hoạt động thử nghiệm

Các hoạt động TensorFlow Lite sau hiện có, nhưng chưa sẵn sàng cho các mô hình tùy chỉnh:

  • CALL
  • CONCAT_EMBEDDINGS
  • CUSTOM
  • EMBEDDING_LOOKUP_SPARSE
  • HASHTABLE_LOOKUP
  • LSH_PROJECTION
  • SKIP_GRAM
  • SVDF