Dziękujemy za zapoznanie się z Google I/O. Zobacz wszystkie sesje na żądanie Oglądaj na żądanie

Zbuduj TensorFlow Lite dla płyt ARM

Na tej stronie opisano sposób tworzenia bibliotek TensorFlow Lite dla komputerów opartych na architekturze 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 użyciu łatwy w użyciu
Wybierz operacje TF utrzymany Nieobsługiwany
Delegat GPU dostępne tylko na Androida dowolna platforma obsługująca OpenCL
XNNPakiet utrzymany utrzymany
Koło Pythona utrzymany utrzymany
Interfejs API języka C utrzymany utrzymany
C++ API obsługiwane 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 łańcucha narzędzi, lepiej użyj CMake do kompilacji krzyżowej. W tym celu dostępna jest oddzielna kompilacja krzyżowa TensorFlow Lite ze stroną CMake .

Kompilacja krzyżowa dla ARM z Bazel

Jeśli masz projekt Bazel lub chcesz korzystać z operacji TF, lepiej użyj systemu kompilacji Bazel. Użyjesz zintegrowanych łańcuchów narzędzi ARM GCC 8.3 z Bazel do zbudowania biblioteki współdzielonej ARM32/64.

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

Poniższe instrukcje zostały przetestowane na 64-bitowym komputerze z systemem Ubuntu 16.04.3 (AMD64) i obrazem platformy dokowanej TensorFlow devel tensorflow/tensorflow:devel .

Aby krzyżować kompilację TensorFlow Lite z Bazel, wykonaj następujące czynności:

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

Możesz znaleźć współdzieloną bibliotekę w: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so .

Sprawdź stronę interfejsu API TensorFlow Lite C , aby uzyskać szczegółowe informacje.

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

Możesz znaleźć współdzieloną bibliotekę w: bazel-bin/tensorflow/lite/libtensorflowlite.so .

Obecnie nie ma prostego sposobu na wyodrębnienie wszystkich potrzebnych plików nagłówkowych, więc musisz 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

Możesz także zbudować inne cele Bazel za pomocą zestawu narzędzi. Oto kilka przydatnych celów.

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