Présentation de la conversion de modèle

Les modèles de machine learning (ML) que vous utilisez avec TensorFlow Lite sont créés et entraînés à l'origine à l'aide des bibliothèques et des outils principaux de TensorFlow. Une fois que vous avez créé un modèle avec le noyau TensorFlow, vous pouvez le convertir en un format de modèle ML plus petit et plus efficace appelé modèle TensorFlow Lite. Cette section fournit des conseils pour convertir vos modèles TensorFlow au format de modèle TensorFlow Lite.

Processus de conversion

La conversion des modèles TensorFlow au format TensorFlow Lite peut emprunter plusieurs chemins en fonction du contenu de votre modèle ML. Comme 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 pris en charge par les environnements d'exécution TensorFlow Lite standard en fonction des opérations TensorFlow qu'il utilise. Si votre modèle utilise des opérations en dehors de l'ensemble pris en charge, vous avez la possibilité de refactoriser votre modèle ou d'utiliser des techniques de conversion avancées.

Le diagramme ci-dessous montre les étapes de haut niveau de la conversion d'un modèle.

Flux de travail de conversion TFLite

Figure 1. Workflow de conversion TensorFlow Lite.

Les sections suivantes décrivent le processus d'évaluation et de conversion des modèles à utiliser avec TensorFlow Lite.

Formats de modèle d'entrée

Vous pouvez utiliser le convertisseur avec les formats de modèle d'entrée suivants :

Vous pouvez enregistrer les modèles de fonctions Keras et concrets en tant que SavedModel et les convertir en utilisant le chemin recommandé.

Si vous avez un modèle Jax, vous pouvez utiliser l'API TFLiteConverter.experimental_from_jax pour le convertir au format TensorFlow Lite. Notez que cette API est susceptible d'être modifiée en mode expérimental.

Évaluation des conversions

L'évaluation de votre modèle est une étape importante avant de tenter de le convertir. Lors de l'évaluation, vous souhaitez déterminer si le contenu de votre modèle est compatible avec le format TensorFlow Lite. Vous devez également déterminer si votre modèle est adapté à une utilisation sur des appareils mobiles et périphériques en termes de taille des données utilisées par le modèle, de ses exigences de traitement matériel, ainsi que de la taille et de la complexité globales du modèle.

Pour de nombreux modèles, le convertisseur devrait fonctionner immédiatement. Cependant, la bibliothèque d'opérateurs intégrée TensorFlow Lite prend en charge un sous-ensemble d'opérateurs de base TensorFlow, ce qui signifie que certains modèles peuvent nécessiter des étapes supplémentaires avant la conversion vers TensorFlow Lite. De plus, certaines opérations prises en charge par TensorFlow Lite ont des exigences d'utilisation restreintes pour des raisons de performances. Consultez le guide de compatibilité des opérateurs pour déterminer si votre modèle doit être refactorisé pour la conversion.

Conversion de modèle

Le convertisseur TensorFlow Lite prend un modèle TensorFlow et génère un modèle TensorFlow Lite (un format FlatBuffer optimisé identifié par l'extension de fichier .tflite ). Vous pouvez charger un SavedModel ou convertir directement un modèle que vous créez en code.

Le convertisseur prend 3 drapeaux principaux (ou options) qui personnalisent la conversion pour votre modèle :

  1. Les indicateurs de compatibilité vous permettent de spécifier si la conversion doit autoriser les opérateurs personnalisés.
  2. Les drapeaux d'optimisation permettent de spécifier le type d'optimisation à appliquer lors de la conversion. La technique d'optimisation la plus couramment utilisée est la quantification post-formation .
  3. Les indicateurs de métadonnées vous permettent d'ajouter des métadonnées au modèle converti, ce qui facilite la création de code wrapper spécifique à la plate-forme lors du déploiement de modèles sur des appareils.

Vous pouvez convertir votre modèle à l'aide de l' API Python ou de l'outil de ligne de commande. Consultez le guide du modèle Convert TF pour obtenir des instructions étape par étape sur l'exécution du convertisseur sur votre modèle.

En règle générale, vous convertissez votre modèle pour l' environnement d'exécution standard de TensorFlow Lite ou l' environnement d'exécution des services Google Play pour TensorFlow Lite (bêta). Certains cas d'utilisation avancés nécessitent la personnalisation de l'environnement d'exécution du modèle, ce qui nécessite des étapes supplémentaires dans le processus de conversion. Consultez la section sur l' environnement d'exécution avancé de la présentation d'Android pour plus d'informations.

Conversion avancée

Si vous rencontrez des erreurs lors de l'exécution du convertisseur sur votre modèle, il est fort probable que vous ayez un problème de compatibilité avec l'opérateur. Toutes les opérations TensorFlow ne sont pas prises en charge par TensorFlow Lite. 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 modèle au format TensorFlow Lite modifié et un environnement d'exécution personnalisé pour ce modèle.

  • Consultez la présentation de la compatibilité des modèles pour plus d'informations sur les considérations de compatibilité des modèles TensorFlow et TensorFlow Lite.
  • Les rubriques de la vue d'ensemble de la compatibilité des modèles couvrent les techniques avancées de refactorisation de votre modèle, telles que le guide Sélectionner les opérateurs .
  • Pour la liste complète des opérations et des limitations, consultez la page TensorFlow Lite Ops .

Prochaines étapes

  • Consultez le guide de conversion des modèles TF pour commencer rapidement à convertir votre modèle.
  • Consultez la présentation de l' optimisation pour savoir comment optimiser votre modèle converti à l'aide de techniques telles que la quantification post-formation .
  • Consultez la vue d' ensemble de l'ajout de métadonnées pour savoir comment ajouter des métadonnées à vos modèles. Les métadonnées fournissent d'autres utilisations, une description de votre modèle ainsi que des informations pouvant être exploitées par les générateurs de code.
,

Les modèles de machine learning (ML) que vous utilisez avec TensorFlow Lite sont créés et entraînés à l'origine à l'aide des bibliothèques et des outils principaux de TensorFlow. Une fois que vous avez créé un modèle avec le noyau TensorFlow, vous pouvez le convertir en un format de modèle ML plus petit et plus efficace appelé modèle TensorFlow Lite. Cette section fournit des conseils pour convertir vos modèles TensorFlow au format de modèle TensorFlow Lite.

Processus de conversion

La conversion des modèles TensorFlow au format TensorFlow Lite peut emprunter plusieurs chemins en fonction du contenu de votre modèle ML. Comme 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 pris en charge par les environnements d'exécution TensorFlow Lite standard en fonction des opérations TensorFlow qu'il utilise. Si votre modèle utilise des opérations en dehors de l'ensemble pris en charge, vous avez la possibilité de refactoriser votre modèle ou d'utiliser des techniques de conversion avancées.

Le diagramme ci-dessous montre les étapes de haut niveau de la conversion d'un modèle.

Flux de travail de conversion TFLite

Figure 1. Workflow de conversion TensorFlow Lite.

Les sections suivantes décrivent le processus d'évaluation et de conversion des modèles à utiliser avec TensorFlow Lite.

Formats de modèle d'entrée

Vous pouvez utiliser le convertisseur avec les formats de modèle d'entrée suivants :

Vous pouvez enregistrer les modèles de fonctions Keras et concrets en tant que SavedModel et les convertir en utilisant le chemin recommandé.

Si vous avez un modèle Jax, vous pouvez utiliser l'API TFLiteConverter.experimental_from_jax pour le convertir au format TensorFlow Lite. Notez que cette API est susceptible d'être modifiée en mode expérimental.

Évaluation des conversions

L'évaluation de votre modèle est une étape importante avant de tenter de le convertir. Lors de l'évaluation, vous souhaitez déterminer si le contenu de votre modèle est compatible avec le format TensorFlow Lite. Vous devez également déterminer si votre modèle est adapté à une utilisation sur des appareils mobiles et périphériques en termes de taille des données utilisées par le modèle, de ses exigences de traitement matériel, ainsi que de la taille et de la complexité globales du modèle.

Pour de nombreux modèles, le convertisseur devrait fonctionner immédiatement. Cependant, la bibliothèque d'opérateurs intégrée TensorFlow Lite prend en charge un sous-ensemble d'opérateurs principaux TensorFlow, ce qui signifie que certains modèles peuvent nécessiter des étapes supplémentaires avant la conversion vers TensorFlow Lite. De plus, certaines opérations prises en charge par TensorFlow Lite ont des exigences d'utilisation restreintes pour des raisons de performances. Consultez le guide de compatibilité des opérateurs pour déterminer si votre modèle doit être refactorisé pour la conversion.

Conversion de modèle

Le convertisseur TensorFlow Lite prend un modèle TensorFlow et génère un modèle TensorFlow Lite (un format FlatBuffer optimisé identifié par l'extension de fichier .tflite ). Vous pouvez charger un SavedModel ou convertir directement un modèle que vous créez en code.

Le convertisseur prend 3 drapeaux principaux (ou options) qui personnalisent la conversion pour votre modèle :

  1. Les indicateurs de compatibilité vous permettent de spécifier si la conversion doit autoriser les opérateurs personnalisés.
  2. Les drapeaux d'optimisation permettent de spécifier le type d'optimisation à appliquer lors de la conversion. La technique d'optimisation la plus couramment utilisée est la quantification post-formation .
  3. Les indicateurs de métadonnées vous permettent d'ajouter des métadonnées au modèle converti, ce qui facilite la création de code wrapper spécifique à la plate-forme lors du déploiement de modèles sur des appareils.

Vous pouvez convertir votre modèle à l'aide de l' API Python ou de l'outil de ligne de commande. Consultez le guide du modèle Convert TF pour obtenir des instructions étape par étape sur l'exécution du convertisseur sur votre modèle.

En règle générale, vous convertissez votre modèle pour l' environnement d'exécution standard de TensorFlow Lite ou l' environnement d'exécution des services Google Play pour TensorFlow Lite (bêta). Certains cas d'utilisation avancés nécessitent la personnalisation de l'environnement d'exécution du modèle, ce qui nécessite des étapes supplémentaires dans le processus de conversion. Consultez la section sur l' environnement d'exécution avancé de la présentation d'Android pour plus d'informations.

Conversion avancée

Si vous rencontrez des erreurs lors de l'exécution du convertisseur sur votre modèle, il est fort probable que vous ayez un problème de compatibilité avec l'opérateur. Toutes les opérations TensorFlow ne sont pas prises en charge par TensorFlow Lite. 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 modèle au format TensorFlow Lite modifié et un environnement d'exécution personnalisé pour ce modèle.

  • Consultez la présentation de la compatibilité des modèles pour plus d'informations sur les considérations de compatibilité des modèles TensorFlow et TensorFlow Lite.
  • Les rubriques de la vue d'ensemble de la compatibilité des modèles couvrent les techniques avancées de refactorisation de votre modèle, telles que le guide Sélectionner les opérateurs .
  • Pour la liste complète des opérations et des limitations, consultez la page TensorFlow Lite Ops .

Prochaines étapes

  • Consultez le guide de conversion des modèles TF pour commencer rapidement à convertir votre modèle.
  • Consultez la présentation de l' optimisation pour savoir comment optimiser votre modèle converti à l'aide de techniques telles que la quantification post-formation .
  • Consultez la vue d' ensemble de l'ajout de métadonnées pour savoir comment ajouter des métadonnées à vos modèles. Les métadonnées fournissent d'autres utilisations, une description de votre modèle ainsi que des informations pouvant être exploitées par les générateurs de code.