TensorFlow Lite pour Android

TensorFlow Lite vous permet d'exécuter des modèles d'apprentissage automatique (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 des modèles sur Android rapidement et efficacement, y compris des options d'accélération matérielle.

Feuille de route d’apprentissage

Conception de codes Apprenez les concepts et la conception de code pour créer des applications Android avec TensorFlow Lite, continuez simplement à lire .
Démarrage rapide du code Commencez immédiatement à coder une application Android avec TensorFlow Lite grâce au Quickstart .
Modèles ML Pour en savoir plus sur le choix et l'utilisation de modèles ML avec TensorFlow Lite, consultez la documentation Modèles .

Modèles d'apprentissage automatique

TensorFlow Lite utilise des modèles TensorFlow qui sont convertis en un format de modèle d'apprentissage automatique 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 d'apprentissage automatique déjà créés et ne couvre pas la création, la formation, les tests ou la conversion de modèles. Apprenez-en davantage sur la sélection, la modification, la création et la conversion de modèles de machine learning pour TensorFlow Lite dans la section Modèles .

Exécuter des modèles sur Android

Un modèle TensorFlow Lite exécuté dans une application Android récupère des données, les traite et génère une prédiction basée sur la logique du modèle. Un modèle TensorFlow Lite nécessite un environnement d'exécution spécial pour s'exécuter, et les données transmises au modèle doivent être dans un format de données spécifique, appelé tensor . Lorsqu'un modèle traite les données, ce que l'on appelle l'exécution d'une inférence , il génère des résultats de prédiction sous forme de nouveaux tenseurs et les transmet à l'application Android afin qu'elle puisse prendre des mesures, comme montrer le résultat à un utilisateur ou exécuter une logique métier supplémentaire.

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

Figure 1. Flux d'exécution fonctionnel 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ée de modèle pour transformer les données en tenseurs
  • Gestionnaire de sortie de modèle pour recevoir les tenseurs de résultats de sortie et les interpréter comme des résultats de prédiction

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

Créez des applications avec TensorFlow Lite

Cette section décrit le chemin recommandé le plus courant pour implémenter TensorFlow Lite dans votre application Android. Vous devez accorder la plus grande attention aux sections sur l' environnement d'exécution et les bibliothèques de développement . Si vous avez développé un modèle personnalisé, assurez-vous de consulter la section Chemins de développement avancés .

Options de l'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 préférées :

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, réduisant ainsi la taille de votre application. Les services Google Play utilisent également automatiquement la version stable la plus récente du runtime TensorFlow Lite, vous offrant ainsi des fonctionnalités supplémentaires et des performances améliorées 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 ML, vous devez utiliser le runtime TensorFlow Lite standard. Cette option regroupe du code supplémentaire dans votre application, vous permettant ainsi d'avoir plus de contrôle sur le runtime ML dans votre application au prix d'une augmentation de la taille de téléchargement de votre application.

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

API et bibliothèques de développement

Il existe deux API principales que vous pouvez utiliser pour intégrer des modèles d'apprentissage automatique TensorFlow Lite dans votre application Android :

L' API Interpreter fournit des classes et des méthodes pour exécuter des inférences avec des modèles TensorFlow Lite existants. L' API de tâches TensorFlow Lite englobe l'API Interpreter et fournit une interface de programmation de niveau supérieur pour effectuer des tâches courantes d'apprentissage automatique sur la gestion des données visuelles, audio et textuelles. Vous devez utiliser l'API Task, sauf si vous constatez qu'elle ne prend pas en charge votre cas d'utilisation spécifique.

Bibliothèques

Vous pouvez accéder aux API Task ou à l'API Interpreter à l'aide des services Google Play . Vous pouvez également utiliser les bibliothèques autonomes pour les tâches TensorFlow Lite ou les bibliothèques principales et de support TensorFlow Lite dans votre application Android. Pour plus de détails sur la programmation concernant l'utilisation des bibliothèques TensorFlow Lite et des environnements d'exécution, consultez 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 plus d'informations sur l'obtention de modèles pour votre application Android, consultez la section Modèles TensorFlow Lite.

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

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

La bibliothèque de tâches TensorFlow Lite fournit une logique de gestion des données pour transformer les données visuelles, textuelles et audio en tenseurs ayant la forme correcte pour être traitées par un modèle TensorFlow Lite.

Exécuter des inférences

Le traitement des données via un modèle pour générer un résultat de prédiction est appelé exécution d'une inférence . L'exécution d'une inférence dans une application Android nécessite un environnement d'exécution TensorFlow Lite, un modèle et des 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 des processeurs spécialisés appelés accélérateurs . Les modèles d'apprentissage automatique peuvent s'exécuter plus rapidement sur ces processeurs spécialisés tels que les unités de traitement graphique (GPU) et les unités de traitement tensoriel (TPU), à l'aide de pilotes matériels TensorFlow Lite appelés délégués . Pour plus d'informations sur les délégués et l'accélération matérielle du traitement du modèle, consultez la 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 tenseurs, qui doivent être gérés par votre application Android en agissant 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 résultat unique (0 = chien, 1 = chat, 2 = oiseau) pour une classification d'image, ou des résultats beaucoup plus complexes, tels que plusieurs cadres de délimitation pour plusieurs objets classés dans un 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 utiliser des approches de développement plus avancées que celles décrites ci-dessus. Les sections suivantes décrivent les techniques avancées d'exécution de modèles et de leur développement pour TensorFlow Lite dans les applications Android.

Environnements d'exécution avancés

En plus des environnements d'exécution standard et des services Google Play pour TensorFlow Lite, il existe des environnements d'exécution supplémentaires que vous pouvez utiliser avec votre application Android. L'utilisation la plus probable de ces environnements est si vous disposez d'un modèle d'apprentissage automatique qui utilise des opérations de ML qui ne sont pas prises en charge par l'environnement d'exécution standard de TensorFlow Lite.

  • Exécution Flex pour TensorFlow Lite
  • Runtime TensorFlow Lite personnalisé

Le runtime TensorFlow Lite Flex vous permet d'inclure des opérateurs spécifiques requis pour votre modèle. En tant qu'option avancée pour exécuter votre modèle, vous pouvez créer TensorFlow Lite pour Android afin d'inclure des opérateurs et d'autres fonctionnalités requises pour exécuter votre modèle d'apprentissage automatique TensorFlow. Pour plus d'informations, consultez Créer 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 Android NDK , vous devriez envisager d'utiliser cette API. Vous pouvez également envisager d'utiliser cette API si vous souhaitez pouvoir partager du code entre plusieurs plates-formes. Pour plus d'informations sur cette option de développement, consultez la page Outils de développement .

Exécution de modèles basés sur un serveur

En général, vous devez exécuter des modèles dans votre application sur un appareil Android pour profiter d'une latence plus faible et d'une meilleure confidentialité des données pour vos utilisateurs. Cependant, il existe des cas où l'exécution d'un modèle sur un serveur cloud, hors appareil, constitue une meilleure solution. Par exemple, si vous disposez d'un modèle volumineux 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 préférée si les performances constantes du modèle sur une large gamme d’appareils sont une priorité absolue.

Google Cloud propose une suite complète de services pour exécuter des modèles d'apprentissage automatique TensorFlow. Pour plus d'informations, consultez la page des produits d'IA et d'apprentissage automatique de Google Cloud.

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

Des voies de développement plus avancées incluront probablement le développement de modèles d’apprentissage automatique personnalisés et l’optimisation de ces modèles pour une utilisation sur les appareils Android. Si vous envisagez de créer des modèles personnalisés, veillez à envisager d'appliquer des techniques de quantification aux modèles afin de réduire les coûts de mémoire et de traitement. Pour plus d'informations sur la création de modèles hautes performances à utiliser avec TensorFlow Lite, consultez les bonnes pratiques en matière de performances dans la section Modèles.

Prochaines étapes