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 :

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

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.

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.



Créé le 2024-03-01, Mis à jour le 2024-03-03
Auteurs : glenn-jocher (1), abirami-vina (2)

Commentaires