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