TensorFlow Lite to zestaw narzędzi, które umożliwiają uczenie maszynowe na urządzeniu, pomagając programistom uruchamiać ich modele na urządzeniach mobilnych, wbudowanych i brzegowych.
Kluczowe cechy
- Zoptymalizowany pod kątem uczenia maszynowego na urządzeniu , rozwiązując 5 kluczowych ograniczeń: opóźnienie (nie ma możliwości podróży w obie strony na serwer), prywatność (żadne dane osobowe nie opuszczają urządzenia), łączność (łączność internetowa nie jest wymagana), rozmiar (model zredukowany i rozmiar binarny) i pobór mocy (efektywne wnioskowanie i brak połączeń sieciowych).
- Obsługa wielu platform , obejmująca urządzenia z systemem Android i iOS , wbudowany Linux i mikrokontrolery .
- Obsługa różnych języków , w tym Java, Swift, Objective-C, C++ i Python.
- Wysoka wydajność dzięki akceleracji sprzętowej i optymalizacji modelu .
- Kompleksowe przykłady dla typowych zadań uczenia maszynowego, takich jak klasyfikacja obrazów, wykrywanie obiektów, szacowanie pozycji, odpowiadanie na pytania, klasyfikacja tekstu itp. na wielu platformach.
Przepływ pracy w programowaniu
Poniższy przewodnik przedstawia każdy etap przepływu pracy i zawiera łącza do dalszych instrukcji:
1. Wygeneruj model TensorFlow Lite
Model TensorFlow Lite jest reprezentowany w specjalnym, wydajnym formacie przenośnym znanym jako FlatBuffers (identyfikowany przez rozszerzenie pliku .tflite ). Zapewnia to kilka zalet w porównaniu z formatem modelu bufora protokołu TensorFlow, takich jak zmniejszony rozmiar (mały ślad kodu) i szybsze wnioskowanie (dostęp do danych jest bezpośrednio dostępny bez dodatkowego etapu analizowania/rozpakowywania), co umożliwia wydajne działanie TensorFlow Lite na urządzeniach z ograniczonymi zasobami obliczeniowymi i pamięciowymi .
Model TensorFlow Lite może opcjonalnie zawierać metadane , które zawierają czytelny dla człowieka opis modelu i dane do odczytu maszynowego do automatycznego generowania potoków przetwarzania wstępnego i końcowego podczas wnioskowania na urządzeniu. Więcej informacji można znaleźć w sekcji Dodawanie metadanych .
Możesz wygenerować model TensorFlow Lite w następujący sposób:
Użyj istniejącego modelu TensorFlow Lite: Zapoznaj się z przykładami TensorFlow Lite , aby wybrać istniejący model. Modele mogą zawierać metadane lub nie.
Utwórz model TensorFlow Lite: Użyj narzędzia TensorFlow Lite Model Maker , aby utworzyć model z własnym niestandardowym zestawem danych. Domyślnie wszystkie modele zawierają metadane.
Konwertuj model TensorFlow na model TensorFlow Lite: Użyj konwertera TensorFlow Lite , aby przekonwertować model TensorFlow na model TensorFlow Lite. Podczas konwersji można zastosować optymalizacje , takie jak kwantyzacja , aby zmniejszyć rozmiar modelu i opóźnienie przy minimalnej lub zerowej utracie dokładności. Domyślnie wszystkie modele nie zawierają metadanych.
2. Uruchom wnioskowanie
Wnioskowanie odnosi się do procesu wykonywania modelu TensorFlow Lite na urządzeniu w celu dokonywania prognoz na podstawie danych wejściowych. Wnioskowanie można uruchomić na następujące sposoby w zależności od typu modelu:
Modele bez metadanych : użyj interfejsu API interpretera TensorFlow Lite . Obsługiwane na wielu platformach i językach, takich jak Java, Swift, C++, Objective-C i Python.
Modele z metadanymi : możesz wykorzystać gotowe interfejsy API za pomocą biblioteki zadań TensorFlow Lite lub zbudować niestandardowe potoki wnioskowania za pomocą biblioteki obsługi TensorFlow Lite . Na urządzeniach z Androidem użytkownicy mogą automatycznie generować opakowania kodu za pomocą powiązania modelu Android Studio ML lub generatora kodu TensorFlow Lite . Obsługiwane tylko w Javie (Android), podczas gdy trwają prace nad Swift (iOS) i C++.
Na urządzeniach z Androidem i iOS możesz poprawić wydajność, używając akceleracji sprzętowej. Na obu platformach można użyć delegata GPU , w systemie Android można użyć delegata NNAPI (w przypadku nowszych urządzeń) lub delegata sześciokątnego (na starszych urządzeniach), a w systemie iOS można użyć delegata Core ML . Aby dodać obsługę nowych akceleratorów sprzętowych, możesz zdefiniować własnego delegata .
Zaczynaj
Możesz zapoznać się z następującymi przewodnikami opartymi na urządzeniu docelowym:
Android i iOS: zapoznaj się z krótkim wprowadzeniem na Androida i iOS .
Wbudowany system Linux: zapoznaj się z krótkim wprowadzeniem do języka Python dla urządzeń wbudowanych, takich jak urządzenia Raspberry Pi i Coral z Edge TPU , lub instrukcje kompilacji C++ dla ARM .
Mikrokontrolery: poznaj bibliotekę TensorFlow Lite for Microcontrollers dla mikrokontrolerów i procesorów DSP, które zawierają tylko kilka kilobajtów pamięci.
Ograniczenia techniczne
Wszystkich modeli TensorFlow nie można przekształcić w modele TensorFlow Lite , patrz Kompatybilność Operatora .
Nieobsługiwane szkolenie na urządzeniu , ale znajduje się w naszym planie działania .