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 rapidement et efficacement des modèles sur Android, y compris des options d'accélération matérielle.

Feuille de route d'apprentissage

Apprenez les concepts et la conception de code pour créer des applications Android avec TensorFlow Lite, continuez à lire .
Commencez tout de suite à coder une application Android avec TensorFlow Lite grâce au Quickstart .
Découvrez comment choisir et utiliser des modèles de ML avec TensorFlow Lite, consultez la documentation sur les 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, le test ou la conversion de modèles. Apprenez-en plus 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 s'exécutant dans une application Android recueille 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é tenseur . 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 Tensors et les transmet à l'application Android afin qu'elle puisse prendre des mesures, telles que 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
  • Modèle de gestionnaire d'entrée pour transformer les données en tenseurs
  • Modélisez le gestionnaire de sortie 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 les outils TensorFlow Lite fournissent ces éléments fonctionnels.

Créer des applications avec TensorFlow Lite

Cette section décrit le chemin recommandé le plus courant pour mettre en œuvre TensorFlow Lite dans votre application Android. Vous devez prêter plus d'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 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 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, 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 offrant 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 étroitement votre environnement d'exécution ML, vous devez utiliser l'environnement d'exécution TensorFlow Lite standard. Cette option regroupe du code supplémentaire dans votre application, ce qui vous permet d'avoir plus de contrôle sur l'exécution 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 des bibliothèques de développement TensorFlow Lite à votre environnement de développement d'application. 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 de machine learning 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 TensorFlow Lite Task encapsule 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 de tâche à moins que vous ne trouviez qu'elle ne prend pas en charge votre cas d'utilisation spécifique.

Bibliothèques

Vous pouvez accéder aux API de tâche ou à l'API d'interprète à l'aide des services Google Play . Vous pouvez également utiliser les bibliothèques autonomes pour les tâches TensorFlow Lite ou les bibliothèques de base et de support TensorFlow Lite dans votre application Android. Pour plus d'informations sur la programmation relative à l'utilisation des bibliothèques et des environnements d'exécution TensorFlow Lite, 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 la forme du tenseur. Pour traiter des données avec un modèle, votre code d'application doit transformer les données de leur format natif, telles que des données d'image, de texte ou audio, en un tenseur de la forme requise pour votre modèle.

La bibliothèque TensorFlow Lite Task fournit une logique de gestion des données pour transformer les données visuelles, textuelles et audio en tenseurs avec la forme correcte à traiter 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 connu sous le nom d'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 CPU, 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 des modèles, consultez la vue d' ensemble 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 prenant des mesures 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'image, à des résultats beaucoup plus complexes, tels que plusieurs boîtes englobantes pour plusieurs objets classés dans un image, avec des cotes de confiance de prédiction comprises entre 0 et 1.

Chemins 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 des techniques avancées pour exécuter des modèles et les développer 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 avez 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 pour TensorFlow Lite.

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

L'environnement d'exécution 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 nécessaires à l'exécution de 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 le NDK Android , 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 du modèle basé sur le 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, est une meilleure solution. Par exemple, si vous avez un grand modèle qui ne se comprime 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 la priorité absolue.

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

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

Des voies de développement plus avancées sont susceptibles d'inclure le développement de modèles d'apprentissage automatique 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, veillez à 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 Bonnes pratiques en matière de performances dans la section Modèles.

Prochaines étapes