Passer au contenu

Exportation du modèle YOLO11 vers TorchScript pour un déploiement rapide

Le déploiement de modèles de vision par ordinateur dans différents environnements, y compris les systèmes embarqués, les navigateurs Web ou les plateformes avec une prise en charge limitée de python, nécessite une solution flexible et portable. TorchScript se concentre sur la portabilité et la capacité d'exécuter des modèles dans des environnements où l'ensemble du framework python n'est pas disponible. Cela le rend idéal pour les scénarios où vous devez déployer vos capacités de vision par ordinateur sur divers appareils ou plateformes.

Exporter vers Torchscript pour sérialiser vos modèles Ultralytics YOLO11 pour une compatibilité multiplateforme et un déploiement simplifié. Dans ce guide, nous allons vous montrer comment exporter vos modèles YOLO11 au format TorchScript, ce qui vous permettra de les utiliser plus facilement dans un plus large éventail d'applications.

Pourquoi exporter vers TorchScript ?

Présentation de Torchscript

Développé par les créateurs de PyTorch, TorchScript est un outil puissant pour optimiser et déployer des modèles PyTorch sur diverses plateformes. L'exportation des modèles YOLO11 vers TorchScript est essentielle pour passer de la recherche aux applications du monde réel. TorchScript, qui fait partie du framework PyTorch, contribue à faciliter cette transition en permettant d'utiliser les modèles PyTorch dans des environnements qui ne prennent pas en charge python.

Le processus implique deux techniques : le traçage et le scripting. Le traçage enregistre les opérations pendant l'exécution du modèle, tandis que le scripting permet de définir des modèles à l'aide d'un sous-ensemble de python. Ces techniques garantissent que les modèles comme YOLO11 peuvent toujours opérer leur magie même en dehors de leur environnement python habituel.

Script et traçage TorchScript

Les modèles TorchScript peuvent également être optimisés grâce à des techniques telles que la fusion d'opérateurs et l'amélioration de l'utilisation de la mémoire, garantissant ainsi une exécution efficace. Un autre avantage de l'exportation vers TorchScript est son potentiel d'accélérer l'exécution du modèle sur diverses plateformes matérielles. Il crée une représentation autonome et prête à la production de votre modèle PyTorch qui peut être intégrée dans des environnements C++, des systèmes embarqués ou déployée dans des applications web ou mobiles.

Principales caractéristiques des modèles TorchScript

TorchScript, un élément clé de l'écosystème PyTorch, fournit des fonctionnalités puissantes pour l'optimisation et le déploiement de modèles de deep learning.

Fonctionnalités de TorchScript

Voici les principales caractéristiques qui font de TorchScript un outil précieux pour les développeurs :

  • Exécution de graphe statique : TorchScript utilise une représentation de graphe statique du calcul du modèle, ce qui est différent de l'exécution de graphe dynamique de PyTorch. Dans l'exécution de graphe statique, le graphe de calcul est défini et compilé une fois avant l'exécution réelle, ce qui améliore les performances pendant l'inférence.

  • Sérialisation de modèle : TorchScript vous permet de sérialiser les modèles PyTorch dans un format indépendant de la plateforme. Les modèles sérialisés peuvent être chargés sans nécessiter le code Python d’origine, ce qui permet le déploiement dans différents environnements d’exécution.

  • Compilation JIT : TorchScript utilise la compilation Just-In-Time (JIT) pour convertir les modèles PyTorch en une représentation intermédiaire optimisée. JIT compile le graphe de calcul du modèle, permettant une exécution efficace sur les appareils cibles.

  • Intégration inter-langages : Avec TorchScript, vous pouvez exporter des modèles PyTorch vers d’autres langages tels que C++, Java et JavaScript. Cela facilite l’intégration des modèles PyTorch dans les systèmes logiciels existants écrits dans différents langages.

  • Conversion progressive : TorchScript fournit une approche de conversion progressive, vous permettant de convertir progressivement des parties de votre modèle PyTorch en TorchScript. Cette flexibilité est particulièrement utile lorsque vous travaillez avec des modèles complexes ou lorsque vous souhaitez optimiser des portions spécifiques du code.

Options de déploiement dans TorchScript

Avant d'examiner le code d'exportation des modèles YOLO11 au format TorchScript, comprenons où les modèles TorchScript sont normalement utilisés.

TorchScript offre diverses options de déploiement pour les modèles de machine learning, telles que :

  • API C++ : Le cas d'utilisation le plus courant pour TorchScript est son API C++, qui vous permet de charger et d'exécuter des modèles TorchScript optimisés directement dans les applications C++. Ceci est idéal pour les environnements de production où python peut ne pas être approprié ou disponible. L'API C++ offre une exécution à faible surcharge et efficace des modèles TorchScript, maximisant ainsi le potentiel de performance.

  • Déploiement mobile: TorchScript offre des outils pour convertir les modèles en formats facilement déployables sur les appareils mobiles. PyTorch Mobile fournit un environnement d'exécution pour exécuter ces modèles dans les applications iOS et Android. Cela permet des capacités d'inférence hors ligne à faible latence, améliorant l'expérience utilisateur et la confidentialité des données.

  • Déploiement dans le cloud: Les modèles TorchScript peuvent être déployés sur des serveurs basés sur le cloud à l'aide de solutions telles que TorchServe. Il fournit des fonctionnalités telles que le versionnage des modèles, le traitement par lots et la surveillance des métriques pour un déploiement évolutif dans les environnements de production. Le déploiement dans le cloud avec TorchScript peut rendre vos modèles accessibles via des API ou d'autres services web.

Exporter vers TorchScript : Conversion de votre modèle YOLO11

L'exportation des modèles YOLO11 vers TorchScript facilite leur utilisation à différents endroits et les aide à fonctionner plus rapidement et plus efficacement. C'est parfait pour tous ceux qui cherchent à utiliser plus efficacement les modèles d'apprentissage profond dans des applications du monde réel.

Installation

Pour installer le paquet requis, exécutez :

Installation

# Install the required package for YOLO11
pip install ultralytics

Pour 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 packages requis pour YOLO11, consultez notre guide des problèmes courants pour obtenir des solutions et des conseils.

Utilisation

Tous les modèles Ultralytics YOLO11 sont conçus pour prendre en charge l’exportation prête à l’emploi, ce qui facilite leur intégration à votre flux de travail de déploiement préféré. Vous pouvez consulter la liste complète des formats d’exportation et des options de configuration pris en charge pour choisir la meilleure configuration pour votre application.

Utilisation

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo11n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")

# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'

# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'

Arguments d'exportation

Argument Type Par défaut Description
format str 'torchscript' 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 les images carrées ou un tuple (height, width) pour des dimensions spécifiques.
dynamic bool False Permet des tailles d'entrée dynamiques, améliorant la flexibilité dans la gestion des différentes dimensions d'image.
optimize bool False Applique une optimisation pour les appareils mobiles, ce qui peut réduire la taille du modèle et améliorer les performances.
nms bool False Ajoute la suppression non maximale (NMS), essentielle pour un post-traitement de détection précis et efficace.
batch int 1 Spécifie la taille du lot d'inférence du modèle d'exportation ou le nombre maximal d'images que le modèle exporté traitera simultanément en predict mode.
device str None Spécifie le dispositif pour l'exportation : GPU (device=0), CPU (device=cpu), MPS pour Apple Silicon (device=mps).

Pour plus de détails sur le processus d'exportation, consultez la page de la documentation Ultralytics sur l'exportation.

Déploiement de modèles YOLO11 TorchScript exportés

Après avoir exporté avec succès vos modèles Ultralytics YOLO11 au format TorchScript, vous pouvez maintenant les déployer. La première étape principale et recommandée pour exécuter un modèle TorchScript est d'utiliser la méthode YOLO("model.torchscript"), comme indiqué dans l'extrait de code d'utilisation précédent. Cependant, pour des instructions détaillées sur le déploiement de vos modèles TorchScript dans divers autres contextes, consultez les ressources suivantes :

  • Explorer le déploiement mobile : La documentation PyTorch Mobile fournit des directives complètes pour le déploiement de modèles sur des appareils mobiles, garantissant ainsi l'efficacité et la réactivité de vos applications.

  • Déploiement maître côté serveur : Apprenez à déployer des modèles côté serveur avec TorchServe, grâce à un tutoriel étape par étape pour un service de modèles évolutif et efficace.

  • Implémenter le déploiement C++ : Plongez dans le tutoriel sur le chargement d'un modèle TorchScript en C++, facilitant l'intégration de vos modèles TorchScript dans des applications C++ pour des performances et une polyvalence améliorées.

Résumé

Dans ce guide, nous avons exploré le processus d'exportation des modèles Ultralytics YOLO11 au format TorchScript. En suivant les instructions fournies, vous pouvez optimiser les modèles YOLO11 pour améliorer leurs performances et bénéficier de la flexibilité nécessaire pour les déployer sur diverses plateformes et dans différents environnements.

Pour plus de détails sur l'utilisation, consultez la documentation officielle de TorchScript.

De plus, si vous souhaitez en savoir plus sur les autres intégrations Ultralytics YOLO11, consultez notre page de guide d'intégration. Vous y trouverez de nombreuses ressources et informations utiles.

FAQ

Qu'est-ce que l'exportation du modèle Ultralytics YOLO11 vers TorchScript ?

L'exportation d'un modèle Ultralytics YOLO11 vers TorchScript permet un déploiement flexible et multiplateforme. TorchScript, qui fait partie de l'écosystème PyTorch, facilite la sérialisation des modèles, qui peuvent ensuite être exécutés dans des environnements dépourvus de prise en charge de python. Cela le rend idéal pour le déploiement de modèles sur des systèmes embarqués, des environnements C++, des applications mobiles et même des navigateurs Web. L'exportation vers TorchScript permet d'obtenir des performances efficaces et une plus grande applicabilité de vos modèles YOLO11 sur diverses plateformes.

Comment puis-je exporter mon modèle YOLO11 vers TorchScript en utilisant Ultralytics ?

Pour exporter un modèle YOLO11 vers TorchScript, vous pouvez utiliser l’exemple de code suivant :

Utilisation

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo11n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")

# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'

# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'

Pour plus de détails sur le processus d'exportation, consultez la documentation Ultralytics sur l'exportation.

Pourquoi devrais-je utiliser TorchScript pour déployer les modèles YOLO11 ?

L'utilisation de TorchScript pour déployer des modèles YOLO11 offre plusieurs avantages :

  • Portabilité : Les modèles exportés peuvent s'exécuter dans des environnements sans nécessiter Python, tels que les applications C++, les systèmes embarqués ou les appareils mobiles.
  • Optimisation : TorchScript prend en charge l'exécution de graphes statiques et la compilation Just-In-Time (JIT), ce qui peut optimiser les performances du modèle.
  • Intégration inter-langages : Les modèles TorchScript peuvent être intégrés à d’autres langages de programmation, ce qui améliore la flexibilité et l’extensibilité.
  • Sérialisation : Les modèles peuvent être sérialisés, ce qui permet un chargement et une inférence indépendants de la plateforme.

Pour plus d'informations sur le déploiement, consultez la documentation de PyTorch Mobile, la documentation de TorchServe et le Guide de déploiement C++.

Quelles sont les étapes d'installation pour exporter les modèles YOLO11 vers TorchScript ?

Pour installer le package requis pour exporter les modèles YOLO11, utilisez la commande suivante :

Installation

# Install the required package for YOLO11
pip install ultralytics

Pour des instructions détaillées, consultez le guide d'installation Ultralytics. En cas de problème lors de l'installation, consultez le guide des problèmes courants.

Comment déployer mes modèles TorchScript YOLO11 exportés ?

Après avoir exporté les modèles YOLO11 au format TorchScript, vous pouvez les déployer sur diverses plateformes :

  • API C++ : Idéale pour les environnements de production à faible surcharge et à haute efficacité.
  • Déploiement mobile: Utilisez PyTorch Mobile pour les applications iOS et Android.
  • Déploiement dans le cloud: Utilisez des services tels que TorchServe pour un déploiement côté serveur évolutif.

Explorez des directives complètes pour déployer des modèles dans ces environnements afin de tirer pleinement parti des capacités de TorchScript.



📅 Créé il y a 1 an ✏️ Mis à jour il y a 21 jours

Commentaires