Przegląd konwersji modelu

Modele uczenia maszynowego (ML), których używasz z TensorFlow Lite, zostały pierwotnie zbudowane i przeszkolone przy użyciu podstawowych bibliotek i narzędzi TensorFlow. Po zbudowaniu modelu z rdzeniem TensorFlow można go przekonwertować na mniejszy, bardziej wydajny format modelu ML, zwany modelem TensorFlow Lite. Ta sekcja zawiera wskazówki dotyczące konwersji modeli TensorFlow do formatu modelu TensorFlow Lite.

Przebieg konwersji

Konwersja modeli TensorFlow do formatu TensorFlow Lite może zająć kilka ścieżek w zależności od zawartości modelu ML. W pierwszym kroku tego procesu powinieneś ocenić swój model, aby określić, czy można go bezpośrednio przekonwertować. Ta ocena określa, czy zawartość modelu jest obsługiwana przez standardowe środowiska wykonawcze TensorFlow Lite na podstawie używanych przez niego operacji TensorFlow. Jeśli Twój model korzysta z operacji poza obsługiwanym zestawem, masz możliwość refaktoryzacji modelu lub skorzystania z zaawansowanych technik konwersji.

Poniższy diagram przedstawia etapy na wysokim poziomie konwersji modelu.

Przepływ pracy konwersji TFlite

Rysunek 1. Przebieg konwersji TensorFlow Lite.

Poniższe sekcje opisują proces oceny i konwersji modeli do użytku z TensorFlow Lite.

Formaty modeli wejściowych

Możesz użyć konwertera z następującymi formatami modeli wejściowych:

Możesz zapisać zarówno Keras, jak i modele funkcji konkretnej 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. Pamiętaj, że ten interfejs API może ulec zmianie w trybie eksperymentalnym.

Ocena konwersji

Ocena modelu to ważny krok 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 jest dobrze dopasowany do użytku na urządzeniach mobilnych i brzegowych pod względem rozmiaru danych wykorzystywanych przez model, wymagań dotyczących przetwarzania sprzętu oraz ogólnego rozmiaru i złożoności modelu.

W wielu modelach konwerter powinien działać 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. Dodatkowo niektóre operacje obsługiwane przez TensorFlow Lite mają ograniczone wymagania dotyczące użytkowania ze względu na wydajność. Zapoznaj się z przewodnikiem zgodności operatora, aby określić, czy Twój model wymaga refaktoryzacji w celu konwersji.

Konwersja modelu

Konwerter TensorFlow Lite przyjmuje 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 pozwalają określić typ optymalizacji do zastosowania podczas konwersji. Najczęściej stosowaną techniką optymalizacji jest kwantyzacja po szkoleniu .
  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.

Zazwyczaj przekonwertujesz swój model na standardowe środowisko wykonawcze TensorFlow Lite lub środowisko uruchomieniowe usług Google Play na 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 uruchomieniowego 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 swój model lub używając zaawansowanych opcji konwersji, które umożliwiają utworzenie zmodyfikowanego modelu formatu TensorFlow Lite i niestandardowego środowiska wykonawczego dla tego modelu.

Następne kroki