Zum Inhalt springen

YOLOv8 Modellexport nach TorchScript für schnellen Einsatz

Der Einsatz von Computer-Vision-Modellen in verschiedenen Umgebungen, einschließlich eingebetteter Systeme, Webbrowser oder Plattformen mit eingeschränkter Python Unterstützung, erfordert eine flexible und portable Lösung. TorchScript konzentriert sich auf die Portabilität und die Fähigkeit, Modelle in Umgebungen auszuführen, in denen das gesamte Python Framework nicht verfügbar ist. Das macht es ideal für Szenarien, in denen du deine Computer Vision Fähigkeiten auf verschiedenen Geräten oder Plattformen einsetzen musst.

Exportiere nach Torchscript , um deine Modelle zu serialisieren Ultralytics YOLOv8 Modelle zu serialisieren, um plattformübergreifende Kompatibilität und eine optimierte Bereitstellung zu gewährleisten. In diesem Leitfaden zeigen wir dir, wie du deine YOLOv8 Modelle in das Format TorchScript exportierst, damit du sie in einer größeren Anzahl von Anwendungen verwenden kannst.

Warum solltest du auf TorchScript exportieren?

Torchscript Übersicht

TorchScript wurde von den Machern von PyTorch entwickelt und ist ein leistungsfähiges Werkzeug zur Optimierung und zum Einsatz von PyTorch Modellen auf einer Vielzahl von Plattformen. Der Export von YOLOv8 Modellen nach TorchScript ist entscheidend für den Übergang von der Forschung zu realen Anwendungen. TorchScript Die Software PyTorch , die Teil des PyTorch Frameworks ist, hilft dabei, diesen Übergang reibungsloser zu gestalten, indem sie es ermöglicht, Modelle in Umgebungen zu verwenden, die Python nicht unterstützen.

Der Prozess umfasst zwei Techniken: Tracing und Scripting. Die Nachverfolgung zeichnet die Vorgänge während der Ausführung des Modells auf, während die Skripterstellung die Definition von Modellen unter Verwendung einer Teilmenge von Python ermöglicht. Diese Techniken stellen sicher, dass Modelle wie YOLOv8 auch außerhalb ihrer üblichen Python Umgebung ihre Wirkung entfalten können.

TorchScript Skript und Trace

TorchScript Modelle können auch durch Techniken wie Operatorfusion und Verfeinerung der Speichernutzung optimiert werden, um eine effiziente Ausführung zu gewährleisten. Ein weiterer Vorteil des Exports nach TorchScript ist das Potenzial, die Modellausführung auf verschiedenen Hardwareplattformen zu beschleunigen. Es entsteht eine eigenständige, produktionsreife Darstellung deines PyTorch Modells, die in C++-Umgebungen, eingebettete Systeme oder in Web- oder Mobilanwendungen integriert werden kann.

Die wichtigsten Merkmale der TorchScript Modelle

TorchScriptein wichtiger Bestandteil des PyTorch Ökosystems, bietet leistungsstarke Funktionen für die Optimierung und den Einsatz von Deep Learning-Modellen.

TorchScript Eigenschaften

Hier sind die wichtigsten Funktionen, die TorchScript zu einem wertvollen Werkzeug für Entwickler machen:

  • Statische Graphenausführung: TorchScript verwendet eine statische Graphendarstellung der Modellberechnung, die sich von der dynamischen Graphenausführung von PyTorchunterscheidet. Bei der statischen Graphenausführung wird der Berechnungsgraph vor der eigentlichen Ausführung einmal definiert und kompiliert, was zu einer verbesserten Leistung bei der Inferenz führt.

  • Modellserialisierung: TorchScript ermöglicht es dir, PyTorch Modelle in ein plattformunabhängiges Format zu serialisieren. Serialisierte Modelle können geladen werden, ohne dass der ursprüngliche Python Code benötigt wird, was den Einsatz in verschiedenen Laufzeitumgebungen ermöglicht.

  • JIT-Kompilierung: TorchScript nutzt die Just-In-Time-Kompilierung (JIT), um PyTorch Modelle in eine optimierte Zwischendarstellung umzuwandeln. JIT kompiliert den Berechnungsgraphen des Modells und ermöglicht so eine effiziente Ausführung auf den Zielgeräten.

  • Sprachübergreifende Integration: Mit TorchScript kannst du PyTorch Modelle in andere Sprachen wie C++, Java und JavaScript exportieren. Das macht es einfacher, PyTorch Modelle in bestehende Softwaresysteme zu integrieren, die in anderen Sprachen geschrieben wurden.

  • Schrittweise Konvertierung: TorchScript bietet einen schrittweisen Konvertierungsansatz, der es dir ermöglicht, Teile deines PyTorch Modells schrittweise in TorchScript zu konvertieren. Diese Flexibilität ist besonders nützlich, wenn du mit komplexen Modellen arbeitest oder wenn du bestimmte Teile des Codes optimieren willst.

Einsatzoptionen in TorchScript

Bevor wir uns den Code für den Export von YOLOv8 Modellen in das TorchScript Format ansehen, wollen wir erst einmal verstehen, wo TorchScript Modelle normalerweise verwendet werden.

TorchScript bietet verschiedene Einsatzmöglichkeiten für maschinelle Lernmodelle, wie z. B.:

  • C++ API: Der häufigste Anwendungsfall für TorchScript ist seine C++-API, mit der du optimierte TorchScript Modelle direkt in C++-Anwendungen laden und ausführen kannst. Dies ist ideal für Produktionsumgebungen, in denen Python möglicherweise nicht geeignet oder verfügbar ist. Die C++-API bietet einen geringen Aufwand und eine effiziente Ausführung der TorchScript Modelle, wodurch das Leistungspotenzial maximiert wird.

  • Mobiler Einsatz: TorchScript bietet Werkzeuge, um Modelle in Formate zu konvertieren, die auf mobilen Geräten eingesetzt werden können. PyTorch Mobile bietet eine Laufzeitumgebung, um diese Modelle in iOS- und Android-Apps auszuführen. Dies ermöglicht Offline-Inferenzen mit geringer Latenz und verbessert die Benutzerfreundlichkeit und den Datenschutz.

  • Bereitstellung in der Cloud: TorchScript Modelle können mit Lösungen wie TorchServe auf cloudbasierten Servern bereitgestellt werden. TorchServe bietet Funktionen wie Modellversionierung, Stapelverarbeitung und Überwachung von Metriken für eine skalierbare Bereitstellung in Produktionsumgebungen. Durch die Cloud-Bereitstellung mit TorchScript können deine Modelle über APIs oder andere Webservices zugänglich gemacht werden.

Exportieren nach TorchScript: Konvertiere dein YOLOv8 Modell

Der Export von YOLOv8 Modellen nach TorchScript macht es einfacher, sie an verschiedenen Orten zu verwenden und hilft ihnen, schneller und effizienter zu laufen. Das ist ideal für alle, die Deep-Learning-Modelle effektiver in realen Anwendungen einsetzen wollen.

Installation

Um das benötigte Paket zu installieren, führe es aus:

Installation

# Install the required package for YOLOv8
pip install ultralytics

Ausführliche Anweisungen und bewährte Verfahren für den Installationsprozess findest du in unserem Ultralytics Installationsleitfaden. Wenn du bei der Installation der erforderlichen Pakete für YOLOv8 auf Schwierigkeiten stößt, findest du in unserem Leitfaden für häufige Probleme Lösungen und Tipps.

Verwendung

Bevor du dich mit den Nutzungshinweisen beschäftigst, solltest du wissen, dass alle Modelle vonUltralytics YOLOv8 exportiert werden können. Hier kannst du sicherstellen, dass das von dir ausgewählte Modell die Exportfunktion unterstützt.

Verwendung

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'

Weitere Informationen über den Exportprozess findest du auf der Dokumentationsseite zum Export unterUltralytics .

Einsatz von exportierten YOLOv8 TorchScript Modellen

Nachdem du deine Ultralytics YOLOv8 Modelle erfolgreich in das TorchScript Format exportiert hast, kannst du sie nun einsetzen. Der erste und empfohlene Schritt, um ein TorchScript Modell auszuführen, ist die Verwendung der Methode YOLO("model.torchscript"), wie im vorherigen Codeausschnitt beschrieben. Ausführliche Anleitungen für den Einsatz deiner TorchScript Modelle in verschiedenen anderen Einstellungen findest du in den folgenden Ressourcen:

  • Mobilen Einsatz erforschen: Die PyTorch Mobile Dokumentation enthält umfassende Richtlinien für den Einsatz von Modellen auf mobilen Geräten, damit deine Anwendungen effizient und reaktionsschnell sind.

  • Master Server-Side Deployment: Lerne, wie du Modelle mit TorchServe serverseitig bereitstellst, und erhalte eine Schritt-für-Schritt-Anleitung für skalierbares, effizientes Model Serving.

  • C++-Einsatz implementieren: Tauche ein in das Tutorial zum Laden eines TorchScript Modells in C++ und erleichtere die Integration deiner TorchScript Modelle in C++ Anwendungen für mehr Leistung und Vielseitigkeit.

Zusammenfassung

In diesem Leitfaden haben wir uns mit dem Export von Ultralytics YOLOv8 Modellen in das TorchScript Format beschäftigt. Wenn du die Anweisungen befolgst, kannst du die Leistung der YOLOv8 Modelle optimieren und sie flexibel auf verschiedenen Plattformen und in verschiedenen Umgebungen einsetzen.

Weitere Informationen zur Verwendung findest du in der offiziellen Dokumentation vonTorchScript.

Wenn du mehr über andere Ultralytics YOLOv8 Integrationen erfahren möchtest, besuche unseren Integrationsleitfaden. Dort findest du viele nützliche Ressourcen und Einblicke.



Erstellt am 2024-03-01, Aktualisiert am 2024-03-03
Autoren: glenn-jocher (1), abirami-vina (2)

Kommentare