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 strona zawiera wskazówki dotyczące konwersji modeli TensorFlow do formatu modelu TensorFlow Lite.

Przebieg konwersji

Konwersja modeli TensorFlow do formatu TensorFlow Lite może przebiegać kilkoma ścieżkami, 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 model wykorzystuje operacje spoza obsługiwanego zestawu, masz możliwość refaktoryzacji modelu lub użycia 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:

Jeśli masz model Jax, możesz użyć interfejsu API TFLiteConverter.experimental_from_jax , aby przekonwertować go na format TensorFlow Lite. Zwróć uwagę, ż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 dobrze nadaje się do użytku na urządzeniach mobilnych i brzegowych pod względem rozmiaru danych, z których korzysta 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. Ponadto 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.

Możesz przekonwertować swój model za pomocą interfejsu API języka Python lub narzędzia wiersza poleceń. Zobacz przewodnik po konwerterze TensorFlow Lite , 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. Zobacz sekcję zaawansowanego środowiska uruchomieniowego w omówieniu systemu Android, aby uzyskać więcej wskazówek.

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

  • Zapoznaj się z omówieniem optymalizacji , aby uzyskać wskazówki dotyczące optymalizacji przekonwertowanego modelu przy użyciu technik, takich jak analiza ilościowa po szkoleniu .
  • Zobacz przewodnik Model Analyzer, aby użyć interfejsu API do analizy modelu pod kątem problemów, takich jak zgodność delegatów.
  • Zobacz omówienie Dodawanie metadanych , aby dowiedzieć się, jak dodawać metadane do modeli. Metadane zawierają opis Twojego modelu do innych zastosowań, a także informacje, które mogą być wykorzystane przez generatory kodu.