Créer un package LiteRT Python Wheel

Cette page explique comment compiler le code tflite_runtime LiteRT Python pour x86_64 et divers appareils ARM.

Les instructions suivantes ont été testées sur les PC 64 bits Ubuntu 16.04.3 (AMD64) , macOS Catalina (x86_64) et image Docker de développement TensorFlow tensorflow/tensorflow:devel.

Prérequis

Vous devez installer CMake et une copie du code source de TensorFlow. Veuillez vérifier Créer LiteRT avec CMake pour en savoir plus.

Pour créer le package PIP pour votre station de travail, vous pouvez exécuter la commande suivante : commandes.

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

Compilation croisée ARM

Pour la compilation croisée ARM, il est recommandé d'utiliser Docker, car cela facilite pour configurer des environnements de compilation. Vous avez aussi besoin d'une option target pour déterminer l'architecture cible.

Il existe un outil d'aide dans Makefile tensorflow/lite/tools/pip_package/Makefile pour appeler une commande de compilation à l'aide d'un conteneur Docker prédéfini. Sur un Docker, vous pouvez exécuter une commande de compilation comme suit.

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

Noms de cibles disponibles

tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh script requis un nom de cible pour déterminer l'architecture cible. Voici la liste des appareils compatibles cibles.

Cible Architecture cible Commentaires
armhf VFP ARMv7 avec Neon Compatible avec Raspberry Pi 3 et 4
rpi0 ARMv6 Compatible avec Raspberry Pi Zero
aarch64 aarch64 (ARM 64 bits) Coral Mendel Linux 4.0
Raspberry Pi avec Ubuntu Server 20.04.01 LTS 64 bits
native Votre station de travail Il intègre "-mnative" optimisation
par défaut Votre station de travail Cible par défaut

Exemples de compilation

Voici quelques exemples de commandes que vous pouvez utiliser.

Cible armhf pour Python 3.7

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

Cible aarch64 pour Python 3.8

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

Comment utiliser une chaîne d'outils personnalisée ?

Si les binaires générés ne sont pas compatibles avec votre cible, vous devez utiliser votre propre chaîne d'outils ou fournir des indicateurs de compilation personnalisés. (Vérifier ce pour comprendre votre environnement cible). Dans ce cas, vous devez modifier tensorflow/lite/tools/cmake/download_toolchains.sh pour utiliser votre propre chaîne d'outils. Le script de chaîne d'outils définit les deux variables suivantes pour le build_pip_package_with_cmake.sh.

Variable Objectif exemple
ARMCC_PREFIX Définit le préfixe de la chaîne d'outils arm-linux-gnueabihf-
ARMCC_FLAGS options de compilation -march=armv7-a -mfpu=neon-vfpv4