Eine Frage haben? Verbinden Sie sich mit der Community im TensorFlow Forum Visit Forum

Erstellen Sie TensorFlow Lite für ARM-Boards

Auf dieser Seite wird beschrieben, wie Sie die TensorFlow Lite-Bibliotheken für ARM-basierte Computer erstellen.

TensorFlow Lite unterstützt zwei Build-Systeme und die unterstützten Funktionen der einzelnen Build-Systeme sind nicht identisch. Überprüfen Sie die folgende Tabelle, um ein geeignetes Build-System auszuwählen.

Feature Bazel CMake
Vordefinierte Werkzeugketten armhf, aarch64 armel, armhf, aarch64
Benutzerdefinierte Toolchains schwerer zu bedienen Einfach zu verwenden
Wählen Sie TF ops unterstützt nicht unterstützt
GPU-Delegierter nur für Android verfügbar jede Plattform, die OpenCL unterstützt
XNNPack unterstützt unterstützt
Python Wheel unterstützt unterstützt
C API unterstützt unterstützt
C ++ API unterstützt für Bazel-Projekte unterstützt für CMake-Projekte

Cross-Compilation für ARM mit CMake

Wenn Sie ein CMake-Projekt haben oder eine benutzerdefinierte Toolchain verwenden möchten, sollten Sie CMake für die Cross-Kompilierung verwenden. Hierfür steht eine separate Cross Compilation TensorFlow Lite mit CMake- Seite zur Verfügung.

Cross-Compilation für ARM mit Bazel

Wenn Sie ein Bazel-Projekt haben oder TF-Operationen verwenden möchten, sollten Sie das Bazel-Build-System verwenden. Sie verwenden die in Bazel integrierten ARM GCC 8.3-Toolchains , um eine gemeinsam genutzte ARM32 / 64-Bibliothek zu erstellen.

Zielarchitektur Bazel-Konfiguration Kompatible Geräte
armhf (ARM32) --config = elinux_armhf RPI3, RPI4 mit 32 Bit Raspberry Pi OS
AArch64 (ARM64) --config = elinux_aarch64 Coral, RPI4 mit Ubuntu 64 Bit

Die folgenden Anweisungen wurden auf einem 64-Bit-PC (AMD64) von Ubuntu 16.04.3 und TensorFlow entwickelt .

Gehen Sie folgendermaßen vor, um TensorFlow Lite mit Bazel zu kompilieren:

Schritt 1. Installieren Sie Bazel

Bazel ist das primäre Build-System für TensorFlow. Installieren Sie die neueste Version des Bazel-Build-Systems .

Schritt 2. Klonen Sie das TensorFlow-Repository

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

Schritt 3. Erstellen Sie eine ARM-Binärdatei

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

Eine gemeinsam genutzte Bibliothek finden Sie unter: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so .

Weitere Informationen finden Sie auf der TensorFlow Lite C-API- Seite.

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

Eine gemeinsam genutzte Bibliothek finden Sie unter: bazel-bin/tensorflow/lite/libtensorflowlite.so .

Derzeit gibt es keine einfache Möglichkeit, alle benötigten Header-Dateien zu extrahieren. Daher müssen Sie alle Header-Dateien in Tensorflow / Lite / aus dem TensorFlow-Repository aufnehmen. Zusätzlich benötigen Sie Header-Dateien von FlatBuffers und Abseil.

Usw

Sie können mit der Toolchain auch andere Bazel-Ziele erstellen. Hier sind einige nützliche Ziele.

  • // Tensorflow / Lite / Tools / Benchmark: Benchmark-Modell
  • // tensorflow / lite / examples / label_image: label_image