TensorFlow Lite dành cho Android

TensorFlow Lite cho phép bạn chạy các mô hình máy học TensorFlow (ML) trong các ứng dụng Android của bạn. Hệ thống TensorFlow Lite cung cấp môi trường thực thi được tạo sẵn và có thể tùy chỉnh để chạy các mô hình trên Android một cách nhanh chóng và hiệu quả, bao gồm các tùy chọn tăng tốc phần cứng.

Lộ trình học tập

Tìm hiểu các khái niệm và thiết kế mã để xây dựng ứng dụng Android với TensorFlow Lite, chỉ cần tiếp tục đọc .
Bắt đầu viết mã một ứng dụng Android với TensorFlow Lite ngay lập tức với Quickstart .
Tìm hiểu về cách chọn và sử dụng mô hình ML với TensorFlow Lite, xem tài liệu về Mô hình .

Mô hình học máy

TensorFlow Lite sử dụng các mô hình TensorFlow được chuyển đổi thành định dạng mô hình học máy nhỏ hơn, di động và hiệu quả hơn. Bạn có thể sử dụng các mô hình được tạo sẵn với TensorFlow Lite trên Android hoặc xây dựng các mô hình TensorFlow của riêng bạn và chuyển đổi chúng sang định dạng TensorFlow Lite.

Trang này thảo luận về việc sử dụng các mô hình học máy đã được tạo sẵn và không bao gồm việc xây dựng, đào tạo, thử nghiệm hoặc chuyển đổi các mô hình. Tìm hiểu thêm về cách chọn, sửa đổi, xây dựng và chuyển đổi mô hình học máy cho TensorFlow Lite trong phần Mô hình .

Chạy các mô hình trên Android

Mô hình TensorFlow Lite chạy bên trong ứng dụng Android lấy dữ liệu, xử lý dữ liệu và tạo dự đoán dựa trên logic của mô hình. Mô hình TensorFlow Lite yêu cầu một môi trường thời gian chạy đặc biệt để thực thi và dữ liệu được truyền vào mô hình phải ở định dạng dữ liệu cụ thể, được gọi là tensor . Khi một mô hình xử lý dữ liệu, được gọi là chạy một suy luận , nó tạo ra các kết quả dự đoán dưới dạng các hàm căng mới và chuyển chúng đến ứng dụng Android để nó có thể thực hiện hành động, chẳng hạn như hiển thị kết quả cho người dùng hoặc thực thi logic nghiệp vụ bổ sung.

Quy trình thực thi chức năng cho các mô hình TensorFlow Lite trong ứng dụng Android

Hình 1. Luồng thực thi chức năng cho các mô hình TensorFlow Lite trong ứng dụng Android.

Ở cấp độ thiết kế chức năng, ứng dụng Android của bạn cần các yếu tố sau để chạy mô hình TensorFlow Lite:

  • Môi trường thời gian chạy TensorFlow Lite để thực thi mô hình
  • Trình xử lý đầu vào mô hình để chuyển đổi dữ liệu thành tensor
  • Trình xử lý đầu ra mô hình để nhận bộ căng kết quả đầu ra và giải thích chúng dưới dạng kết quả dự đoán

Các phần sau đây mô tả cách các thư viện và công cụ TensorFlow Lite cung cấp các yếu tố chức năng này.

Xây dựng ứng dụng với TensorFlow Lite

Phần này mô tả đường dẫn được đề xuất, phổ biến nhất để triển khai TensorFlow Lite trong Ứng dụng Android của bạn. Bạn nên chú ý nhất đến môi trường thời gian chạy và các phần thư viện phát triển . Nếu bạn đã phát triển một mô hình tùy chỉnh, hãy đảm bảo xem lại phần Đường dẫn phát triển nâng cao .

Tùy chọn môi trường thời gian chạy

Có một số cách bạn có thể kích hoạt môi trường thời gian chạy để thực thi các mô hình trong ứng dụng Android của mình. Đây là các tùy chọn ưu tiên:

Nói chung, bạn nên sử dụng môi trường thời gian chạy do các dịch vụ của Google Play cung cấp vì nó tiết kiệm không gian hơn môi trường tiêu chuẩn vì nó tải động, giữ cho kích thước ứng dụng của bạn nhỏ hơn. Các dịch vụ của Google Play cũng tự động sử dụng bản phát hành ổn định, mới nhất của thời gian chạy TensorFlow Lite, cung cấp cho bạn các tính năng bổ sung và cải thiện hiệu suất theo thời gian. Nếu bạn cung cấp ứng dụng của mình trên các thiết bị không bao gồm các dịch vụ của Google Play hoặc bạn cần quản lý chặt chẽ môi trường thời gian chạy ML của mình, thì bạn nên sử dụng thời gian chạy TensorFlow Lite tiêu chuẩn. Tùy chọn này bao gồm mã bổ sung vào ứng dụng của bạn, cho phép bạn kiểm soát nhiều hơn thời gian chạy ML trong ứng dụng của mình với chi phí tăng kích thước tải xuống ứng dụng của bạn.

Bạn truy cập các môi trường thời gian chạy này trong ứng dụng Android của mình bằng cách thêm các thư viện phát triển TensorFlow Lite vào môi trường phát triển ứng dụng của bạn. Để biết thông tin về cách sử dụng môi trường thời gian chạy tiêu chuẩn trong ứng dụng của bạn, hãy xem phần tiếp theo.

API và thư viện phát triển

Có hai API chính mà bạn có thể sử dụng để tích hợp các mô hình học máy TensorFlow Lite vào ứng dụng Android của mình:

API thông dịch viên cung cấp các lớp và phương thức để chạy các suy luận với các mô hình TensorFlow Lite hiện có. API tác vụ TensorFlow Lite bao bọc API phiên dịch và cung cấp giao diện lập trình cấp cao hơn để thực hiện các tác vụ học máy phổ biến về xử lý dữ liệu hình ảnh, âm thanh và văn bản. Bạn nên sử dụng API tác vụ trừ khi bạn thấy nó không hỗ trợ trường hợp sử dụng cụ thể của bạn.

Thư viện

Bạn có thể truy cập API tác vụ hoặc API thông dịch viên bằng cách sử dụng các dịch vụ của Google Play . Bạn cũng có thể sử dụng các thư viện độc lập cho TensorFlow Lite Tasks hoặc lõi TensorFlow Lite và các thư viện hỗ trợ trong ứng dụng Android của bạn. Để biết chi tiết về lập trình về cách sử dụng thư viện TensorFlow Lite và môi trường thời gian chạy, hãy xem Công cụ phát triển dành cho Android .

Nhận các mô hình

Chạy mô hình trong ứng dụng Android yêu cầu mô hình có định dạng TensorFlow Lite. Bạn có thể sử dụng các mô hình dựng sẵn hoặc xây dựng một mô hình với TensorFlow và chuyển đổi nó sang định dạng Lite. Để biết thêm thông tin về cách lấy các mô hình cho ứng dụng Android của bạn, hãy xem phần Mô hình TensorFlow Lite.

Xử lý dữ liệu đầu vào

Bất kỳ dữ liệu nào bạn truyền vào mô hình ML phải là một tensor có cấu trúc dữ liệu cụ thể, thường được gọi là hình dạng của tensor. Để xử lý dữ liệu với một mô hình, mã ứng dụng của bạn phải chuyển đổi dữ liệu từ định dạng gốc của nó, chẳng hạn như dữ liệu hình ảnh, văn bản hoặc âm thanh, thành một tensor theo hình dạng cần thiết cho mô hình của bạn.

Thư viện TensorFlow Lite Task cung cấp logic xử lý dữ liệu để chuyển đổi dữ liệu hình ảnh, văn bản và âm thanh thành các tensor có hình dạng chính xác để được xử lý bởi mô hình TensorFlow Lite.

Chạy suy luận

Xử lý dữ liệu thông qua một mô hình để tạo ra một kết quả dự đoán được gọi là chạy một suy luận . Chạy suy luận trong ứng dụng Android yêu cầu môi trường thời gian chạy TensorFlow Lite, mô hìnhdữ liệu đầu vào .

Tốc độ mà một mô hình có thể tạo ra một suy luận trên một thiết bị cụ thể phụ thuộc vào kích thước của dữ liệu được xử lý, độ phức tạp của mô hình và các tài nguyên tính toán có sẵn như bộ nhớ và CPU, hoặc các bộ xử lý chuyên dụng được gọi là bộ gia tốc . Các mô hình học máy có thể chạy nhanh hơn trên các bộ xử lý chuyên biệt này như bộ xử lý đồ họa (GPU) và bộ xử lý tensor (TPU), sử dụng trình điều khiển phần cứng TensorFlow Lite được gọi là đại biểu . Để biết thêm thông tin về đại biểu và khả năng tăng tốc phần cứng của quá trình xử lý mô hình, hãy xem Tổng quan về tăng tốc phần cứng .

Xử lý kết quả đầu ra

Mô hình tạo ra kết quả dự đoán dưới dạng bộ căng, phải được ứng dụng Android của bạn xử lý bằng cách thực hiện hành động hoặc hiển thị kết quả cho người dùng. Kết quả đầu ra của mô hình có thể đơn giản như một số tương ứng với một kết quả duy nhất (0 = chó, 1 = mèo, 2 = chim) để phân loại hình ảnh, đến các kết quả phức tạp hơn nhiều, chẳng hạn như nhiều hộp giới hạn cho một số đối tượng được phân loại trong một hình ảnh, với xếp hạng độ tin cậy dự đoán từ 0 đến 1.

Các con đường phát triển nâng cao

Khi sử dụng các mô hình TensorFlow Lite tùy chỉnh và phức tạp hơn, bạn có thể cần sử dụng các phương pháp phát triển nâng cao hơn những gì được mô tả ở trên. Các phần sau đây mô tả các kỹ thuật nâng cao để thực thi các mô hình và phát triển chúng cho TensorFlow Lite trong ứng dụng Android.

Môi trường thời gian chạy nâng cao

Ngoài môi trường thời gian chạy tiêu chuẩn và môi trường thời gian chạy dịch vụ Google Play cho TensorFlow Lite, còn có các môi trường thời gian chạy bổ sung mà bạn có thể sử dụng với ứng dụng Android của mình. Khả năng sử dụng nhiều nhất cho các môi trường này là nếu bạn có mô hình học máy sử dụng các hoạt động ML không được hỗ trợ bởi môi trường thời gian chạy tiêu chuẩn cho TensorFlow Lite.

  • Thời gian chạy linh hoạt cho TensorFlow Lite
  • Thời gian chạy TensorFlow Lite được xây dựng tùy chỉnh

Thời gian chạy TensorFlow Lite Flex cho phép bạn bao gồm các toán tử cụ thể cần thiết cho mô hình của bạn. Là một tùy chọn nâng cao để chạy mô hình của bạn, bạn có thể xây dựng TensorFlow Lite cho Android để bao gồm các toán tử và các chức năng khác cần thiết để chạy mô hình học máy TensorFlow của bạn. Để biết thêm thông tin, hãy xem Build TensorFlow Lite cho Android .

API C và C ++

TensorFlow Lite cũng cung cấp một API để chạy các mô hình sử dụng C và C ++. Nếu ứng dụng của bạn sử dụng Android NDK , bạn nên cân nhắc sử dụng API này. Bạn cũng có thể muốn xem xét sử dụng API này nếu bạn muốn có thể chia sẻ mã giữa nhiều nền tảng. Để biết thêm thông tin về tùy chọn phát triển này, hãy xem trang Công cụ phát triển .

Thực thi mô hình dựa trên máy chủ

Nói chung, bạn nên chạy các mô hình trong ứng dụng của mình trên thiết bị Android để tận dụng độ trễ thấp hơn và cải thiện quyền riêng tư dữ liệu cho người dùng của bạn. Tuy nhiên, có những trường hợp chạy mô hình trên máy chủ đám mây, ngoài thiết bị, là giải pháp tốt hơn. Ví dụ: nếu bạn có một mô hình lớn không dễ nén xuống kích thước phù hợp với thiết bị Android của người dùng hoặc có thể được thực thi với hiệu suất hợp lý trên các thiết bị đó. Cách tiếp cận này cũng có thể là giải pháp ưa thích của bạn nếu hiệu suất nhất quán của mô hình trên nhiều loại thiết bị là ưu tiên hàng đầu.

Google Cloud cung cấp một bộ đầy đủ các dịch vụ để chạy các mô hình máy học TensorFlow. Để biết thêm thông tin, hãy xem trang sản phẩm máy học và AI của Google Cloud.

Phát triển và tối ưu hóa mô hình tùy chỉnh

Các lộ trình phát triển nâng cao hơn có thể bao gồm phát triển các mô hình học máy tùy chỉnh và tối ưu hóa các mô hình đó để sử dụng trên các thiết bị Android. Nếu bạn định xây dựng các mô hình tùy chỉnh, hãy đảm bảo rằng bạn cân nhắc áp dụng kỹ thuật lượng tử hóa cho các mô hình để giảm chi phí bộ nhớ và xử lý. Để biết thêm thông tin về cách xây dựng các mô hình hiệu suất cao để sử dụng với TensorFlow Lite, hãy xem Các phương pháp hay nhất về hiệu suất trong phần Mô hình.

Bước tiếp theo