TensorFlow Lite Python Wheel-Paket erstellen

Diese Seite beschreibt , wie die TensorFlow Lite baut tflite_runtime Python - Bibliothek für x86_64 und verschiedene ARM - Geräte.

Die folgenden Anweisungen sind auf Ubuntu 16.04.3 64-Bit - PC (AMD64), macOS Catalina (x86_64) und TensorFlow Entwick Docker Bild getestet devel: tensorflow / tensorflow .

Voraussetzungen

Sie benötigen CMake installiert und eine Kopie des TensorFlow-Quellcodes. Bitte überprüfen Sie Build - TensorFlow Lite mit CMake Seite für die Details.

Um das PIP-Paket für Ihre Workstation zu erstellen, können Sie die folgenden Befehle ausführen.

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

ARM-Cross-Zusammenstellung

Für die ARM-Cross-Compilierung wird empfohlen, Docker zu verwenden, da dies die Einrichtung einer Cross-Build-Umgebung erleichtert. Auch braucht man ein target Option , um die Zielarchitektur , um herauszufinden.

Es gibt ein Hilfsskript tensorflow/tools/ci_build/ci_build.sh mit einem vordefinierten Docker Container zur Verfügung einen Build Befehl aufzurufen. Auf einer Maschine Docker - Host können Sie einen Build - Befehl mit dem laufen container und dem target als Gefolgschaften.

tensorflow/tools/ci_build/ci_build.sh <container> \
  tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh <target>

Verfügbare Docker-Container

Sie müssen den ARM-Cross-Build-Container für Ihre Python-Zielinterpreterversion auswählen. Hier ist die Liste der unterstützten Container.

Container Unterstützte Python-Version
PI-PYTHON37 Python 3.7
PI-PYTHON38 Python 3.8
PI-PYTHON39 Python 3.9

Verfügbare Zielnamen

tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh Skript muss , um herauszufinden , Zielarchitektur einen Zielnamen. Hier ist die Liste der unterstützten Ziele.

Ziel Zielarchitektur Bemerkungen
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
einheimisch Ihr Arbeitsplatz Es baut mit "-mnative" Optimierung auf
Ihr Arbeitsplatz Standardziel

Build-Beispiele

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

armhf-Ziel für Python 3.7

tensorflow/tools/ci_build/ci_build.sh PI-PYTHON37 \
  tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh armhf

aarch64-Ziel für Python 3.8

tensorflow/tools/ci_build/ci_build.sh PI-PYTHON38 \
  tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh aarch64

Wie verwende ich eine benutzerdefinierte Toolchain?

Wenn die generierten Binärdateien nicht mit Ihrem Ziel kompatibel sind, müssen Sie Ihre eigene Toolchain verwenden oder benutzerdefinierte Build-Flags bereitstellen. (Überprüfen Sie diese Zielumgebung zu verstehen) In diesem Fall müssen Sie ändern tensorflow/lite/tools/cmake/download_toolchains.sh Ihre eigene Werkzeugkette zu verwenden. Das Skript Toolchain definiert die folgenden zwei Variablen für die build_pip_package_with_cmake.sh Skript.

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