Cette page explique comment compiler la bibliothèque Python tflite_runtime
TensorFlow Lite pour x86_64 et divers appareils ARM.
Les instructions suivantes ont été testées sur Ubuntu 16.04.3 64 bits (AMD64), macOS Catalina (x86_64) et l'image Docker TensorFlow devel tensorflow/tensorflow:devel.
Prérequis
Vous devez installer CMake et une copie du code source de TensorFlow. Pour en savoir plus, consultez la page Compiler TensorFlow Lite avec CMake.
Pour créer le package PIP pour votre poste de travail, vous pouvez exécuter les commandes suivantes.
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 il facilite la configuration d'un environnement de compilation croisée. Vous avez également besoin d'une option target
pour déterminer l'architecture cible.
Makefile tensorflow/lite/tools/pip_package/Makefile
contient un outil d'aide permettant d'appeler une commande de compilation à l'aide d'un conteneur Docker prédéfini. Sur une machine hôte 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
Le script tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh
a besoin d'un nom de cible pour déterminer l'architecture cible. Voici la liste des cibles acceptées.
Cible | Architecture cible | Commentaires |
---|---|---|
armhf | ARMv7 VFP 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 | Elle repose sur l'optimisation "mnative". |
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érifiez ceci 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 script build_pip_package_with_cmake.sh
.
Variable | Objectif | pour décrire cela. |
---|---|---|
ARMCC_PREFIX |
Définit le préfixe de chaîne d'outils | arm-linux-gnueabihf- |
ARMCC_FLAGS |
indicateurs de compilation | -march=armv7-a -mfpu=neon-vfpv4 |