TensorFlow Lite to zestaw narzędzi, które umożliwiają działanie systemów uczących się na urządzeniu, ułatwiając programistom uruchamianie ich modeli na urządzeniach mobilnych, osadzonych i na brzegu sieci.
Najważniejsze funkcje
- Zoptymalizowana pod kątem systemów uczących się na urządzeniu, która wyeliminuje 5 głównych ograniczeń: opóźnienie (brak transferu danych w obie strony), prywatność (dane osobowe nie opuszczają urządzenia), łączność (połączenie z internetem nie jest wymagane), rozmiar (mniejszy model i rozmiar binarny) oraz zużycie energii (efektywne wnioskowanie i brak połączeń sieciowych).
- Obsługa wielu platform, w tym urządzeń z Androidem i iOS, umieszczonym systemem Linux i mikrokontrolerów.
- Obsługa różnych języków – takich jak Java, Swift, Objective-C, C++ i Python.
- Wysoka wydajność, akceleracja sprzętowa i optymalizacja modelu.
Proces programowania
Ten przewodnik zawiera omówienie każdego etapu przepływu pracy oraz linki do dalszych instrukcji:
1. Generowanie modelu TensorFlow Lite
Model TensorFlow Lite jest reprezentowany w specjalnym, wydajnym, przenośnym formacie o nazwie FlatBuffers (identyfikowanym przez rozszerzenie pliku .tflite). Ma to kilka zalet w porównaniu z formatem modelu bufora protokołu TensorFlow, na przykład mniejszy rozmiar (mały ślad kodu) i szybsze wnioskowanie (dostęp bezpośrednio do danych bez dodatkowego etapu analizowania czy rozpakowywania), dzięki czemu TensorFlow Lite może wydajnie wykonywać zadania na urządzeniach z ograniczonymi zasobami obliczeniowymi i pamięci.
Model TensorFlow Lite może opcjonalnie zawierać metadane zawierające zrozumiały dla człowieka opis modelu i dane czytelne dla komputera, co pozwala na automatyczne generowanie potoków przed i po przetwarzaniu podczas wnioskowania na urządzeniu. Więcej informacji znajdziesz w artykule Dodawanie metadanych.
Model TensorFlow Lite możesz wygenerować na te sposoby:
Użyj istniejącego modelu TensorFlow Lite: zapoznaj się z przykładami TensorFlow Lite, aby wybrać istniejący model. Modele mogą, ale nie muszą, zawierać metadane.
Konwertowanie modelu TensorFlow na TensorFlow Lite: za pomocą TensorFlow Lite Converter do skonwertowania modelu TensorFlow na TensorFlow Lite. Podczas konwersji możesz zastosować optymalizacje, np. kwantyzację, aby zmniejszyć rozmiar modelu i opóźnienia przy minimalnej lub zerowej utracie dokładności. Domyślnie wszystkie modele nie zawierają metadanych.
2. Uruchom wnioskowanie
Wnioskowanie oznacza proces wykonywania na urządzeniu modelu TensorFlow Lite w celu generowania prognoz na podstawie danych wejściowych. W zależności od typu modelu wnioskowanie można przeprowadzać w następujący sposób:
Modele bez metadanych: użyj interfejsu API TensorFlow Lite Interpreter. Obsługiwana na wielu platformach i w wielu językach, takich jak Java, Swift, C++, Objective-C i Python.
Modele z metadanymi: możesz tworzyć niestandardowe potoki wnioskowania za pomocą biblioteki pomocy TensorFlow Lite. Na urządzeniach z Androidem użytkownicy mogą automatycznie generować kody kodu za pomocą powiązania modeli ML w Android Studio lub generatora kodu TensorFlow Lite. Funkcja jest obsługiwana tylko w Javie (Android) i w trakcie opracowywania kodu Swift (iOS) i C++.
Na urządzeniach z Androidem i iOS możesz poprawić wydajność, korzystając z akceleracji sprzętowej. Na obu platformach możesz użyć delegata do procesora GPU, a na iOS – delegata do podstawowych systemów uczących się. Aby dodać obsługę nowych akceleratorów sprzętowych, możesz zdefiniować własnego przedstawiciela.
Rozpocznij
W zależności od urządzenia docelowego możesz skorzystać z tych przewodników:
Android i iOS: zapoznaj się z krótkim wprowadzeniem na Androida i krótkim wprowadzeniem do iOS.
Wbudowany system Linux: zapoznaj się z krótkim wprowadzeniem do języka Python dotyczącymi urządzeń osadzonych, takich jak Raspberry Pi i Coral urządzenia z Edge TPU oraz instrukcje kompilacji C++ dla ARM.
Mikrokontrolery: zapoznaj się z biblioteką TensorFlow Lite dla mikrokontrolerów, która zawiera mikrokontrolery i platformy DSP, które mają zaledwie kilka kilobajtów pamięci.
Ograniczenia techniczne
- Żadnych modeli TensorFlow nie można skonwertować na modele TensorFlow Lite (patrz Zgodność operatorów).