Python-Rad-Paket für TensorFlow Lite erstellen

Auf dieser Seite wird beschrieben, wie Sie die TensorFlow Lite-Python-Bibliothek tflite_runtime für x86_64 und verschiedene ARM-Geräte erstellen.

Die folgende Anleitung wurde auf einem Ubuntu 16.04.3-64-Bit-PC (AMD64), macOS Catalina (x86_64) und dem TensorFlow-Devel-Docker-Image tensorflow/tensorflow:devel getestet.

Voraussetzungen

Sie müssen CMake installiert und eine Kopie des TensorFlow-Quellcodes haben. Weitere Informationen finden Sie auf der Seite Build TensorFlow Lite with CMake.

Zum Erstellen des PIP-Pakets für Ihre Workstation können Sie die folgenden Befehle ausführen.

PYTHON=python3 tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh native

ARM-Crosskompilierung

Für die ARM-Cross-Compilation wird die Verwendung von Docker empfohlen, da dies die Einrichtung einer Cross-Build-Umgebung vereinfacht. Außerdem benötigen Sie die Option target, um die Zielarchitektur zu ermitteln.

In Makefile tensorflow/lite/tools/pip_package/Makefile steht ein Hilfstool zur Verfügung, mit dem Sie einen Build-Befehl mit einem vordefinierten Docker-Container aufrufen können. Auf einer Docker-Hostmaschine können Sie einen Build-Befehl wie folgt ausführen.

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=<target> PYTHON_VERSION=<python3 version>

Verfügbare Zielnamen

Das Skript tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh benötigt einen Zielnamen, um die Zielarchitektur zu ermitteln. Hier ist die Liste der unterstützten Ziele.

Target Zielarchitektur Kommentare
Armhf ARMv7 VFP mit Neon Kompatibel mit Raspberry Pi 3 und 4
rpi0 ARMv6 Kompatibel mit Raspberry Pi Zero
aarch64 aarch64 (ARM 64-Bit) Coral Mendel Linux 4.0
Raspberry Pi mit Ubuntu Server 20.04.01 LTS 64-Bit
nativen Anzeige Ihre Workstation Es baut auf der „nativen“ Optimierung auf.
Standardeinstellung Ihre Workstation Standardziel

Build-Beispiele

Hier sind einige Beispielbefehle, die Sie verwenden können.

armhf-Ziel für Python 3.7

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=armhf PYTHON_VERSION=3.7

aarch64-Ziel für Python 3.8

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=aarch64 PYTHON_VERSION=3.8

So verwenden Sie eine benutzerdefinierte Toolchain

Wenn die generierten Binärprogramme nicht mit Ihrem Ziel kompatibel sind, müssen Sie Ihre eigene Toolchain verwenden oder benutzerdefinierte Build-Flags bereitstellen. Hier finden Sie Informationen zu Ihrer Zielumgebung. In diesem Fall müssen Sie tensorflow/lite/tools/cmake/download_toolchains.sh ändern, um Ihre eigene Toolchain zu verwenden. Das Toolchain-Skript definiert die folgenden beiden Variablen für das Skript build_pip_package_with_cmake.sh.

Variable Zweck Beispiel
ARMCC_PREFIX definiert das Toolchain-Präfix arm-linux-gnueabihf-
ARMCC_FLAGS Kompilierungs-Flags -march=armv7-a -mfpu=neon-vfpv4