Modele systemów uczących się (ML), których używasz w TensorFlow Lite, są pierwotnie tworzone i trenowane przy użyciu podstawowych bibliotek i narzędzi TensorFlow. Gdy utworzysz model z rdzeniem TensorFlow, możesz go przekonwertować na mniejszy i bardziej wydajny format modelu ML nazywany TensorFlow Lite. W tej sekcji znajdziesz wskazówki dotyczące konwertowania modeli TensorFlow na format TensorFlow Lite.
Przepływ pracy związany z konwersjami
Konwersja modeli TensorFlow na format TensorFlow Lite może przebiegać w kilku ścieżkach zależnie od zawartości Twojego modelu ML. Na pierwszym etapie oceń 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 wykorzystuje operacje spoza obsługiwanego zestawu, możesz refaktoryzować model lub użyć zaawansowanych technik konwersji.
Poniższy schemat przedstawia ogólne etapy konwertowania modelu.
Rysunek 1. Przepływ pracy konwersji TensorFlow Lite.
Poniżej opisujemy proces oceny i konwertowania modeli na potrzeby TensorFlow Lite.
Formaty modelu wejściowego
Konwertera możesz używać z tymi formatami modelu wejściowego:
- SavedModel (zalecany): model TensorFlow zapisany jako zbiór 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 interfejs API Keras.
- Modele utworzone z konkretnych funkcji: model utworzony przy użyciu niskiego poziomu interfejsu TensorFlow API.
Możesz zapisać zarówno modele Keras, jak i modele funkcji konkretnych funkcji jako obiekt SavedModel i przekonwertować je 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 w trybie eksperymentalnym
interfejs API może ulec zmianie.
Ocena konwersji
Ocena modelu to ważny krok przed przystąpieniem do konwersji. Podczas obliczania warto sprawdzić, czy zawartość modelu jest zgodna z formatem TensorFlow Lite. Musisz też ustalić, czy Twój model nadaje się do użytku na urządzeniach mobilnych i urządzeniach brzegowych, pod względem rozmiaru używanych przez niego danych, wymagań sprzętowych związanych z przetwarzaniem oraz ogólnego rozmiaru i złożoności modelu.
W przypadku wielu modeli konwerter powinien działać od razu. Wbudowana biblioteka operatorów TensorFlow Lite obsługuje jednak podzbiór podstawowych operatorów TensorFlow, co oznacza, że niektóre modele mogą wymagać dodatkowych kroków przed konwersją na TensorFlow Lite. Dodatkowo niektóre operacje obsługiwane przez TensorFlow Lite mają ograniczone wymagania dotyczące wykorzystania ze względu na wydajność. Zapoznaj się z przewodnikiem po zgodności operatorów, aby określić, czy Twój model wymaga refaktoryzacji na potrzeby konwersji.
Konwersja modelu
Konwerter TensorFlow Lite wykorzystuje model TensorFlow i generuje model TensorFlow Lite (zoptymalizowany format FlatBuffer identyfikowany przez rozszerzenie pliku .tflite
). Można wczytać model 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 ma zezwalać na operatory niestandardowe.
- Flagi optymalizacji pozwalają określić typ optymalizacji, który ma być stosowany podczas konwersji. Najczęściej stosowaną metodą optymalizacji jest kwanityzowanie po zakończeniu trenowania.
- Flagi metadanych umożliwiają dodawanie metadanych do przekonwertowanego modelu, co ułatwia tworzenie kodu otoki specyficznego dla platformy podczas wdrażania modeli na urządzeniach.
Model możesz przekonwertować za pomocą interfejsu Python API lub narzędzia wiersza poleceń. Szczegółowe instrukcje uruchamiania konwertera w modelu znajdziesz w przewodniku Konwertowanie modelu TF.
Zwykle konwertujesz swój model do standardowego środowiska wykonawczego TensorFlow Lite lub do środowiska wykonawczego Usług Google Play dla TensorFlow Lite (beta). Niektóre zaawansowane zastosowania wymagają dostosowania środowiska wykonawczego modelu, które wymaga dodatkowych kroków w procesie konwersji. Więcej wskazówek znajdziesz w sekcji o zaawansowanym środowisku wykonawczym w omówieniu Androida.
Konwersja zaawansowana
Jeśli podczas uruchamiania konwertera w modelu napotkasz błędy, najprawdopodobniej masz problem ze zgodnością operatora. TensorFlow Lite nie obsługuje wszystkich operacji TensorFlow. Możesz obejść te problemy, refaktoryzując model lub korzystając z zaawansowanych opcji konwersji, które umożliwiają utworzenie zmodyfikowanego modelu formatu TensorFlow Lite i niestandardowego środowiska wykonawczego dla tego modelu.
- Więcej informacji o kompatybilności modeli TensorFlow i TensorFlow Lite znajdziesz w omówieniu zgodności modeli.
- Tematy w sekcji Omówienie zgodności modelu obejmują zaawansowane techniki refaktoryzacji modelu, takie jak przewodnik Wybieranie operatorów.
- Pełną listę operacji i ograniczeń znajdziesz na stronie operacji TensorFlow Lite.
Dalsze kroki
- Zapoznaj się z przewodnikiem Konwertowanie modeli TF, aby szybko rozpocząć konwertowanie modelu.
- W omówieniu optymalizacji znajdziesz wskazówki dotyczące optymalizowania przekonwertowanego modelu przy użyciu takich technik jak kwinicja po zakończeniu trenowania.
- W artykule Omówienie dodawania metadanych znajdziesz informacje o dodawaniu metadanych do modeli. Metadane zawierają inne sposoby wykorzystania opisu modelu, a także informacje, które mogą zostać wykorzystane przez generatory kodu.