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