Comprends comment exporter vers le format TF SavedModel depuis YOLO26#
Déployer des modèles de machine learning peut s'avérer complexe. Cependant, l'utilisation d'un format de modèle efficace et flexible peut te simplifier la tâche. TF SavedModel est un framework de machine learning open-source utilisé par TensorFlow pour charger des modèles de machine learning de manière cohérente. C'est en quelque sorte une valise pour les modèles TensorFlow, ce qui les rend faciles à transporter et à utiliser sur différents appareils et systèmes.
Apprendre à exporter des modèles Ultralytics YOLO26 vers TF SavedModel peut t'aider à déployer facilement tes modèles sur différentes plateformes et environnements. Dans ce guide, nous allons voir comment convertir tes modèles au format TF SavedModel, simplifiant ainsi le processus d'exécution des inférences avec tes modèles sur divers appareils.
Pourquoi devrais-tu exporter vers TF SavedModel ?#
Le format TensorFlow SavedModel fait partie de l'écosystème TensorFlow développé par Google, comme illustré ci-dessous. Il est conçu pour sauvegarder et sérialiser les modèles TensorFlow de manière transparente. Il encapsule les détails complets des modèles tels que l'architecture, les poids et même les informations de compilation. Cela rend le partage, le déploiement et la poursuite de l'entraînement dans différents environnements simples et directs.
Le format TF SavedModel présente un avantage majeur : sa compatibilité. Il fonctionne parfaitement avec TensorFlow Serving, LiteRT (anciennement TensorFlow Lite) et TensorFlow.js. Cette compatibilité facilite le partage et le déploiement de modèles sur diverses plateformes, y compris les applications web et mobiles. Le format TF SavedModel est utile tant pour la recherche que pour la production. Il offre une méthode unifiée pour gérer tes modèles, garantissant qu'ils sont prêts pour n'importe quelle application.
Fonctionnalités clés de TF SavedModels#
Voici les fonctionnalités clés qui font de TF SavedModel une excellente option pour les développeurs IA :
-
Portabilité : TF SavedModel fournit un format de sérialisation hermétique, récupérable et indépendant du langage. Ils permettent aux systèmes et outils de plus haut niveau de produire, consommer et transformer des modèles TensorFlow. Les SavedModels peuvent être facilement partagés et déployés sur différents systèmes et environnements.
-
Facilité de déploiement : TF SavedModel regroupe le graphe de calcul, les paramètres entraînés et les métadonnées nécessaires en un seul paquet. Ils peuvent être facilement chargés et utilisés pour l'inférence sans nécessiter le code original qui a construit le modèle. Cela rend le déploiement des modèles TensorFlow simple et efficace dans divers environnements de production.
-
Gestion des actifs : TF SavedModel prend en charge l'inclusion d'actifs externes tels que des vocabulaires, des embeddings ou des tables de correspondance. Ces actifs sont stockés aux côtés de la définition du graphe et des variables, ce qui garantit qu'ils sont disponibles lors du chargement du modèle. Cette fonctionnalité simplifie la gestion et la distribution des modèles qui dépendent de ressources externes.
Options de déploiement avec TF SavedModel#
Avant de plonger dans le processus d'exportation des modèles YOLO26 vers le format TF SavedModel, explorons quelques scénarios de déploiement typiques où ce format est utilisé.
TF SavedModel fournit une gamme d'options pour déployer tes modèles de machine learning :
-
TensorFlow Serving : TensorFlow Serving est un système de service flexible et haute performance conçu pour les environnements de production. Il prend en charge nativement les modèles TF SavedModels, ce qui facilite le déploiement et le service de tes modèles sur des plateformes cloud, des serveurs sur site ou des appareils de périphérie (edge devices).
-
Plateformes Cloud : Les principaux fournisseurs de cloud tels que Google Cloud Platform (GCP), Amazon Web Services (AWS) et Microsoft Azure proposent des services pour déployer et exécuter des modèles TensorFlow, y compris les TF SavedModels. Ces services fournissent une infrastructure évolutive et gérée, te permettant de déployer et de mettre à l'échelle tes modèles facilement.
-
Appareils mobiles et embarqués : LiteRT (anciennement TensorFlow Lite), une solution légère pour exécuter des modèles de machine learning sur des appareils mobiles, embarqués et IoT, prend en charge la conversion des TF SavedModels au format LiteRT. Cela te permet de déployer tes modèles sur un large éventail d'appareils, des smartphones et tablettes aux microcontrôleurs et appareils de périphérie.
-
TensorFlow Runtime : TensorFlow Runtime (
tfrt) est un moteur d'exécution haute performance pour exécuter des graphes TensorFlow. Il fournit des API de plus bas niveau pour charger et exécuter des TF SavedModels dans des environnements C++. TensorFlow Runtime offre de meilleures performances par rapport au runtime TensorFlow standard. Il est adapté aux scénarios de déploiement qui nécessitent une inférence à faible latence et une intégration étroite avec des bases de code C++ existantes.
Tâches prises en charge#
L'exportation TF SavedModel prend en charge les sept tâches d'Ultralytics. La segmentation sémantique et l'estimation de la profondeur ne sont disponibles qu'avec YOLO26, la seule famille qui intègre ces têtes.
Exporter des modèles YOLO26 vers TF SavedModel#
En exportant les modèles YOLO26 vers le format TF SavedModel, tu améliores leur adaptabilité et la facilité de déploiement sur diverses plateformes.
Installation#
Pour installer le package requis, exécute :
# Install the required package for YOLO26
pip install ultralyticsPour des instructions détaillées et les meilleures pratiques relatives au processus d'installation, consultez notre guide d'installation Ultralytics. Si vous rencontrez des difficultés lors de l'installation des paquets requis pour YOLO26, consultez notre guide des problèmes courants pour trouver des solutions et des conseils.
Utilisation#
Tous les modèles Ultralytics YOLO26 sont conçus pour prendre en charge l'exportation dès leur sortie de la boîte, ce qui facilite leur intégration dans ton flux de travail de déploiement préféré. Tu peux consulter la liste complète des formats d'exportation pris en charge et des options de configuration pour choisir la meilleure configuration pour ton application.
Le format TF SavedModel prend en charge les modes Export, Predict et Validate. Exporte ton modèle, puis charge le modèle exporté pour exécuter une inférence ou valider sa précision.
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo26n_saved_model'from ultralytics import YOLO
# Load the exported TF SavedModel model
model = YOLO("./yolo26n_saved_model")
# Run inference
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# Load the exported TF SavedModel model
model = YOLO("./yolo26n_saved_model")
# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")Arguments d'exportation#
| Argument | Type | Défaut | Description |
|---|---|---|---|
format | str | 'saved_model' | Format cible pour le modèle exporté, définissant la compatibilité avec divers environnements de déploiement. |
imgsz | int ou tuple | 640 | Taille d'image souhaitée pour l'entrée du modèle. Peut être un entier pour des images carrées ou un tuple (height, width) pour des dimensions spécifiques. |
keras | bool | False | Active l'exportation vers le format Keras, offrant une compatibilité avec TensorFlow serving et les API. |
quantize | int ou str | None | Précision de quantification : 8 (INT8/PTQ ; nécessite un étalonnage data/fraction) ou 32/non défini (FP32). Le format FP16 n'est pas pris en charge pour l'exportation SavedModel. Remplace l'indicateur obsolète int8. |
opset | int | None | Spécifie la version de l'opset ONNX pour le graphe ONNX intermédiaire. Si elle n'est pas définie, la dernière version prise en charge est utilisée. |
nms | bool | False | Ajoute le NMS (Non-Maximum Suppression), essentiel pour un post-traitement de détection précis et efficace. |
batch | int | 1 | Spécifie la taille d'inférence par batch du modèle exporté ou le nombre maximal d'images que le modèle exporté traitera simultanément en mode predict. |
data | str | None | Chemin d'accès au fichier YAML du dataset, essentiel pour la quantification ; la classification prend à la place un répertoire de dataset ou un nom de dataset intégré. S'il est omis avec quantize=8, Ultralytics sélectionne le dataset de calibration par défaut pour la tâche du modèle. |
fraction | float | 1.0 | Spécifie la fraction du jeu de données à utiliser pour le calibrage de la quantification INT8. Permet le calibrage sur un sous-ensemble du jeu de données complet, utile pour des expériences ou lorsque les ressources sont limitées. S'il n'est pas spécifié avec INT8 activé, le jeu de données complet sera utilisé. |
device | str | None | Spécifie l'appareil pour l'exportation : CPU (device=cpu), MPS pour Apple silicon (device=mps). |
Pour plus de détails sur le processus d'exportation, visite la page de documentation d'Ultralytics sur l'exportation.
Déployer des modèles YOLO26 TF SavedModel exportés#
Maintenant que tu as exporté ton modèle YOLO26 au format TF SavedModel, l'étape suivante consiste à le déployer. La première étape principale et recommandée pour exécuter un modèle TF SavedModel est d'utiliser la méthode YOLO("yolo26n_saved_model/"), comme indiqué précédemment dans l'extrait de code d'utilisation.
Cependant, pour des instructions approfondies sur le déploiement de tes modèles TF SavedModel, jette un œil aux ressources suivantes :
-
TensorFlow Serving : Voici la documentation développeur expliquant comment déployer tes modèles TF SavedModel à l'aide de TensorFlow Serving.
-
Exécuter un modèle TensorFlow SavedModel dans Node.js : Un article de blog TensorFlow sur l'exécution d'un modèle TensorFlow SavedModel dans Node.js directement et sans conversion.
-
Déploiement sur le Cloud : Un article de blog TensorFlow sur le déploiement d'un modèle TensorFlow SavedModel sur la plateforme Cloud AI.
Résumé#
Dans ce guide, nous avons exploré comment exporter des modèles Ultralytics YOLO26 vers le format TF SavedModel. En exportant vers TF SavedModel, tu gagnes la flexibilité d'optimiser, déployer et mettre à l'échelle tes modèles YOLO26 sur une large gamme de plateformes.
Pour plus de détails sur l'utilisation, consulte la documentation officielle de TF SavedModel.
Pour plus d'informations sur l'intégration d'Ultralytics YOLO26 avec d'autres plateformes et frameworks, n'oublie pas de consulter notre page de guide d'intégration. Elle regorge d'excellentes ressources pour t'aider à tirer le meilleur parti de YOLO26 dans tes projets.
FAQ#
Comment puis-je exporter un modèle Ultralytics YOLO vers le format TensorFlow SavedModel ?#
Exporter un modèle Ultralytics YOLO vers le format TensorFlow SavedModel est simple. Tu peux utiliser soit Python, soit la CLI pour y parvenir :
from ultralytics import YOLO
# Load a YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TF SavedModel format
model.export(format="saved_model") # creates '/yolo26n_saved_model'
# Load the exported TF SavedModel for inference
tf_savedmodel_model = YOLO("./yolo26n_saved_model")
results = tf_savedmodel_model("https://ultralytics.com/images/bus.jpg")Consulte la documentation d'exportation d'Ultralytics pour plus de détails.
Pourquoi devrais-je utiliser le format TensorFlow SavedModel ?#
Le format TensorFlow SavedModel offre plusieurs avantages pour le déploiement de modèles :
- Portabilité : Il fournit un format indépendant du langage, facilitant le partage et le déploiement de modèles dans différents environnements.
- Compatibilité : S'intègre de manière transparente avec des outils tels que TensorFlow Serving, LiteRT et TensorFlow.js, qui sont essentiels pour déployer des modèles sur diverses plateformes, y compris les applications web et mobiles.
- Encapsulation complète : Encode l'architecture du modèle, les poids et les informations de compilation, permettant un partage simple et une poursuite de l'entraînement.
Pour découvrir d'autres avantages et options de déploiement, consulte les options de déploiement des modèles YOLO d'Ultralytics.
Quels sont les scénarios de déploiement typiques pour TF SavedModel ?#
TF SavedModel peut être déployé dans divers environnements, notamment :
- TensorFlow Serving : Idéal pour les environnements de production nécessitant un service de modèle évolutif et haute performance.
- Plateformes Cloud : Prend en charge les principaux services cloud comme Google Cloud Platform (GCP), Amazon Web Services (AWS) et Microsoft Azure pour un déploiement de modèle évolutif.
- Appareils mobiles et embarqués : L'utilisation de LiteRT (anciennement TensorFlow Lite) pour convertir les modèles TF SavedModels permet un déploiement sur des appareils mobiles, des appareils IoT et des microcontrôleurs.
- TensorFlow Runtime : Pour les environnements C++ ayant besoin d'une inférence à faible latence avec de meilleures performances.
Pour des options de déploiement détaillées, consulte les guides officiels sur le déploiement de modèles TensorFlow.
Comment puis-je installer les packages nécessaires pour exporter des modèles YOLO26 ?#
Pour exporter des modèles YOLO26, tu dois installer le paquet ultralytics. Exécute la commande suivante dans ton terminal :
pip install ultralyticsPour des instructions d'installation plus détaillées et les meilleures pratiques, réfère-toi à notre guide d'installation d'Ultralytics. Si tu rencontres des problèmes, consulte notre guide des problèmes courants.
Quelles sont les fonctionnalités clés du format TensorFlow SavedModel ?#
Le format TF SavedModel est bénéfique pour les développeurs IA en raison des fonctionnalités suivantes :
- Portabilité : Permet le partage et le déploiement dans divers environnements sans effort.
- Facilité de déploiement : Encapsule le graphe de calcul, les paramètres entraînés et les métadonnées dans un seul paquet, ce qui simplifie le chargement et l'inférence.
- Gestion des actifs : Prend en charge des actifs externes comme des vocabulaires, garantissant qu'ils sont disponibles au chargement du modèle.
Pour plus de détails, explore la documentation officielle de TensorFlow.