TensorFlow Lite

TensorFlow Lite est un ensemble d'outils conçus pour aider les développeurs à exécuter leurs modèles sur des appareils mobiles, intégrés et IoT afin d'apporter le machine learning sur l'appareil.

Principales fonctionnalités

  • Optimisé pour le machine learning sur l'appareil, il répond à cinq contraintes principales : latence (pas d'aller-retour avec un serveur), confidentialité (aucune donnée personnelle ne quitte l'appareil), connectivité (aucune connexion Internet requise), taille (modèle réduit et taille binaire) et consommation d'énergie (inférence efficace et absence de connexions réseau).
  • Compatibilité avec plusieurs plates-formes, dont les appareils Android et iOS, les appareils avec système d'exploitation Linux intégré, et les microcontrôleurs.
  • Compatibilité avec de nombreux langages, dont Java, Swift, Objective-C, C++ et Python.
  • Hautes performances, avec accélération matérielle et optimisation du modèle.
  • Exemples de bout en bout, pour les tâches de machine learning courantes comme la classification d'images, la détection d'objets, l'analyse des postures, la réponse à des questions, la classification de texte, etc., sur plusieurs plates-formes.

Workflow de développement

La procédure ci-dessous vous présente successivement chaque étape du workflow. Elle contient également des liens pour plus d'instructions :

1. Générer un modèle TensorFlow Lite

Un modèle TensorFlow Lite est représenté dans un format portable efficace spécial, appelé FlatBuffers (identifié par l'extension de fichier .tflite). Ce format procure divers avantages par rapport au format de modèle de tampon de protocole de TensorFlow, comme une taille moindre (empreinte du code faible) et une inférence plus rapide (accès direct aux données, sans étape d'analyse/décompression supplémentaire). Il permet également à TensorFlow Lite de s'exécuter efficacement sur des appareils dont les ressources mémoire et de calcul sont limitées.

Un modèle TensorFlow Lite peut éventuellement inclure des métadonnées contenant, d'une part, une description lisible par un humain du modèle et, d'autre part, des données lisibles par une machine pour créer automatiquement des pipelines de prétraitement et de post-traitement durant l'inférence sur l'appareil. Pour en savoir plus, consultez la section Ajouter des métadonnées.

Vous pouvez générer un modèle TensorFlow Lite de plusieurs manières :

  • Utilisez un modèle TensorFlow Lite existant : reportez-vous à la section Exemples de projets TensorFlow Lite pour choisir un modèle existant. Les modèles peuvent éventuellement contenir des métadonnées.

  • Créez un modèle TensorFlow Lite : utilisez TensorFlow Lite Model Maker pour créer un modèle avec votre ensemble de données personnalisé. Par défaut, tous les modèles contiennent des métadonnées.

  • Convertissez un modèle TensorFlow en modèle TensorFlow Lite : utilisez l'outil de conversion TensorFlow Lite pour convertir un modèle TensorFlow en modèle TensorFlow Lite. Durant la conversion, vous pouvez appliquer des optimisations telles que la quantification pour réduire la taille et la latence du modèle sans perte de justesse (ou minime). Par défaut, aucun modèle ne contient de métadonnées.

2. Exécuter une inférence

L'inférence désigne le processus d'exécution d'un modèle TensorFlow Lite sur l'appareil pour réaliser des prédictions à partir des données d'entrée. Vous pouvez exécuter une inférence de différentes manières, en fonction du type de modèle :

Sur les appareils Android et iOS, vous pouvez améliorer les performances grâce à l'accélération matérielle. Sur ces deux plates-formes, vous pouvez utiliser un délégué GPU. Sur Android uniquement, vous pouvez utiliser soit le délégué NNAPI (pour les appareils plus récents), soit le délégué Hexagon (pour les appareils plus anciens). Sur iOS, vous pouvez utiliser le délégué Core ML. Pour accepter de nouveaux accélérateurs matériels, vous pouvez définir votre propre délégué.

Premiers pas

Consultez les guides suivants en fonction de l'appareil que vous ciblez :

Contraintes techniques

  • Tous les modèles TensorFlow ne peuvent pas être convertis en modèles TensorFlow Lite. Reportez-vous à la page Compatibilité des opérateurs.

  • L'entraînement sur l'appareil n'est pas possible à l'heure actuelle, mais sa prise en charge figure sur notre feuille de route.