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.
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:
- SavedModel ( zalecane ): Model TensorFlow zapisany jako zestaw plików na dysku.
- Model Keras : model utworzony przy użyciu interfejsu API Keras wysokiego poziomu.
- Format Keras H5 : lekka alternatywa dla formatu SavedModel obsługiwanego przez Keras API.
- Modele zbudowane z konkretnych funkcji : Model stworzony przy użyciu interfejsu API TensorFlow niskiego poziomu.
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:
- Flagi zgodności pozwalają określić, czy konwersja powinna zezwalać na operatory niestandardowe.
- Flagi optymalizacji pozwalają określić typ optymalizacji do zastosowania podczas konwersji. Najczęściej stosowaną techniką optymalizacji jest kwantyzacja po szkoleniu .
- 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.
- Zobacz Omówienie zgodności modeli , aby uzyskać więcej informacji na temat kwestii zgodności modeli TensorFlow i TensorFlow Lite.
- Tematy w sekcji Przegląd zgodności modeli obejmują zaawansowane techniki refaktoryzacji modelu, takie jak przewodnik wyboru operatorów .
- Pełna lista operacji i ograniczeń znajduje się na stronie TensorFlow Lite Ops .
Następne kroki
- Zobacz przewodnik po konwersji modeli TF, aby szybko rozpocząć konwersję modelu.
- Zapoznaj się z omówieniem optymalizacji , aby uzyskać wskazówki, jak zoptymalizować przekonwertowany model za pomocą technik, takich jak analiza ilościowa po szkoleniu .
- Zobacz omówienie Dodawanie metadanych , aby dowiedzieć się, jak dodawać metadane do modeli. Metadane udostępniają inne zastosowania opis modelu, a także informacje, które mogą być wykorzystane przez generatory kodu.