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