TensorFlow Lite na Androida

TensorFlow Lite umożliwia uruchamianie modeli uczenia maszynowego (ML) TensorFlow w aplikacjach na Androida. System TensorFlow Lite zapewnia wstępnie zbudowane i konfigurowalne środowiska wykonawcze do szybkiego i wydajnego uruchamiania modeli w systemie Android, w tym opcje akceleracji sprzętowej.

Mapa drogowa nauki

Poznaj koncepcje i projektowanie kodu do tworzenia aplikacji na Androida za pomocą TensorFlow Lite, po prostu czytaj dalej .
Zacznij od razu kodować aplikację na Androida za pomocą TensorFlow Lite, korzystając z funkcji Szybki start .
Dowiedz się więcej o wyborze i korzystaniu z modeli ML z TensorFlow Lite, zapoznaj się z dokumentacją dotyczącą modeli .

Modele uczenia maszynowego

TensorFlow Lite wykorzystuje modele TensorFlow, które są konwertowane na mniejszy, przenośny, bardziej wydajny format modelu uczenia maszynowego. Możesz używać gotowych modeli z TensorFlow Lite na Androidzie lub budować własne modele TensorFlow i konwertować je do formatu TensorFlow Lite.

Na tej stronie omówiono korzystanie z już zbudowanych modeli uczenia maszynowego i nie obejmuje tworzenia, uczenia, testowania ani konwertowania modeli. Dowiedz się więcej o wybieraniu, modyfikowaniu, budowaniu i konwertowaniu modeli uczenia maszynowego dla TensorFlow Lite w sekcji Modele .

Uruchom modele na Androidzie

Model TensorFlow Lite działający w aplikacji dla systemu Android pobiera dane, przetwarza je i generuje prognozę na podstawie logiki modelu. Model TensorFlow Lite wymaga specjalnego środowiska wykonawczego w celu wykonania, a dane przekazywane do modelu muszą mieć określony format danych, zwany tensor . Gdy model przetwarza dane, czyli uruchamia wnioskowanie , generuje wyniki prognozy jako nowe tensory i przekazuje je do aplikacji na Androida, aby mogła podjąć działania, takie jak pokazanie wyniku użytkownikowi lub wykonanie dodatkowej logiki biznesowej.

Funkcjonalny przepływ wykonania dla modeli TensorFlow Lite w aplikacjach na Androida

Rysunek 1. Funkcjonalny przepływ wykonania dla modeli TensorFlow Lite w aplikacjach na Androida.

Na poziomie projektu funkcjonalnego aplikacja na Androida wymaga następujących elementów, aby uruchomić model TensorFlow Lite:

  • Środowisko wykonawcze TensorFlow Lite do wykonywania modelu
  • Model obsługi danych wejściowych do przekształcania danych w tensory
  • Model obsługi danych wyjściowych do odbierania tensorów wyników wyjściowych i interpretowania ich jako wyników predykcji

Poniższe sekcje opisują, w jaki sposób biblioteki i narzędzia TensorFlow Lite zapewniają te elementy funkcjonalne.

Twórz aplikacje za pomocą TensorFlow Lite

W tej sekcji opisano zalecaną, najczęstszą ścieżkę wdrażania TensorFlow Lite w aplikacji na Androida. Powinieneś zwrócić największą uwagę na sekcje środowiska uruchomieniowego i bibliotek programistycznych . Jeśli opracowałeś niestandardowy model, zapoznaj się z sekcją Zaawansowane ścieżki rozwoju .

Opcje środowiska uruchomieniowego

Istnieje kilka sposobów włączenia środowiska wykonawczego do wykonywania modeli w aplikacji na Androida. Oto preferowane opcje:

  • Standardowe środowisko wykonawcze TensorFlow Lite (zalecane)
  • Środowisko uruchomieniowe usług Google Play dla TensorFlow Lite (Beta)

Ogólnie rzecz biorąc, powinieneś używać standardowego środowiska uruchomieniowego TensorFlow Lite, ponieważ jest to najbardziej wszechstronne środowisko do uruchamiania modeli na Androidzie. Środowisko wykonawcze udostępniane przez usługi Google Play jest wygodniejsze i zajmuje mniej miejsca niż środowisko standardowe, ponieważ jest ładowane z zasobów Google Play i nie jest dołączane do aplikacji. Niektóre zaawansowane przypadki użycia wymagają dostosowania modelowego środowiska uruchomieniowego, które opisano w sekcji Zaawansowane środowiska uruchomieniowe.

Dostęp do tych środowisk wykonawczych uzyskuje się w aplikacji na Androida, dodając biblioteki programistyczne TensorFlow Lite do środowiska programistycznego aplikacji. Aby uzyskać informacje o tym, jak używać standardowego środowiska uruchomieniowego w aplikacji, zobacz następną sekcję. Aby uzyskać informacje o innych środowiskach wykonawczych, zobacz Zaawansowane środowiska wykonawcze .

Programistyczne API i biblioteki

Istnieją dwa główne interfejsy API, których możesz użyć do zintegrowania modeli uczenia maszynowego TensorFlow Lite z aplikacją na Androida:

Interfejs API interpretera udostępnia klasy i metody do uruchamiania wnioskowania z istniejącymi modelami TensorFlow Lite. Interfejs API zadań TensorFlow Lite obejmuje interfejs API interpretera i zapewnia interfejs programowania wyższego poziomu do wykonywania typowych zadań uczenia maszynowego w zakresie obsługi danych wizualnych, dźwiękowych i tekstowych. Powinieneś używać interfejsu API zadań, chyba że okaże się, że nie obsługuje on konkretnego przypadku użycia.

Biblioteki

Dostęp do interfejsu API zadań można uzyskać, dołączając bibliotekę zadań TensorFlow Lite do aplikacji na Androida. Biblioteka zadań zawiera również klasy i metody Interpreter API, jeśli ich potrzebujesz.

Jeśli chcesz po prostu użyć interfejsu API Interpreter, możesz dołączyć bibliotekę TensorFlow Lite . Alternatywnie możesz dołączyć bibliotekę usług Google Play dla TensorFlow Lite i uzyskać dostęp do interfejsu Interpreter API za pośrednictwem usług Play, bez dołączania oddzielnej biblioteki do swojej aplikacji.

Dostępna jest również biblioteka TensorFlow Lite Support, która zapewnia dodatkowe funkcje zarządzania danymi modeli, metadanymi modelu i wynikami wnioskowania modelu.

Aby uzyskać szczegółowe informacje na temat programowania korzystania z bibliotek TensorFlow Lite i środowisk wykonawczych, zobacz Narzędzia programistyczne dla systemu Android .

Zdobądź modele

Uruchomienie modelu w aplikacji na Androida wymaga modelu w formacie TensorFlow Lite. Możesz użyć gotowych modeli lub zbudować jeden za pomocą TensorFlow i przekonwertować go do formatu Lite. Więcej informacji na temat uzyskiwania modeli do aplikacji na Androida można znaleźć w sekcji Modele TensorFlow Lite.

Obsługa danych wejściowych

Wszelkie dane, które przekazujesz do modelu ML, muszą być tensorem o określonej strukturze danych, często nazywanej kształtem tensora. Aby przetwarzać dane za pomocą modelu, kod aplikacji musi przekształcić dane z formatu natywnego, takiego jak dane obrazu, tekstu lub dźwięku, w tensor o kształcie wymaganym dla modelu.

Biblioteka zadań TensorFlow Lite zapewnia logikę obsługi danych do przekształcania danych wizualnych, tekstowych i dźwiękowych w tensory o odpowiednim kształcie, które mają być przetwarzane przez model TensorFlow Lite.

Uruchom wnioski

Przetwarzanie danych przez model w celu wygenerowania wyniku prognozy jest znane jako uruchamianie wnioskowania . Uruchomienie wnioskowania w aplikacji na Androida wymaga środowiska uruchomieniowego TensorFlow Lite, modelu i danych wejściowych .

Szybkość, z jaką model może generować wnioskowanie na konkretnym urządzeniu, zależy od rozmiaru przetwarzanych danych, złożoności modelu oraz dostępnych zasobów obliczeniowych, takich jak pamięć i procesor lub specjalizowane procesory zwane akceleratorami . Modele uczenia maszynowego mogą działać szybciej na tych wyspecjalizowanych procesorach, takich jak jednostki przetwarzania grafiki (GPU) i jednostki przetwarzania tensora (TPU), przy użyciu sterowników sprzętowych TensorFlow Lite zwanych delegatami . Aby uzyskać więcej informacji na temat delegatów i przyspieszania sprzętowego przetwarzania modelu, zobacz Omówienie przyspieszania sprzętowego .

Obsługa wyników wyjściowych

Modele generują wyniki predykcji jako tensory, które aplikacja na Androida musi obsłużyć, wykonując działanie lub wyświetlając wynik użytkownikowi. Wyniki modelu mogą być tak proste, jak liczba odpowiadająca pojedynczemu wynikowi (0 = pies, 1 = kot, 2 = ptak) dla klasyfikacji obrazu, lub znacznie bardziej złożone wyniki, takie jak wiele ramek ograniczających dla kilku sklasyfikowanych obiektów w obraz z oceną ufności prognoz od 0 do 1.

Zaawansowane ścieżki rozwoju

W przypadku korzystania z bardziej wyrafinowanych i dostosowanych modeli TensorFlow Lite może być konieczne zastosowanie bardziej zaawansowanych podejść programistycznych niż opisane powyżej. Poniższe sekcje opisują zaawansowane techniki wykonywania modeli i rozwijania ich dla TensorFlow Lite w aplikacjach na Androida.

Zaawansowane środowiska uruchomieniowe

Oprócz standardowych środowisk wykonawczych i środowisk wykonawczych usług Google Play dla TensorFlow Lite istnieją dodatkowe środowiska wykonawcze, których można używać z aplikacją na Androida. Najbardziej prawdopodobnym zastosowaniem w tych środowiskach jest model uczenia maszynowego, który używa operacji ML, które nie są obsługiwane przez standardowe środowisko uruchomieniowe dla TensorFlow Lite.

Środowisko wykonawcze TensorFlow Lite Flex umożliwia uwzględnienie określonych operatorów wymaganych dla danego modelu. Jako zaawansowaną opcję uruchamiania modelu możesz zbudować TensorFlow Lite dla systemu Android, aby uwzględnić operatorów i inne funkcje wymagane do uruchomienia modelu uczenia maszynowego TensorFlow. Aby uzyskać więcej informacji, zobacz Tworzenie TensorFlow Lite dla systemu Android .

API C i C++

TensorFlow Lite zapewnia również interfejs API do uruchamiania modeli w językach C i C++. Jeśli Twoja aplikacja korzysta z Android NDK , powinieneś rozważyć użycie tego interfejsu API. Możesz również rozważyć użycie tego interfejsu API, jeśli chcesz mieć możliwość udostępniania kodu między wieloma platformami. Aby uzyskać więcej informacji na temat tej opcji programistycznej, zobacz stronę Narzędzia programistyczne .

Wykonanie modelu na serwerze

Ogólnie rzecz biorąc, powinieneś uruchamiać modele w swojej aplikacji na urządzeniu z Androidem, aby skorzystać z niższych opóźnień i lepszej prywatności danych dla użytkowników. Zdarzają się jednak przypadki, w których lepszym rozwiązaniem jest uruchomienie modelu na serwerze w chmurze, poza urządzeniem. Na przykład, jeśli masz duży model, którego nie można łatwo skompresować do rozmiaru, który pasuje do urządzeń z Androidem użytkowników lub można go wykonać z rozsądną wydajnością na tych urządzeniach. Takie podejście może być również preferowanym rozwiązaniem, jeśli priorytetem jest stała wydajność modelu na szerokiej gamie urządzeń.

Google Cloud oferuje pełny zestaw usług do uruchamiania modeli uczenia maszynowego TensorFlow. Aby uzyskać więcej informacji, zobacz stronę produktów AI i uczenia maszynowego Google Cloud.

Tworzenie i optymalizacja modeli niestandardowych

Bardziej zaawansowane ścieżki rozwoju prawdopodobnie będą obejmować opracowywanie niestandardowych modeli uczenia maszynowego i optymalizację tych modeli do użytku na urządzeniach z systemem Android. Jeśli planujesz budować modele niestandardowe, pamiętaj, aby rozważyć zastosowanie technik kwantyzacji do modeli w celu zmniejszenia kosztów pamięci i przetwarzania. Aby uzyskać więcej informacji na temat tworzenia modeli o wysokiej wydajności do użytku z TensorFlow Lite, zobacz najlepsze praktyki dotyczące wydajności w sekcji Modele.

Następne kroki