Skip to content

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?

Torchscript Vue d'ensemble

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 Script et trace

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.

TorchScript Caractéristiques

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

  • Static Graph Execution: TorchScript uses a static graph representation of the model's computation, which is different from PyTorch's dynamic graph execution. In static graph execution, the computational graph is defined and compiled once before the actual execution, resulting in improved performance during inference.

  • 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.

  • JIT Compilation: TorchScript uses Just-In-Time (JIT) compilation to convert PyTorch models into an optimized intermediate representation. JIT compiles the model's computational graph, enabling efficient execution on target devices.

  • 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

Before we look at the code for exporting YOLOv8 models to the TorchScript format, let's understand where TorchScript models are normally used.

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 :

Installation

# Install the required package for YOLOv8
pip install ultralytics

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")
# Export a YOLOv8n PyTorch model to TorchScript format
yolo export model=yolov8n.pt format=torchscript  # creates 'yolov8n.torchscript'

# Run inference with the exported model
yolo predict model=yolov8n.torchscript source='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.

For further details on usage, visit TorchScript's official documentation.

Also, if you'd like to know more about other Ultralytics YOLOv8 integrations, visit our integration guide page. You'll find plenty of useful resources and insights there.



Created 2024-03-01, Updated 2024-06-10
Authors: glenn-jocher (5), abirami-vina (2)

Commentaires