TensorFlow Lite cho Android

TensorFlow Lite cho phép bạn chạy các mô hình máy học (ML) TensorFlow trong ứng dụng Android của mình. Hệ thống TensorFlow Lite cung cấp các môi trường thực thi dựng 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

Thiết kế mã Tìm hiểu các khái niệm và thiết kế mã để xây dựng ứng dụng Android bằng TensorFlow Lite, hãy tiếp tục đọc .
Bắt đầu nhanh mã Bắt đầu mã hóa ứng dụng Android bằng TensorFlow Lite ngay với Quickstart .
mô hình ML 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 dựng 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 mình 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 xây dựng sẵn và không đề cập đến 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 máy học cho TensorFlow Lite trong phần Mô hình .

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

Mô hình TensorFlow Lite chạy bên trong ứng dụng Android sẽ nhận 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ô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 suy luận , nó sẽ tạo ra kết quả dự đoán dưới dạng các tensor mới và chuyển chúng đến ứng dụng Android để ứng dụng 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.

Luồng 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 các tensor kết quả đầu ra và diễn giải 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 thành phần 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 và 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 phần môi trường thời gian chạythư 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à những lựa chọn ưa thích:

Nói chung, bạn nên sử dụng môi trường thời gian chạy do dịch vụ Google Play cung cấp vì môi trường này 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. Dịch vụ 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 dịch vụ 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 gộp mã bổ sung vào ứng dụng của bạn, cho phép bạn có nhiều quyền kiểm soát hơn đối với thời gian chạy ML trong ứng dụng của mình với chi phí phải tăng kích thước tải xuống của ứng dụng.

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 thư viện phát triển TensorFlow Lite vào môi trường phát triển ứng dụng của mình. Để 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 máy học TensorFlow Lite vào ứng dụng Android của mình:

API Phiên dịch cung cấp các lớp và phương thức để chạy 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 trình thông 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 dịch vụ Google Play . Bạn cũng có thể sử dụng các thư viện độc lập cho Nhiệm vụ TensorFlow Lite hoặc lõi TensorFlow Lite và các thư viện hỗ trợ trong ứng dụng Android của mình. Để biết chi tiết 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 .

Lấy 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 bằng TensorFlow và chuyển đổi nó sang định dạng Lite. Để biết thêm thông tin về cách lấy 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 chuyển vào mô hình ML đều 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 bằng 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, chẳng hạn như dữ liệu hình ảnh, văn bản hoặc âm thanh, thành một tensor có hình dạng bắt buộc 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 để mô hình TensorFlow Lite xử lý.

Chạy suy luận

Xử lý dữ liệu thông qua mô hình để tạo ra kết quả dự đoán được gọi là chạy suy luận . Việc 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 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 máy tính có sẵn như bộ nhớ và CPU hoặc bộ xử lý chuyên dụng được gọi là bộ tăng 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 dụng 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

Các mô hình tạo ra kết quả dự đoán dưới dạng tensor, ứng dụng Android của bạn phải xử lý kết quả này 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, cho đế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 trong khoảng từ 0 đến 1.

Con đường phát triển nâng cao

Khi sử dụng các mô hình TensorFlow Lite phức tạp và tùy chỉnh 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 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 tốt nhất cho các môi trường này là nếu bạn có mô hình máy học sử dụng các hoạt động ML không được môi trường thời gian chạy tiêu chuẩn cho TensorFlow Lite hỗ trợ.

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 mình. Là một tùy chọn nâng cao để chạy mô hình của mình, bạn có thể xây dựng TensorFlow Lite cho Android để bao gồm các toán tử và chức năng khác cần thiết để chạy mô hình máy học TensorFlow của mình. Để biết thêm thông tin, hãy xem Xây dựng TensorFlow Lite cho Android .

API C và C++

TensorFlow Lite cũng cung cấp 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 NDK của Android thì bạn nên cân nhắc sử dụng API này. Bạn cũng có thể cân nhắc sử dụng API này nếu 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, tắt 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ễ dàng 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 bộ dịch vụ đầy đủ để chạy các mô hình học máy 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 thiết bị Android. Nếu bạn dự định xây dựng các mô hình tùy chỉnh, hãy đảm bảo bạn cân nhắc việc áp dụng các 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