Omówienie konwersji modelu

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.

Przepływ pracy związany z konwersją TFLite

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:

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:

  1. Flagi zgodności pozwalają określić, czy konwersja ma zezwalać na operatory niestandardowe.
  2. 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.
  3. 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.

Dalsze kroki