YOLOv8 Exportation du modèle 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 plates-formes dont le support Python est limité, nécessite une solution flexible et portable. TorchScript met l'accent sur la portabilité et la capacité d'exécuter des modèles dans des environnements où l'ensemble du cadre Python n'est pas disponible. Il est donc idéal pour les scénarios dans lesquels tu dois déployer tes capacités de vision par ordinateur sur différents appareils ou plates-formes.
Exporte vers Torchscript pour sérialiser tes modèles Ultralytics YOLOv8 pour une compatibilité multiplateforme et un déploiement simplifié. Dans ce guide, nous allons te montrer comment exporter tes modèles YOLOv8 au format TorchScript , ce qui te permettra de les utiliser plus facilement dans un plus grand nombre d'applications.
Pourquoi exporter vers TorchScript?
Développé par les créateurs de PyTorch, TorchScript est un outil puissant pour optimiser et déployer les modèles PyTorch sur une variété de plateformes. L'exportation des modèles YOLOv8 vers TorchScript est essentiel pour passer de la recherche aux applications du monde réel. TorchScript L'utilisation de PyTorch , qui fait partie du cadre PyTorch , facilite cette transition en permettant aux modèles d'être utilisés dans des environnements qui ne prennent pas en charge Python.
Le processus fait appel à deux techniques : le traçage et la création de scripts. Le traçage enregistre les opérations pendant l'exécution du modèle, tandis que la création de scripts permet de définir des modèles à l'aide d'un sous-ensemble de Python. Ces techniques garantissent que les modèles tels que YOLOv8 peuvent toujours opérer leur magie, même en dehors de leur environnement habituel Python .
TorchScript Les modèles peuvent également être optimisés grâce à des techniques telles que la fusion d'opérateurs et le raffinement de l'utilisation de la mémoire, ce qui garantit une exécution efficace. Un autre avantage de l'exportation vers TorchScript est qu'elle permet d'accélérer l'exécution du modèle sur diverses plates-formes matérielles. Elle crée une représentation autonome et prête à la production de ton 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.
Caractéristiques principales des modèles TorchScript
TorchScript, un élément clé de l'écosystème PyTorch , offre de puissantes fonctionnalités pour optimiser et déployer des modèles d'apprentissage profond.
Voici les principales caractéristiques qui font de TorchScript un outil précieux pour les développeurs :
-
Exécution graphique statique: TorchScript utilise une représentation graphique statique du calcul du modèle, ce qui est différent de l'exécution graphique dynamique de PyTorch. Dans l'exécution statique du graphe, le graphe de calcul est défini et compilé une fois avant l'exécution réelle, ce qui permet d'améliorer les performances pendant l'inférence.
-
Sérialisation des modèles: TorchScript te permet de sérialiser les modèles PyTorch dans un format indépendant de la plate-forme. Les modèles sérialisés peuvent être chargés sans nécessiter le code original Python , ce qui permet de les déployer 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, ce qui permet une exécution efficace sur les appareils cibles.
-
Intégration inter-langues: Avec TorchScript, tu peux exporter les 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 d'autres langages.
-
Conversion progressive: TorchScript propose une approche de conversion progressive, te permettant de convertir incrémentalement des parties de ton modèle PyTorch en TorchScript. Cette flexibilité est particulièrement utile lorsqu'il s'agit de modèles complexes ou lorsque tu veux optimiser des parties spécifiques du code.
Options de déploiement dans TorchScript
Avant d'examiner le code permettant d'exporter les modèles YOLOv8 au format TorchScript , comprenons où les modèles TorchScript sont normalement utilisés.
TorchScript offre diverses options de déploiement pour les modèles d'apprentissage automatique, telles que :
-
API C++: Le cas d'utilisation le plus courant de TorchScript est son API C++, qui te permet de charger et d'exécuter des modèles TorchScript optimisés directement dans des applications C++. C'est l'idéal pour les environnements de production où Python n'est pas forcément adapté ou disponible. L'API C++ offre une exécution efficace et peu coûteuse 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 runtime pour l'exécution de ces modèles dans les applications iOS et Android. Cela permet des capacités d'inférence hors ligne à faible latence, améliorant ainsi l'expérience de l'utilisateur et la confidentialité des données.
-
Déploiement dans le nuage: les modèles TorchScript peuvent être déployés sur des serveurs basés dans le nuage à l'aide de solutions telles que TorchServe. Cette solution offre des fonctionnalités telles que le versionnement des modèles, la mise en lots et la surveillance des métriques pour un déploiement évolutif dans les environnements de production. Le déploiement dans le nuage avec TorchScript peut rendre tes modèles accessibles via des API ou d'autres services Web.
Exporter vers TorchScript: Conversion de ton modèle YOLOv8
L'exportation des modèles YOLOv8 vers TorchScript facilite leur utilisation à différents endroits et les aide à s'exécuter plus rapidement et plus efficacement. C'est génial pour tous ceux qui cherchent à utiliser les modèles d'apprentissage profond plus efficacement dans les applications du monde réel.
Installation
Pour installer le paquetage requis, exécute :
Pour des instructions détaillées et les meilleures pratiques liées au processus d'installation, consulte notre guide d'installationUltralytics . Pendant l'installation des paquets requis pour YOLOv8, si tu rencontres des difficultés, consulte notre guide des problèmes courants pour trouver des solutions et des conseils.
Utilisation
Avant de plonger dans les instructions d'utilisation, il est important de noter que si tous les modèlesUltralytics YOLOv8 sont disponibles pour l'exportation, tu peux t'assurer que le modèle que tu as choisi prend en charge la fonctionnalité d'exportation ici.
Utilisation
from ultralytics import YOLO
# Load the YOLOv8 model
model = YOLO('yolov8n.pt')
# Export the model to TorchScript format
model.export(format='torchscript') # creates 'yolov8n.torchscript'
# Load the exported TorchScript model
torchscript_model = YOLO('yolov8n.torchscript')
# Run inference
results = torchscript_model('https://ultralytics.com/images/bus.jpg')
Pour plus de détails sur le processus d'exportation, visite la page de documentationUltralytics sur l'exportation.
Déploiement des modèles exportés YOLOv8 TorchScript
Après avoir exporté avec succès tes modèles Ultralytics YOLOv8 au format TorchScript , tu peux maintenant les déployer. La première étape 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 précédent. Cependant, pour obtenir des instructions détaillées sur le déploiement de tes modèles TorchScript dans d'autres contextes, jette un coup d'œil aux ressources suivantes :
-
Explorer le déploiement mobile: La documentation mobile PyTorch fournit des directives complètes pour le déploiement des modèles sur les appareils mobiles, ce qui garantit l'efficacité et la réactivité de tes applications.
-
Déploiement principal côté serveur: Apprends à déployer des modèles côté serveur avec TorchServe, qui propose un tutoriel étape par étape pour un service de modèles évolutif et efficace.
-
Implémenter le déploiement de C++: Plonge dans le tutoriel sur le chargement d'un modèle TorchScript en C++, facilitant l'intégration de tes modèles TorchScript dans les applications C++ pour une performance et une polyvalence accrues.
Résumé
Dans ce guide, nous avons exploré le processus d'exportation des modèles Ultralytics YOLOv8 vers le format TorchScript . En suivant les instructions fournies, tu peux optimiser les performances des modèles YOLOv8 et gagner en souplesse pour les déployer sur différentes plateformes et dans différents environnements.
Pour plus de détails sur l'utilisation, consulte la documentation officielle deTorchScript.
De plus, si tu veux en savoir plus sur d'autres intégrations de Ultralytics YOLOv8 , visite notre page de guide d'intégration. Tu y trouveras de nombreuses ressources et informations utiles.