Modele systemów uczących się używane z LiteRT to modele które zostały stworzone i wytrenowane z wykorzystaniem podstawowych bibliotek i narzędzi TensorFlow. Po utworzeniu modelu z rdzeniem TensorFlow, możesz przekonwertować go na mniejszy, wydajny format modeli ML nazywany modelem LiteRT. Ta sekcja zawiera wskazówki dotyczące konwersji z modeli TensorFlow do formatu modelu LiteRT.
Proces konwersji
Konwersja modeli TensorFlow na format LiteRT może potrwać kilka ścieżek w zależności od zawartości modelu ML. Pierwszym krokiem w tym procesie musisz ocenić model, aby określić, czy można go bezpośrednio przekonwertować. Ta ocena określa, czy treść modelu jest obsługiwana przez standardowe środowiska wykonawcze LiteRT oparte na operacjach TensorFlow i używanych danych. Jeśli model używa operacji spoza obsługiwanego zbioru, refaktoryzacji modelu lub zastosowania zaawansowanych technik konwersji.
Poniższy diagram przedstawia ogólne kroki konwersji modelu.
Rysunek 1. Proces konwersji LiteRT.
W poniższych sekcjach przedstawiamy proces oceny i konwersji modeli do użycia z LiteRT.
Formaty modelu wejściowego
Konwertera możesz używać w tych formatach modeli wejściowych:
- SavedModel (zalecane): model TensorFlow zapisany jako zbiór plików na dysku.
- Model Kesa: Model utworzony przy użyciu interfejsu wysokiego poziomu Keras API.
- Format Keras H5: Lekka alternatywa dla formatu SavedModel obsługiwanego przez interfejs Keras API.
- Modele utworzone na podstawie konkretnych funkcji: Model utworzony przy użyciu niskopoziomowego interfejsu TensorFlow API.
Zarówno Keras, jak i konkretne modele funkcji możesz zapisać jako SavedModel i wykonać konwersję za pomocą zalecanej ścieżki.
Jeśli masz model Jax, możesz użyć parametru TFLiteConverter.experimental_from_jax
za pomocą interfejsu API, aby przekonwertować go na format LiteRT. Pamiętaj, że ten interfejs API podlega
aby zmienić w trybie eksperymentalnym.
Ocena konwersji
Ocena modelu to ważny krok przed próbą jego przekonwertowania. Przy ocenie chcesz określić, czy zawartość modelu jest zgodna z Format LiteRT. Sprawdź też, czy dany model do wykorzystania na urządzeniach mobilnych i urządzeniach brzegowych pod względem rozmiaru danych wykorzystywanych przez model, wymagań sprzętowych dotyczących procesora, a także ogólny rozmiar i jego złożoność.
W przypadku wielu modeli konwerter powinien działać od razu. Pamiętaj jednak: Wbudowana biblioteka operatorów LiteRT obsługuje podzbiór Podstawowe operatory TensorFlow, co oznacza, że niektóre modele mogą wymagać dodatkowych kroków przed konwersją na LiteRT. Ponadto niektóre operacje obsługiwane przez LiteRT mają wymagania dotyczące ograniczonego użycia ze względu na wydajność. Zobacz przewodnik po zgodności operatorów aby ustalić, czy model wymaga refaktoryzacji na potrzeby konwersji.
Konwersja modelu
Konwerter LiteRT pobiera model TensorFlow i generuje
Model LiteRT (zoptymalizowany
FlatBuffer wykrywany przez
.tflite
). Możesz wczytać
SavedModel lub bezpośrednio przekonwertować model utworzony w kodzie.
Wykonujący konwersje mają 3 główne flagi (lub opcje), które dostosowują konwersję dla swojego modelu:
- Flagi zgodności umożliwiają określanie czy konwersja powinna zezwalać na operatory niestandardowe.
- Flagi optymalizacji umożliwiają: określ typ optymalizacji do zastosowania podczas konwersji. Najczęściej wykorzystywana metoda optymalizacji kwantyfikację po szkoleniu.
- Flagi metadanych umożliwiają dodawanie metadanych do przekonwertowanego modelu co ułatwia tworzenie kodu opakowań na poziomie platformy podczas wdrażania modeli urządzeń.
Możesz przekonwertować model za pomocą interfejsu Python API lub użyj narzędzia Wiersz poleceń. Zobacz Przewodnik po konwertowaniu modelu TF krok po kroku jak uruchomić konwerter w swoim modelu.
Zwykle trzeba przekonwertować model na standardową wersję LiteRT środowisko wykonawczego lub Środowisko wykonawcze Usług Google Play dla LiteRT (beta). Niektóre zaawansowane przypadki użycia wymagają dostosowania środowiska wykonawczego modelu, co wymaga dodatkowych czynności w proces konwersji. Zobacz sekcję zaawansowane środowisko wykonawcze w Androidzie. .
Konwersja zaawansowana
Jeśli wystąpią błędy podczas uruchamiania konwertera w modelu . Nie wszystkie operacje TensorFlow są wspierane przez TensorFlow Uproszczona. Aby obejść te problemy, możesz dokonać refaktoryzacji modelu lub użyć zaawansowane opcje konwersji, które umożliwiają tworzenie zmodyfikowanych wersji LiteRT. oraz niestandardowe środowisko wykonawcze dla tego modelu.
- Zobacz Omówienie zgodności modeli. więcej informacji o zgodności modeli TensorFlow i LiteRT zalety i wady dostępnych metodologii.
- Tematy w sekcji Omówienie zgodności modelu obejmują zaawansowane techniki refaktoryzacji modelu, na przykład operatorów wyboru; Google.
- Pełną listę operacji i ograniczeń znajdziesz w artykule Strona operacji LiteRT.
Dalsze kroki
- Zapoznaj się z przewodnikiem po konwertowaniu modeli TF, aby szybko rozpocząć. konwersji modelu.
- Przeczytaj omówienie optymalizacji: znajdziesz wskazówki, jak zoptymalizować przekonwertowany model przy użyciu technik takich jak kwantyfikację po szkoleniu.
- Zapoznaj się z artykułem Omówienie dodawania metadanych, aby dowiedzieć się, jak dodać metadane do swoje modele. Metadane zawierają też opis modelu w inny sposób które mogą być wykorzystywane przez generatory kodu.