Cette page explique comment créer les bibliothèques TensorFlow Lite pour les ordinateurs ARM.
TensorFlow Lite est compatible avec deux systèmes de compilation, et les fonctionnalités prises en charge par chaque système de compilation ne sont pas identiques. Consultez le tableau suivant pour choisir un système de compilation approprié.
Sélection | Bazel | CMake |
---|---|---|
Chaînes d'outils prédéfinies | armhf, aarch64 | armel, armhf, aarch64 |
Chaînes d'outils personnalisées | plus difficile à utiliser | Simple d'utilisation |
Sélectionner des opérations TF | pris en charge | non pris en charge |
Délégué de GPU | disponible uniquement pour Android | toute plate-forme compatible avec OpenCL |
XNNPack | pris en charge | pris en charge |
Roue Python | pris en charge | pris en charge |
API C | pris en charge | compatible |
API C++ | pour les projets Bazel | compatible avec les projets CMake |
Compilation croisée pour ARM avec CMake
Si vous disposez d'un projet CMake ou si vous souhaitez utiliser une chaîne d'outils personnalisée, il est préférable d'utiliser CMake pour la compilation croisée. Une page distincte Compilation croisée TensorFlow Lite avec CMake est disponible à cet effet.
Compilation croisée pour ARM avec Bazel
Si vous avez un projet Bazel ou si vous souhaitez utiliser des opérations TF, il est préférable d'utiliser le système de compilation Bazel. Vous allez utiliser les chaînes d'outils ARM GCC 8.3 intégrées à Bazel pour créer une bibliothèque partagée ARM32/64.
Architecture cible | Configuration Bazel | Appareils compatibles |
---|---|---|
armhf (ARM32) | --config=elinux_armhf | RPI3, RPI4 avec OS Raspberry Pi 32 bits |
AArch64 (ARM64) | --config=elinux_aarch64 | Coral, RPI4 avec Ubuntu 64 bits |
Les instructions suivantes ont été testées sur les PC Ubuntu 16.04.3 64 bits (AMD64) et TensorFlow devel docker image tensorflow/tensorflow:devel.
Pour effectuer une compilation croisée de TensorFlow Lite avec Bazel, procédez comme suit:
Étape 1. Installer Bazel
Bazel est le système de compilation principal de TensorFlow. Installez la dernière version du système de compilation Bazel.
Étape 2 : Cloner le dépôt TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Étape 3. Binaire ARM de compilation
Bibliothèque C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
Vous trouverez une bibliothèque partagée dans :
bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
.
Pour en savoir plus, consultez la page API TensorFlow Lite C.
Bibliothèque C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Vous trouverez une bibliothèque partagée dans :
bazel-bin/tensorflow/lite/libtensorflowlite.so
.
Il n'existe actuellement aucun moyen simple d'extraire tous les fichiers d'en-tête nécessaires. Vous devez donc inclure tous les fichiers d'en-tête dans tensorflow/lite/ du dépôt TensorFlow. Vous aurez également besoin des fichiers d'en-tête de FlatBuffers et d'Abseil.
Etc.
Vous pouvez également créer d'autres cibles Bazel à l'aide de la chaîne d'outils. Voici quelques objectifs utiles.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image