此页面由 Cloud Translation API 翻译。
Switch to English

Erstellen Sie TensorFlow Lite für Raspberry Pi

Auf dieser Seite wird beschrieben, wie Sie die statischen und gemeinsam genutzten TensorFlow Lite-Bibliotheken für Raspberry Pi erstellen. Wenn Sie TensorFlow Lite nur zum Ausführen Ihrer Modelle verwenden möchten, installieren Sie am schnellsten das Laufzeitpaket TensorFlow Lite, wie im Python-Schnellstart gezeigt .

Cross-Compile für Raspberry Pi mit Make

Die folgenden Anweisungen wurden auf einem 64-Bit-PC (AMD64) von Ubuntu 16.04.3 und einem TensorFlow-Entwickler-Docker-Image Tensorflow / Tensorflow getestet: devel .

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

Schritt 1. Klonen Sie die offizielle Raspberry Pi-Cross-Compilation-Toolchain

git clone https://github.com/raspberrypi/tools.git rpi_tools

Schritt 2. Klonen Sie das TensorFlow-Repository

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

Schritt 3. Führen Sie das folgende Skript im Stammverzeichnis des TensorFlow-Repositorys aus, um es herunterzuladen

Alle Build-Abhängigkeiten:

cd tensorflow_src && ./tensorflow/lite/tools/make/download_dependencies.sh

Schritt 4a. So erstellen Sie eine ARMv7-Binärdatei für Raspberry Pi 2, 3 und 4

PATH=../rpi_tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin:$PATH \
  ./tensorflow/lite/tools/make/build_rpi_lib.sh

Sie können dem Skript build_rpi_lib.sh zusätzliche Make-Optionen oder build_rpi_lib.sh da es sich um einen Wrapper von Make with TFLite Makefile handelt . Hier sind einige mögliche Optionen:

./tensorflow/lite/tools/make/build_rpi_lib.sh clean # clean object files
./tensorflow/lite/tools/make/build_rpi_lib.sh -j 16 # run with 16 jobs to leverage more CPU cores
./tensorflow/lite/tools/make/build_rpi_lib.sh label_image # # build label_image binary

Schritt 4b. So erstellen Sie eine ARMv6-Binärdatei für Raspberry Pi Zero

PATH=../rpi_tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin:$PATH \
  ./tensorflow/lite/tools/make/build_rpi_lib.sh TARGET_ARCH=armv6

Kompiliere nativ auf Raspberry Pi

Die folgenden Anweisungen wurden unter Raspberry Pi Zero, Raspberry Pi OS GNU / Linux 10 (Buster) und gcc Version 8.3.0 (Raspbian 8.3.0-6 + rpi1) getestet:

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

Schritt 1. Melden Sie sich bei Ihrem Raspberry Pi an und installieren Sie die Toolchain

sudo apt-get install build-essential

Schritt 2. Klonen Sie das TensorFlow-Repository

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

Schritt 3. Führen Sie das folgende Skript im Stammverzeichnis des TensorFlow-Repositorys aus, um alle Build-Abhängigkeiten herunterzuladen

cd tensorflow_src && ./tensorflow/lite/tools/make/download_dependencies.sh

Schritt 4. Sie sollten dann in der Lage sein, TensorFlow Lite zu kompilieren mit:

./tensorflow/lite/tools/make/build_rpi_lib.sh

Cross-Compile für Armhf mit Bazel

Sie können ARM GCC-Toolchains mit Bazel verwenden, um eine gemeinsam genutzte armhf-Bibliothek zu erstellen, die mit Raspberry Pi 2, 3 und 4 kompatibel ist.

Die folgenden Anweisungen wurden auf einem 64-Bit-PC (AMD64) von Ubuntu 16.04.3 und einem TensorFlow-Entwickler-Docker-Image Tensorflow / Tensorflow getestet: devel .

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 ARMv7-Binärdatei für Raspberry Pi 2, 3 und 4

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

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

C ++ - Bibliothek
bazel build --config=elinux_armhf -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.

Etc

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