Crea il pacchetto Python Wheel per TensorFlow Lite

Questa pagina descrive come creare la libreria Python tflite_runtime di TensorFlow Lite per x86_64 e vari dispositivi ARM.

Le seguenti istruzioni sono state testate su Ubuntu 16.04.3 a 64 bit PC (AMD64), macOS Catalina (x86_64) e l'immagine Docker di TensorFlow devel tensorflow/tensorflow:devel.

Prerequisiti

È necessario che CMake sia installato e una copia del codice sorgente di TensorFlow. Per i dettagli, consulta la pagina Crea TensorFlow Lite con CMake.

Per creare il pacchetto PIP per la tua workstation, puoi eseguire i comandi seguenti.

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

Compilation incrociata ARM

Per la compilazione incrociata ARM, consigliamo di utilizzare Docker, poiché semplifica la configurazione dell'ambiente di creazione incrociata. Inoltre, hai bisogno di un'opzione target per capire l'architettura di destinazione.

In Makefile tensorflow/lite/tools/pip_package/Makefile è disponibile uno strumento di supporto per richiamare un comando di build utilizzando un container Docker predefinito. Su una macchina host Docker, puoi eseguire un comando di build come descritto di seguito.

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

Nomi di destinazione disponibili

Lo script tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh ha bisogno di un nome di destinazione per capire l'architettura di destinazione. Ecco l'elenco dei target supportati.

Target Architettura di destinazione Commenti
Armhf ARMv7 VFP con neon Compatibile con Raspber Pi 3 e 4
rpi0 ARMv6 Compatibile con Raspber Pi Zero
aarch64 aarch64 (ARM a 64 bit) Corallo Mendel Linux 4.0
Raspber Pi con Ubuntu Server 20.04.01 LTS a 64 bit
nativo La tua workstation Crea con l'ottimizzazione "-mnative"
predefinito La tua workstation Target predefinito

Esempi di build

Ecco alcuni comandi di esempio che puoi utilizzare.

target armhf per Python 3.7

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

target aarch64 per Python 3.8

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

Come utilizzare una toolchain personalizzata?

Se i programmi binari generati non sono compatibili con il tuo target, devi utilizzare la tua toolchain o fornire flag di build personalizzati. (Controlla questo per comprendere il tuo ambiente di destinazione) In questo caso, devi modificare tensorflow/lite/tools/cmake/download_toolchains.sh per utilizzare la tua toolchain. Lo script Toolchain definisce le seguenti due variabili per lo script build_pip_package_with_cmake.sh.

Variabile Finalità un esempio.
ARMCC_PREFIX definisce il prefisso toolchain arm-linux-gnueabihf-
ARMCC_FLAGS flag di compilazione -march=armv7-a -mfpu=neon-vfpv4