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 kodować aplikację na Androida za pomocą TensorFlow Lite od razu dzięki Quickstart .
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, co jest znane jako uruchamianie wnioskowania , 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:

Ogólnie rzecz biorąc, należy używać środowiska wykonawczego udostępnianego przez usługi Google Play, ponieważ zajmuje ono mniej miejsca niż środowisko standardowe, ponieważ ładuje się dynamicznie, dzięki czemu rozmiar aplikacji jest mniejszy. Usługi Google Play również automatycznie korzystają z najnowszej, stabilnej wersji środowiska wykonawczego TensorFlow Lite, zapewniając dodatkowe funkcje i lepszą wydajność w miarę upływu czasu. Jeśli oferujesz swoją aplikację na urządzeniach, które nie zawierają usług Google Play lub musisz ściśle zarządzać środowiskiem wykonawczym ML, powinieneś użyć standardowego środowiska wykonawczego TensorFlow Lite. Ta opcja dołącza do aplikacji dodatkowy kod, co pozwala na większą kontrolę nad środowiskiem uruchomieniowym ML w aplikacji kosztem zwiększenia rozmiaru pobierania aplikacji.

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ć standardowych środowisk wykonawczych w aplikacji, zobacz następną sekcję.

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 interfejsów API zadań lub interfejsu Interpreter API możesz uzyskać za pomocą usług Google Play . Możesz także użyć samodzielnych bibliotek dla TensorFlow Lite Tasks lub rdzenia TensorFlow Lite i bibliotek pomocniczych w aplikacji na Androida. 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 ich formatu natywnego, takiego jak dane obrazu, tekstu lub dźwięku, na 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 wnioskowanie

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 procesory graficzne (GPU) i procesory tensorowe (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 prognozy od 0 do 1.

Zaawansowane ścieżki rozwoju

Korzystając 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 Kompilacja TensorFlow Lite dla systemu Android .

API C i C++

TensorFlow Lite zapewnia również API do uruchamiania modeli przy użyciu 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ć tworzenie 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