Zbuduj TensorFlow Lite dla płyt ARM

Na tej stronie opisano sposób tworzenia bibliotek TensorFlow Lite dla komputerów z procesorami ARM.

TensorFlow Lite obsługuje dwa systemy kompilacji, a obsługiwane funkcje z każdego systemu kompilacji nie są identyczne. Sprawdź poniższą tabelę, aby wybrać odpowiedni system kompilacji.

Funkcja Bazel CMake
Predefiniowane łańcuchy narzędzi armhf, aarch64 armel, armhf, aarch64
Niestandardowe łańcuchy narzędzi trudniejszy w obsłudze łatwy w użyciu
Wybierz opcję Operacje TF utrzymany Nieobsługiwany
Delegat GPU dostępna tylko dla Androida dowolna platforma obsługująca OpenCL
Pakiet XNN utrzymany utrzymany
Koło Pythona utrzymany utrzymany
API języka C utrzymany utrzymany
API C++ wsparcie dla projektów Bazel obsługiwane dla projektów CMake

Kompilacja krzyżowa dla ARM z CMake

Jeśli masz projekt CMake lub chcesz użyć niestandardowego zestawu narzędzi, lepiej użyj CMake do kompilacji krzyżowej. W tym celu dostępna jest osobna kompilacja krzyżowa TensorFlow Lite ze stroną CMake .

Kompilacja krzyżowa dla ARM z Bazelem

Jeśli masz projekt Bazel lub chcesz używać operacji TF, lepiej użyj systemu kompilacji Bazel. Będziesz używać zintegrowanych zestawów narzędzi ARM GCC 8.3 z Bazelem do zbudowania współdzielonej biblioteki ARM32/64.

Architektura docelowa Konfiguracja Bazela Kompatybilne urządzenia
armhf (ARM32) --config=elinux_armhf RPI3, RPI4 z 32-bitowym systemem operacyjnym Raspberry Pi
AArch64 (ARM64) --config=elinux_aarch64 Coral, RPI4 z Ubuntu 64-bitowym

Poniższe instrukcje zostały przetestowane na 64-bitowym komputerze PC Ubuntu 16.04.3 (AMD64) i obrazie dokowania TensorFlow devel tensorflow/tensorflow:devel .

Aby skompilować krzyżowo TensorFlow Lite z Bazelem, wykonaj następujące kroki:

Krok 1. Zainstaluj Bazela

Bazel to podstawowy system kompilacji dla TensorFlow. Zainstaluj najnowszą wersję systemu kompilacji Bazel .

Krok 2. Sklonuj repozytorium TensorFlow

git clone https://github.com/tensorflow/tensorflow.git tensorflow_src

Krok 3. Zbuduj plik binarny ARM

Biblioteka C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so

Bibliotekę współdzieloną znajdziesz w: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so .

Aby uzyskać szczegółowe informacje, sprawdź stronę API TensorFlow Lite C.

Biblioteka C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so

Bibliotekę współdzieloną znajdziesz w: bazel-bin/tensorflow/lite/libtensorflowlite.so .

Obecnie nie ma prostego sposobu wyodrębnienia wszystkich potrzebnych plików nagłówkowych, dlatego należy dołączyć wszystkie pliki nagłówkowe do tensorflow/lite/ z repozytorium TensorFlow. Dodatkowo będziesz potrzebować plików nagłówkowych z FlatBuffers i Abseil.

Itp

Za pomocą zestawu narzędzi możesz także budować inne cele Bazel. Oto kilka przydatnych celów.

  • //tensorflow/lite/tools/benchmark:benchmark_model
  • //tensorflow/lite/examples/label_image:label_image