TensorFlow Lite là một bộ công cụ hỗ trợ công nghệ học máy trên thiết bị bằng cách giúp nhà phát triển chạy mô hình của họ trên thiết bị di động, thiết bị nhúng và thiết bị cạnh.
Tính năng chính
- Tối ưu hoá cho công nghệ học máy trên thiết bị, bằng cách giải quyết 5 hạn chế chính: độ trễ (không có thời gian truyền đến máy chủ), quyền riêng tư (không có dữ liệu cá nhân rời khỏi thiết bị), khả năng kết nối (không cần kết nối Internet), kích thước (mô hình và kích thước tệp nhị phân giảm) cũng như mức tiêu thụ điện năng (suy luận hiệu quả và thiếu kết nối mạng).
- Hỗ trợ nhiều nền tảng, bao gồm các thiết bị Android và iOS, Linux được nhúng và bộ vi điều khiển.
- Hỗ trợ đa dạng ngôn ngữ, bao gồm Java, Swift, Objective-C, C++ và Python.
- Hiệu suất cao, với tính năng tăng tốc phần cứng và tối ưu hoá mô hình.
Quy trình phát triển
Hướng dẫn sau đây sẽ trình bày từng bước của quy trình làm việc và cung cấp các đường liên kết đến những hướng dẫn tiếp theo:
1. Tạo mô hình TensorFlow Lite
Mô hình TensorFlow Lite được biểu thị ở một định dạng di động hiệu quả đặc biệt có tên là FlatBuffers (được xác định bằng đuôi tệp .tflite). Điều này mang lại một số lợi thế so với định dạng mô hình vùng đệm giao thức của TensorFlow, chẳng hạn như giảm kích thước (kích thước mã nhỏ) và suy luận nhanh hơn (truy cập trực tiếp dữ liệu mà không cần thực hiện thêm bước phân tích cú pháp/giải nén). Điều này cho phép TensorFlow Lite thực thi hiệu quả trên các thiết bị có tài nguyên điện toán và bộ nhớ hạn chế.
Mô hình TensorFlow Lite có thể tuỳ ý bao gồm siêu dữ liệu có nội dung mô tả mô hình mà con người có thể đọc được và dữ liệu mà máy có thể đọc để tự động tạo các quy trình trước và sau khi xử lý trong quá trình suy luận trên thiết bị. Tham khảo phần Thêm siêu dữ liệu để biết thêm chi tiết.
Bạn có thể tạo mô hình TensorFlow Lite theo các cách sau:
Sử dụng mô hình TensorFlow Lite hiện có: Tham khảo Ví dụ về TensorFlow Lite để chọn một mô hình hiện có. Mô hình có thể chứa hoặc không chứa siêu dữ liệu.
Chuyển đổi mô hình TensorFlow thành mô hình TensorFlow Lite: Sử dụng Trình chuyển đổi TensorFlow Lite để chuyển đổi mô hình TensorFlow thành mô hình TensorFlow Lite. Trong quá trình chuyển đổi, bạn có thể áp dụng các biện pháp tối ưu hoá, chẳng hạn như lượng tử, để giảm kích thước và độ trễ của mô hình mà không làm giảm độ chính xác hoặc giảm độ chính xác. Theo mặc định, mọi mô hình đều không chứa siêu dữ liệu.
2. Chạy suy luận
Dự đoán là quá trình thực thi mô hình TensorFlow Lite trên thiết bị để đưa ra dự đoán dựa trên dữ liệu đầu vào. Bạn có thể chạy suy luận theo những cách sau dựa trên loại mô hình:
Mô hình không có siêu dữ liệu: Sử dụng API Trình phiên dịch TensorFlow Lite. Được hỗ trợ trên nhiều nền tảng và ngôn ngữ, chẳng hạn như Java, Swift, C++, Objective-C và Python.
Mô hình có siêu dữ liệu: Bạn có thể xây dựng quy trình dự đoán tuỳ chỉnh bằng Thư viện hỗ trợ TensorFlow Lite. Trên thiết bị Android, người dùng có thể tự động tạo trình bao bọc mã bằng Liên kết mô hình học máy của Android Studio hoặc Trình tạo mã TensorFlow Lite. Chỉ được hỗ trợ trên Java (Android) trong khi Swift (iOS) và C++ đang trong quá trình phát triển.
Trên thiết bị Android và iOS, bạn có thể cải thiện hiệu suất bằng cách sử dụng tính năng tăng tốc phần cứng. Trên một trong hai nền tảng, bạn có thể dùng Trình uỷ quyền GPU, còn trên iOS, bạn có thể dùng Người được uỷ quyền học máy cốt lõi. Để hỗ trợ thêm các trình tăng tốc phần cứng mới, bạn có thể xác định thực thể đại diện của riêng mình.
Bắt đầu
Bạn có thể tham khảo các hướng dẫn sau dựa trên thiết bị mục tiêu:
Android và iOS: Khám phá hướng dẫn bắt đầu nhanh cho Android và hướng dẫn bắt đầu nhanh cho iOS.
Linux nhúng: Khám phá phần khởi động nhanh Python dành cho các thiết bị được nhúng như Rassberry Pi và Thiết bị tản nhiệt có Edge TPU hoặc hướng dẫn tạo bản dựng C++ cho ARM.
Vi điều khiển: Khám phá thư viện TensorFlow Lite cho Vi điều khiển dành cho các bộ vi điều khiển và DSP chỉ chứa vài kilobyte bộ nhớ.
Hạn chế về kỹ thuật
- Tất cả mô hình TensorFlow không thể chuyển đổi thành mô hình TensorFlow Lite, đề cập đến Khả năng tương thích của toán tử.