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.
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:
- SavedModel ( zalecane ): model TensorFlow zapisany jako zestaw plików na dysku.
- Model Keras : model utworzony przy użyciu wysokiego poziomu interfejsu API Keras.
- Format Keras H5 : lekka alternatywa dla formatu SavedModel obsługiwanego przez Keras API.
- Modele zbudowane na podstawie konkretnych funkcji : Model utworzony przy użyciu niskopoziomowego interfejsu API TensorFlow.
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 do formatu 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:
- Flagi zgodności pozwalają określić, czy konwersja powinna zezwalać na operatory niestandardowe.
- Flagi optymalizacji umożliwiają określenie typu optymalizacji stosowanej podczas konwersji. Najczęściej stosowaną techniką optymalizacji jest kwantyzacja potreningowa .
- 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.
- Aby uzyskać więcej informacji na temat zagadnień dotyczących zgodności modeli TensorFlow i TensorFlow Lite, zobacz Omówienie zgodności modelu.
- Tematy w sekcji Omówienie zgodności modelu obejmują zaawansowane techniki refaktoryzacji modelu, takie jak przewodnik Wybierz 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 dotyczące optymalizacji przekonwertowanego modelu przy użyciu technik takich jak kwantyzacja po treningu .
- Zobacz omówienie Dodawanie metadanych, aby dowiedzieć się, jak dodać metadane do swoich modeli. Metadane zapewniają inne zastosowania opisu modelu, a także informacje, które mogą zostać wykorzystane przez generatory kodu.