À l'origine, les modèles de machine learning (ML) que vous utilisez avec LiteRT créés et entraînés à l'aide des outils et bibliothèques TensorFlow. Une fois que vous avez construit un modèle avec TensorFlow Core, vous pouvez le convertir en un modèle efficace de modèle de ML, appelé modèle LiteRT. Cette section fournit des conseils pour convertir vos modèles TensorFlow au format de modèle LiteRT.
Workflow de conversion
La conversion de modèles TensorFlow au format LiteRT peut s'effectuer de plusieurs manières en fonction du contenu de votre modèle de ML. La première étape de ce processus vous devez évaluer votre modèle pour déterminer s'il peut être directement converti. Cette évaluation détermine si le contenu du modèle est compatible avec les environnements d'exécution LiteRT standards basés sur les opérations TensorFlow qu'il utilise. Si votre modèle utilise des opérations en dehors de l'ensemble compatible, vous devez la possibilité de refactoriser votre modèle ou d'utiliser des techniques de conversion avancées.
Le schéma ci-dessous montre les grandes étapes de la conversion d'un modèle.
Figure 1. Workflow de conversion LiteRT.
Les sections suivantes décrivent le processus d'évaluation et de conversion des modèles à utiliser avec LiteRT.
Formats du modèle d'entrée
Vous pouvez utiliser le convertisseur avec les formats de modèle d'entrée suivants:
- SavedModel (recommandé): modèle TensorFlow enregistré sous la forme d'un ensemble de fichiers sur le disque.
- Modèle Keras: Modèle créé à l'aide de l'API Keras de haut niveau
- Format Keras H5: Alternative légère au format SavedModel compatible avec l'API Keras.
- Modèles créés à partir de fonctions concrètes: Modèle créé à l'aide de l'API TensorFlow de bas niveau.
Vous pouvez enregistrer les modèles de fonctions Keras et concrètes en tant que SavedModel. et effectuer une conversion à l'aide du chemin recommandé.
Si vous disposez d'un modèle Jax, vous pouvez utiliser TFLiteConverter.experimental_from_jax
pour la convertir au format LiteRT. Notez que cette API est soumise
en mode expérimental.
Évaluation des conversions
Il est important d'évaluer votre modèle avant d'essayer de le convertir. Lors de l'évaluation, vous devez déterminer si les contenus de votre modèle Format LiteRT. Vous devez également déterminer si votre modèle est adapté à utiliser sur les appareils mobiles et de périphérie en termes de taille de données utilisées par le modèle, ses exigences en termes de traitement matériel, ainsi que la taille globale et la complexité.
Pour de nombreux modèles, le convertisseur devrait fonctionner immédiatement. Toutefois, La bibliothèque d'opérateurs intégrée LiteRT prend en charge un sous-ensemble les principaux opérateurs TensorFlow, ce qui signifie que certains modèles peuvent nécessiter avant de convertir en LiteRT. De plus, certaines opérations compatibles avec LiteRT ont de restrictions d'utilisation pour des raisons de performances. Consultez le guide sur la compatibilité des opérateurs afin de déterminer si votre modèle doit être refactorisé pour la conversion.
Conversion du modèle
Le convertisseur LiteRT prend un modèle TensorFlow et génère
modèle LiteRT (un modèle optimisé
Le format FlatBuffer identifié par le
.tflite
). Vous pouvez charger
un SavedModel ou convertir directement un modèle créé dans le code.
Le convertisseur utilise trois indicateurs principaux (ou options) qui personnalisent la conversion. pour votre modèle:
- Les indicateurs de compatibilité vous permettent de spécifier si la conversion doit autoriser ou non les opérateurs personnalisés.
- Les options d'optimisation vous permettent : spécifier le type d'optimisation à appliquer pendant la conversion. La technique d'optimisation la plus couramment utilisée est quanitisation post-entraînement.
- Les options de métadonnées vous permettent d'ajouter des métadonnées au modèle converti ce qui facilite la création d'un code de wrapper spécifique à la plate-forme lors du déploiement sur les appareils.
Vous pouvez convertir votre modèle à l'aide de l'API Python. l'outil Command Line (Ligne de commande). Consultez le Guide Convertir un modèle TF pour obtenir des instructions détaillées pour exécuter le convertisseur sur votre modèle.
Généralement, vous convertissez votre modèle pour les modèles LiteRT environnement d'exécution ou Environnement d'exécution des services Google Play pour LiteRT (bêta). Certains cas d'utilisation avancée nécessitent la personnalisation de l'environnement d'exécution du modèle, ce qui nécessite des étapes supplémentaires le processus de conversion. Consultez le la section Environnement d'exécution avancé d'Android pour en savoir plus.
Conversion avancée
Si vous rencontrez des erreurs lorsque vous exécutez le convertisseur sur votre modèle, problème de compatibilité avec l'opérateur. Les opérations TensorFlow ne sont pas toutes compatibles avec TensorFlow Mode simplifié. Vous pouvez contourner ces problèmes en refactorisant votre modèle ou en utilisant des options de conversion avancées qui vous permettent de créer un LiteRT modifié et un environnement d'exécution personnalisé pour ce modèle.
- Consultez la Présentation de la compatibilité des modèles. pour en savoir plus sur la compatibilité des modèles TensorFlow et LiteRT à prendre en compte.
- Les rubriques de la présentation de la compatibilité des modèles traitent des techniques avancées pour refactoriser votre modèle, à l'aide des opérateurs de sélection, par exemple ; .
- Pour obtenir la liste complète des opérations et des limites, consultez Page des opérations LiteRT.
Étapes suivantes
- Consultez le guide Convertir des modèles TF pour démarrer rapidement lors de la conversion du modèle.
- Consultez la présentation de l'optimisation pour en savoir plus des conseils pour optimiser votre modèle converti à l'aide de techniques telles que quanitisation post-entraînement.
- Consultez la présentation de l'ajout de métadonnées pour découvrir comment ajouter des métadonnées à vos modèles. Les métadonnées fournissent d'autres utilisations d'une description de votre modèle comme des informations qui peuvent être exploitées par les générateurs de code.