Omówienie konwersji modelu

Modele uczenia maszynowego (ML), których używasz w TensorFlow Lite, są oryginalnie budowane i szkolone przy użyciu podstawowych bibliotek i narzędzi TensorFlow. Po zbudowaniu modelu przy użyciu rdzenia TensorFlow można go przekonwertować na mniejszy, bardziej wydajny format modelu ML zwany modelem TensorFlow Lite. W tej sekcji znajdują się wskazówki dotyczące konwertowania modeli TensorFlow do formatu modelu TensorFlow Lite.

Proces konwersji

Konwertowanie modeli TensorFlow na format TensorFlow Lite może zająć kilka ścieżek w zależności od zawartości modelu ML. Pierwszym krokiem tego procesu jest ocena modelu w celu ustalenia, czy można go bezpośrednio przekonwertować. Ta ocena określa, czy zawartość modelu jest obsługiwana przez standardowe środowiska wykonawcze TensorFlow Lite w oparciu o używane przez niego operacje TensorFlow. Jeśli Twój model korzysta z operacji spoza obsługiwanego zestawu, masz możliwość refaktoryzacji modelu lub zastosowania zaawansowanych technik konwersji.

Poniższy diagram przedstawia główne etapy konwersji modelu.

Przebieg konwersji TFLite

Rysunek 1. Przebieg konwersji TensorFlow Lite.

W poniższych sekcjach opisano proces oceniania i konwertowania modeli do użytku z TensorFlow Lite.

Formaty modeli wejściowych

Konwertera można używać z następującymi formatami modeli wejściowych:

Możesz zapisać zarówno Keras, jak i modele funkcji konkretnych jako SavedModel i przekonwertować przy użyciu zalecanej ścieżki.

Jeśli masz model Jax, możesz użyć interfejsu API TFLiteConverter.experimental_from_jax , aby przekonwertować go na format TensorFlow Lite. Należy pamiętać, że ten interfejs API może ulec zmianie w trybie eksperymentalnym.

Ocena konwersji

Ocena modelu jest ważnym krokiem przed próbą jego konwersji. Podczas oceny chcesz określić, czy zawartość Twojego modelu jest zgodna z formatem TensorFlow Lite. Należy również określić, czy model nadaje się do użytku na urządzeniach mobilnych i brzegowych pod względem rozmiaru danych używanych przez model, wymagań dotyczących przetwarzania sprzętowego oraz ogólnego rozmiaru i złożoności modelu.

W przypadku wielu modeli konwerter powinien działać od razu po wyjęciu z pudełka. Jednak wbudowana biblioteka operatorów TensorFlow Lite obsługuje podzbiór operatorów podstawowych TensorFlow, co oznacza, że ​​niektóre modele mogą wymagać dodatkowych kroków przed konwersją do TensorFlow Lite. Ponadto niektóre operacje obsługiwane przez TensorFlow Lite mają ograniczone wymagania dotyczące użytkowania ze względu na wydajność. Zobacz przewodnik dotyczący zgodności operatorów , aby określić, czy model wymaga refaktoryzacji w celu konwersji.

Konwersja modelu

Konwerter TensorFlow Lite pobiera model TensorFlow i generuje model TensorFlow Lite (zoptymalizowany format FlatBuffer identyfikowany przez rozszerzenie pliku .tflite ). Możesz załadować SavedModel lub bezpośrednio przekonwertować model utworzony w kodzie.

Konwerter przyjmuje 3 główne flagi (lub opcje), które dostosowują konwersję do Twojego modelu:

  1. Flagi zgodności pozwalają określić, czy konwersja powinna zezwalać na operatory niestandardowe.
  2. Flagi optymalizacji umożliwiają określenie typu optymalizacji stosowanej podczas konwersji. Najczęściej stosowaną techniką optymalizacji jest kwantyzacja potreningowa .
  3. Flagi metadanych umożliwiają dodawanie metadanych do przekonwertowanego modelu, co ułatwia tworzenie kodu opakowania specyficznego dla platformy podczas wdrażania modeli na urządzeniach.

Możesz przekonwertować swój model za pomocą interfejsu API języka Python lub narzędzia wiersza poleceń . Zobacz przewodnik po modelu Convert TF, aby uzyskać instrukcje krok po kroku dotyczące uruchamiania konwertera w Twoim modelu.

Zwykle konwertujesz swój model na standardowe środowisko wykonawcze TensorFlow Lite lub środowisko wykonawcze usług Google Play dla TensorFlow Lite (Beta). Niektóre zaawansowane przypadki użycia wymagają dostosowania środowiska wykonawczego modelu, co wymaga dodatkowych kroków w procesie konwersji. Aby uzyskać więcej wskazówek, zobacz sekcję zaawansowanego środowiska wykonawczego w omówieniu systemu Android.

Zaawansowana konwersja

Jeśli napotkasz błędy podczas uruchamiania konwertera w swoim modelu, najprawdopodobniej masz problem ze zgodnością operatora. Nie wszystkie operacje TensorFlow są obsługiwane przez TensorFlow Lite. Możesz obejść te problemy, refaktoryzując model lub korzystając z zaawansowanych opcji konwersji, które umożliwiają utworzenie zmodyfikowanego modelu w formacie TensorFlow Lite i niestandardowego środowiska wykonawczego dla tego modelu.

Następne kroki