TensorFlow Lite pour Android

TensorFlow Lite vous permet d'exécuter des modèles de machine learning (ML) TensorFlow dans vos applications Android. Le système TensorFlow Lite fournit des environnements d'exécution prédéfinis et personnalisables pour exécuter rapidement et efficacement des modèles sur Android, y compris des options d'accélération matérielle.

Modèles de machine learning

TensorFlow Lite utilise des modèles TensorFlow qui sont convertis en un format de modèle de machine learning plus petit, portable et plus efficace. Vous pouvez utiliser des modèles prédéfinis avec TensorFlow Lite sur Android, ou créer vos propres modèles TensorFlow et les convertir au format TensorFlow Lite.

Cette page traite de l'utilisation de modèles de machine learning déjà créés. Elle n'aborde pas la création, l'entraînement, le test ni la conversion de modèles. Pour en savoir plus sur la sélection, la modification, la création et la conversion de modèles de machine learning pour TensorFlow Lite, consultez la page Modèles.

Exécuter des modèles sur Android

Un modèle TensorFlow Lite exécuté dans une application Android reçoit des données, les traite et génère une prédiction basée sur la logique du modèle. L'exécution d'un modèle TensorFlow Lite nécessite un environnement d'exécution spécial. Les données transmises au modèle doivent se présenter dans un format de données spécifique, appelé Tensor. Lorsqu'un modèle traite les données (exécution d'une inférence), il génère les résultats de la prédiction sous la forme de nouveaux Tensors et les transmet à l'application Android afin de pouvoir agir, comme afficher le résultat à un utilisateur ou exécuter une logique métier supplémentaire.

Flux d'exécution fonctionnelle pour les modèles TensorFlow Lite dans les applications Android

Figure 1. Flux d'exécution fonctionnelle pour les modèles TensorFlow Lite dans les applications Android.

Au niveau de la conception fonctionnelle, votre application Android a besoin des éléments suivants pour exécuter un modèle TensorFlow Lite:

  • Environnement d'exécution TensorFlow Lite pour l'exécution du modèle
  • Gestionnaire d'entrées du modèle pour transformer les données en Tensors.
  • Le gestionnaire de sortie du modèle permet de recevoir des Tensors de résultats de sortie et de les interpréter en tant que résultats de prédiction.

Les sections suivantes décrivent comment les bibliothèques et les outils TensorFlow Lite fournissent ces éléments fonctionnels.

Créer des applications avec TensorFlow Lite

Cette section décrit la procédure recommandée (la plus courante) pour implémenter TensorFlow Lite dans votre application Android. Veuillez accorder une attention particulière aux sections Environnement d'exécution et Bibliothèques de développement. Si vous avez développé un modèle personnalisé, veillez à consulter la section Parcours de développement avancés.

Options d'environnement d'exécution

Il existe plusieurs façons d'activer un environnement d'exécution pour exécuter des modèles dans votre application Android. Voici les options à privilégier:

En général, vous devez utiliser l'environnement d'exécution fourni par les services Google Play, car il est plus économe en espace que l'environnement standard, car il se charge dynamiquement, ce qui réduit la taille de votre application. Les services Google Play utilisent également automatiquement la version stable la plus récente de l'environnement d'exécution TensorFlow Lite. Vous bénéficiez ainsi de fonctionnalités supplémentaires et d'améliorations des performances au fil du temps. Si vous proposez votre application sur des appareils qui n'incluent pas les services Google Play ou si vous devez gérer de près votre environnement d'exécution de ML, vous devez utiliser l'environnement d'exécution standard TensorFlow Lite. Cette option inclut du code supplémentaire dans votre application, ce qui vous permet de mieux contrôler l'environnement d'exécution de ML dans votre application, mais cela a pour effet d'augmenter la taille de téléchargement de votre application.

Vous accédez à ces environnements d'exécution dans votre application Android en ajoutant des bibliothèques de développement TensorFlow Lite à votre environnement de développement d'applications. Pour en savoir plus sur l'utilisation des environnements d'exécution standards dans votre application, consultez la section suivante.

Bibliothèques

Vous pouvez accéder à l'API Interpréteur à l'aide des services Google Play. Vous pouvez utiliser les bibliothèques core et support de TensorFlow Lite dans votre application Android. Pour en savoir plus sur l'utilisation des bibliothèques et des environnements d'exécution TensorFlow Lite, consultez la page Outils de développement pour Android.

Obtenir des modèles

L'exécution d'un modèle dans une application Android nécessite un modèle au format TensorFlow Lite. Vous pouvez utiliser des modèles prédéfinis ou en créer un avec TensorFlow et le convertir au format Lite. Pour en savoir plus sur l'obtention de modèles pour votre application Android, consultez la page Modèles de TensorFlow Lite.

Gérer les données d'entrée

Toutes les données que vous transmettez dans un modèle de ML doivent être un Tensor doté d'une structure de données spécifique, souvent appelée forme du Tensor. Pour traiter des données avec un modèle, le code de votre application doit transformer les données de leur format natif (données d'image, de texte ou audio, par exemple) en un Tensor ayant la forme requise pour votre modèle.

Exécuter des inférences

Le traitement des données à l'aide d'un modèle pour générer un résultat de prédiction s'appelle l'exécution d'une inférence. Pour exécuter une inférence dans une application Android, vous devez disposer d'un environnement d'exécution TensorFlow Lite, d'un model et de données d'entrée.

La vitesse à laquelle un modèle peut générer une inférence sur un appareil particulier dépend de la taille des données traitées, de la complexité du modèle et des ressources informatiques disponibles telles que la mémoire et le processeur, ou de processeurs spécialisés appelés accélérateurs. Les modèles de machine learning peuvent s'exécuter plus rapidement sur ces processeurs spécialisés tels que les processeurs graphiques (GPU) et les TPU (Tensor Processing Units), à l'aide de pilotes matériels TensorFlow Lite appelés délégués. Pour en savoir plus sur les délégués et l'accélération matérielle du traitement des modèles, consultez la page Présentation de l'accélération matérielle.

Gérer les résultats de sortie

Les modèles génèrent des résultats de prédiction sous forme de Tensors, qui doivent être gérés par votre application Android en effectuant une action ou en affichant un résultat à l'utilisateur. Les résultats de sortie du modèle peuvent être aussi simples qu'un nombre correspondant à un seul résultat (0 = chien, 1 = chat, 2 = oiseau) pour une classification d'images, ou des résultats beaucoup plus complexes, tels que plusieurs cadres de délimitation pour plusieurs objets classés dans une image, avec des indices de confiance de prédiction compris entre 0 et 1.

Parcours de développement avancés

Lorsque vous utilisez des modèles TensorFlow Lite plus sophistiqués et personnalisés, vous devrez peut-être recourir à des approches de développement plus avancées que celles décrites ci-dessus. Les sections suivantes décrivent des techniques avancées permettant d'exécuter des modèles et de les développer pour TensorFlow Lite dans des applications Android.

Environnements d'exécution avancés

Outre l'environnement d'exécution standard et celui des services Google Play pour TensorFlow Lite, vous pouvez utiliser des environnements d'exécution supplémentaires avec votre application Android. L'environnement d'exécution le plus probable pour ces environnements est celui d'un modèle de machine learning qui utilise des opérations de ML qui ne sont pas compatibles avec l'environnement d'exécution standard de TensorFlow Lite.

L'environnement d'exécution Flex de TensorFlow Lite vous permet d'inclure les opérateurs spécifiques requis pour votre modèle. En tant qu'option avancée d'exécution de votre modèle, vous pouvez compiler TensorFlow Lite pour Android afin d'inclure les opérateurs et les autres fonctionnalités nécessaires à l'exécution de votre modèle de machine learning TensorFlow. Pour en savoir plus, consultez la page Compiler TensorFlow Lite pour Android.

API C et C++

TensorFlow Lite fournit également une API pour exécuter des modèles en C et C++. Si votre application utilise le NDK Android, nous vous conseillons d'utiliser cette API. Vous pouvez également envisager d'utiliser cette API si vous souhaitez pouvoir partager du code entre plusieurs plates-formes. Pour en savoir plus sur cette option de développement, consultez la page Outils de développement.

Exécution de modèles sur serveur

En général, vous devez exécuter des modèles dans votre application sur un appareil Android pour bénéficier d'une latence plus faible et d'une confidentialité des données améliorée pour vos utilisateurs. Toutefois, dans certains cas, l'exécution d'un modèle sur un serveur cloud, hors appareil, constitue une meilleure solution. Par exemple, imaginons que vous disposez d'un grand modèle qui ne se compresse pas facilement à une taille adaptée aux appareils Android de vos utilisateurs ou qui peut être exécuté avec des performances raisonnables sur ces appareils. Cette approche peut également être votre solution privilégiée si la priorité absolue est de garantir la cohérence des performances du modèle sur un large éventail d'appareils.

Google Cloud propose une suite complète de services pour l'exécution de modèles de machine learning TensorFlow. Pour en savoir plus, consultez la page Produits d'IA et de machine learning de Google Cloud.

Développement et optimisation de modèles personnalisés

Les parcours de développement plus avancés incluent probablement le développement de modèles de machine learning personnalisés et l'optimisation de ces modèles pour une utilisation sur des appareils Android. Si vous envisagez de créer des modèles personnalisés, pensez à appliquer des techniques de quantification aux modèles afin de réduire les coûts de mémoire et de traitement. Pour en savoir plus sur la création de modèles hautes performances à utiliser avec TensorFlow Lite, consultez les bonnes pratiques liées aux performances dans la section "Modèles".