Na tej stronie dowiesz się, jak tworzyć biblioteki TensorFlow Lite dla komputerów z procesorami ARM.
TensorFlow Lite obsługuje 2 systemy kompilacji, a obsługiwane funkcje z każdego z nich nie są identyczne. Z poniższej tabeli dowiesz się, jak wybrać odpowiedni system kompilacji.
Funkcja | Bazel | CMake |
---|---|---|
Wstępnie zdefiniowane łańcuchy narzędzi | Armhf, Aarch64 | Armel, Armhf, aarch64 |
Niestandardowe łańcuchy narzędzi | trudniejsze w użyciu. | łatwa w użyciu |
Wybierz operacje TF | obsługiwana | not supported |
Przedstawiciel ds. procesora graficznego | dostępne tylko na Androidzie | dowolna platforma obsługująca OpenCL. |
XNNPack | obsługiwana | obsługiwana |
Koło Pythona | obsługiwana | obsługiwana |
C API | obsługiwana | obsługiwane |
Interfejs API C++ | obsługiwane w przypadku projektów Bazel | obsługiwane w projektach CMake |
Kompilacja krzyżowa platformy ARM z CMake
Jeśli masz projekt CMake lub chcesz użyć niestandardowego łańcucha narzędzi, do kompilacji krzyżowej lepiej użyć CMake. Dostępna jest oddzielna strona do kompilacji krzyżowej TensorFlow Lite z CMake.
Kompilacja krzyżowa na architekturze ARM za pomocą bazy danych
Jeśli masz projekt Bazel lub chcesz używać operacji TF, lepiej użyć systemu kompilacji Bazel. Do utworzenia biblioteki współdzielonej ARM32/64 użyjesz zintegrowanych łańcuchów narzędzi ARM GCC 8.3 z Bazelem.
Architektura docelowa | Konfiguracja Bazel | Zgodne urządzenia |
---|---|---|
Armhf (ARM32) | --config=elinux_armhf | RPI3, RPI4 z 32-bitowym systemem Raspberry Pi OS |
AArch64 (ARM64) | --config=elinux_aarch64 | Coral, RPI4 z Ubuntu 64-bitowym |
Podane niżej instrukcje zostały przetestowane na 64-bitowym komputerze Ubuntu 16.04.3 (AMD64) i w deweloperskim obrazie Dockera TensorFlow tensorflow/tensorflow:devel.
Aby skompilować TensorFlow Lite w Bazel, wykonaj te czynności:
Krok 1. Zainstaluj aplikację Bazel
Bazel to podstawowy system kompilacji dla TensorFlow. Zainstaluj najnowszą wersję systemu kompilacji Baidu.
Krok 2. Klonowanie repozytorium TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Krok 3. Kompilacja pliku binarnego ARM
Biblioteka C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
Udostępniane zasoby znajdziesz tutaj:
bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
.
Więcej informacji znajdziesz na stronie TensorFlow Lite C API.
Biblioteka C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Udostępniane zasoby znajdziesz tutaj:
bazel-bin/tensorflow/lite/libtensorflowlite.so
.
Obecnie nie ma prostego sposobu na wyodrębnienie wszystkich potrzebnych plików nagłówka, dlatego wszystkie pliki nagłówka należy uwzględnić w Tensorflow/lite/ z repozytorium TensorFlow. Dodatkowo potrzebne są pliki nagłówka z FlatBuffers i Abseil.
itd.
Za pomocą łańcucha narzędzi możesz też tworzyć inne cele bazodanowe. Oto kilka przydatnych celów.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image