Zum Inhalt springen

YOLO11 Modellexport nach TorchScript für eine schnelle Bereitstellung

Die Bereitstellung 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 Portabilität und die Fähigkeit, Modelle in Umgebungen auszuführen, in denen das gesamte Python-Framework nicht verfügbar ist. Dies macht es ideal für Szenarien, in denen Sie Ihre Computer-Vision-Funktionen auf verschiedenen Geräten oder Plattformen bereitstellen müssen.

Exportieren Sie nach TorchScript, um Ihre Ultralytics YOLO11-Modelle für plattformübergreifende Kompatibilität und eine optimierte Bereitstellung zu serialisieren. In diesem Leitfaden zeigen wir Ihnen, wie Sie Ihre YOLO11-Modelle in das TorchScript-Format exportieren, um ihre Verwendung in einer größeren Bandbreite von Anwendungen zu vereinfachen.

Warum sollten Sie nach TorchScript exportieren?

TorchScript – Übersicht

TorchScript wurde von den Entwicklern von PyTorch entwickelt und ist ein leistungsstarkes Werkzeug zur Optimierung und Bereitstellung von PyTorch-Modellen auf einer Vielzahl von Plattformen. Der Export von YOLO11-Modellen nach TorchScript ist entscheidend für den Übergang von der Forschung zu realen Anwendungen. TorchScript, ein Teil des PyTorch-Frameworks, trägt dazu bei, diesen Übergang zu erleichtern, indem es ermöglicht, PyTorch-Modelle in Umgebungen zu verwenden, die Python nicht unterstützen.

Der Prozess umfasst zwei Techniken: Tracing und Scripting. Tracing zeichnet Operationen während der Modellausführung auf, während Scripting die Definition von Modellen unter Verwendung einer Teilmenge von Python ermöglicht. Diese Techniken stellen sicher, dass Modelle wie YOLO11 auch außerhalb ihrer üblichen Python-Umgebung funktionieren.

TorchScript Script und Trace

TorchScript-Modelle können auch durch Techniken wie Operator Fusion und Verfeinerungen in der Speichernutzung optimiert werden, um eine effiziente Ausführung zu gewährleisten. Ein weiterer Vorteil des Exports nach TorchScript ist sein Potenzial, die Modellausführung auf verschiedenen Hardwareplattformen zu beschleunigen. Es erstellt eine eigenständige, produktionsreife Darstellung Ihres PyTorch-Modells, die in C++-Umgebungen, eingebettete Systeme integriert oder in Web- oder Mobile-Anwendungen bereitgestellt werden kann.

Hauptmerkmale von TorchScript-Modellen

TorchScript, ein wichtiger Bestandteil des PyTorch-Ökosystems, bietet leistungsstarke Funktionen zur Optimierung und Bereitstellung von Deep-Learning-Modellen.

TorchScript – Funktionen

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

  • Statische Graphausführung: TorchScript verwendet eine statische Graphdarstellung der Modellberechnung, die sich von der dynamischen Graphausführung von PyTorch unterscheidet. Bei der statischen Graphausführung wird der Berechnungsgraph einmal vor der eigentlichen Ausführung definiert und kompiliert, was zu einer verbesserten Leistung während der Inferenz führt.

  • Modellserialisierung: TorchScript ermöglicht es Ihnen, PyTorch-Modelle in ein plattformunabhängiges Format zu serialisieren. Serialisierte Modelle können geladen werden, ohne dass der ursprüngliche Python-Code erforderlich ist, was die Bereitstellung in verschiedenen Laufzeitumgebungen ermöglicht.

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

  • Sprachübergreifende Integration: Mit TorchScript können Sie PyTorch-Modelle in andere Sprachen wie C++, Java und JavaScript exportieren. Dies erleichtert die Integration von PyTorch-Modellen in bestehende Softwaresysteme, die in verschiedenen Sprachen geschrieben sind.

  • Schrittweise Konvertierung: TorchScript bietet einen schrittweisen Konvertierungsansatz, der es Ihnen ermöglicht, Teile Ihres PyTorch-Modells inkrementell in TorchScript zu konvertieren. Diese Flexibilität ist besonders nützlich, wenn Sie mit komplexen Modellen arbeiten oder bestimmte Teile des Codes optimieren möchten.

Bereitstellungsoptionen in TorchScript

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

TorchScript bietet verschiedene Bereitstellungsoptionen für Machine-Learning-Modelle, wie zum Beispiel:

  • C++ API: Der häufigste Anwendungsfall für TorchScript ist seine C++ API, die es Ihnen ermöglicht, optimierte TorchScript-Modelle direkt in C++-Anwendungen zu laden und auszuführen. Dies ist ideal für Produktionsumgebungen, in denen Python möglicherweise nicht geeignet oder verfügbar ist. Die C++ API bietet einen geringen Overhead und eine effiziente Ausführung von TorchScript-Modellen, wodurch das Leistungspotenzial maximiert wird.

  • Mobile Bereitstellung: TorchScript bietet Tools zur Konvertierung von Modellen in Formate, die problemlos auf mobilen Geräten bereitgestellt werden können. PyTorch Mobile bietet eine Laufzeitumgebung für die Ausführung dieser Modelle in iOS- und Android-Apps. Dies ermöglicht latenzarme Offline-Inferenzfunktionen, die die Benutzerfreundlichkeit und den Datenschutz verbessern.

  • Cloud-Bereitstellung: TorchScript-Modelle können mit Lösungen wie TorchServe auf Cloud-basierten Servern bereitgestellt werden. Es bietet Funktionen wie Modellversionierung, Batch-Verarbeitung und Metriküberwachung für eine skalierbare Bereitstellung in Produktionsumgebungen. Die Cloud-Bereitstellung mit TorchScript kann Ihre Modelle über APIs oder andere Webdienste zugänglich machen.

Export nach TorchScript: Konvertieren Ihres YOLO11-Modells

Der Export von YOLO11-Modellen nach TorchScript erleichtert die Verwendung an verschiedenen Orten und trägt dazu bei, dass sie schneller und effizienter laufen. Dies ist ideal für alle, die Deep-Learning-Modelle in realen Anwendungen effektiver einsetzen möchten.

Installation

Um das erforderliche Paket zu installieren, führen Sie Folgendes aus:

Installation

# Install the required package for YOLO11
pip install ultralytics

Detaillierte Anweisungen und Best Practices zum Installationsprozess finden Sie in unserem Ultralytics Installationshandbuch. Wenn Sie bei der Installation der erforderlichen Pakete für YOLO11 auf Schwierigkeiten stoßen, konsultieren Sie unser Handbuch zu häufigen Problemen für Lösungen und Tipps.

Nutzung

Alle Ultralytics YOLO11 Modelle sind so konzipiert, dass sie den Export standardmäßig unterstützen, wodurch die Integration in Ihren bevorzugten Deployment-Workflow vereinfacht wird. Sie können die vollständige Liste der unterstützten Exportformate und Konfigurationsoptionen anzeigen, um das beste Setup für Ihre Anwendung auszuwählen.

Nutzung

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo11n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")

# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'

# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'

Export-Argumente

Argument Typ Standard Beschreibung
format str 'torchscript' Zielformat für das exportierte Modell, das die Kompatibilität mit verschiedenen Deployment-Umgebungen definiert.
imgsz int oder tuple 640 Gewünschte Bildgröße für die Modelleingabe. Kann eine ganze Zahl für quadratische Bilder oder ein Tupel (height, width) für bestimmte Abmessungen sein.
dynamic bool False Ermöglicht dynamische Eingabegrößen, wodurch die Flexibilität bei der Verarbeitung unterschiedlicher Bilddimensionen erhöht wird.
optimize bool False Wendet die Optimierung für mobile Geräte an, wodurch potenziell die Modellgröße reduziert und die Leistung verbessert wird.
nms bool False Fügt Non-Maximum Suppression (NMS) hinzu, die für eine genaue und effiziente Nachbearbeitung der Erkennung unerlässlich ist.
batch int 1 Gibt die Batch-Inferenzgröße des Exportmodells oder die maximale Anzahl von Bildern an, die das exportierte Modell gleichzeitig verarbeitet predict Modus.
device str None Gibt das Gerät für den Export an: GPU (device=0), CPU (device=cpu), MPS für Apple Silicon (device=mps), oder Auto-Modus mit angegebener Auslastungsfraktion (

Weitere Informationen zum Exportprozess finden Sie auf der Ultralytics-Dokumentationsseite zum Exportieren.

Bereitstellung exportierter YOLO11 TorchScript-Modelle

Nachdem Sie Ihre Ultralytics YOLO11-Modelle erfolgreich in das TorchScript-Format exportiert haben, können Sie sie jetzt bereitstellen. Der primäre und empfohlene erste Schritt zum Ausführen eines TorchScript-Modells ist die Verwendung der YOLO("model.torchscript")-Methode, wie im vorherigen Code-Snippet zur Verwendung beschrieben. Detaillierte Anweisungen zur Bereitstellung Ihrer TorchScript-Modelle in verschiedenen anderen Umgebungen finden Sie in den folgenden Ressourcen:

  • Mobile Bereitstellung erkunden: Die PyTorch Mobile-Dokumentation bietet umfassende Richtlinien für die Bereitstellung von Modellen auf mobilen Geräten, um sicherzustellen, dass Ihre Anwendungen effizient und reaktionsschnell sind.

  • Server-seitige Bereitstellung beherrschen: Erfahren Sie, wie Sie Modelle mit TorchServe serverseitig bereitstellen. Es bietet eine schrittweise Anleitung für die skalierbare, effiziente Modellbereitstellung.

  • C++-Bereitstellung implementieren: Tauchen Sie ein in das Tutorial zum Laden eines TorchScript-Modells in C++, um die Integration Ihrer TorchScript-Modelle in C++-Anwendungen für verbesserte Leistung und Vielseitigkeit zu erleichtern.

Zusammenfassung

In diesem Leitfaden haben wir den Prozess des Exports von Ultralytics YOLO11-Modellen in das TorchScript-Format untersucht. Indem Sie den bereitgestellten Anweisungen folgen, können Sie YOLO11-Modelle für die Leistung optimieren und die Flexibilität gewinnen, sie auf verschiedenen Plattformen und in verschiedenen Umgebungen bereitzustellen.

Weitere Informationen zur Verwendung finden Sie in der offiziellen TorchScript-Dokumentation.

Wenn Sie mehr über andere Ultralytics YOLO11-Integrationen erfahren möchten, besuchen Sie unsere Seite mit dem Integrationsleitfaden. Dort finden Sie viele nützliche Ressourcen und Einblicke.

FAQ

Was bedeutet der Ultralytics YOLO11 Modellexport nach TorchScript?

Das Exportieren eines Ultralytics YOLO11-Modells nach TorchScript ermöglicht eine flexible, plattformübergreifende Bereitstellung. TorchScript, ein Teil des PyTorch-Ökosystems, erleichtert die Serialisierung von Modellen, die dann in Umgebungen ausgeführt werden können, in denen keine python-Unterstützung vorhanden ist. Dies macht es ideal für die Bereitstellung von Modellen auf eingebetteten Systemen, in C++-Umgebungen, in mobilen Anwendungen und sogar in Webbrowsern. Der Export nach TorchScript ermöglicht eine effiziente Leistung und eine breitere Anwendbarkeit Ihrer YOLO11-Modelle auf verschiedenen Plattformen.

Wie kann ich mein YOLO11-Modell mit Ultralytics nach TorchScript exportieren?

Um ein YOLO11-Modell nach TorchScript zu exportieren, können Sie den folgenden Beispielcode verwenden:

Nutzung

from ultralytics import YOLO

# Load the YOLO11 model
model = YOLO("yolo11n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo11n.torchscript'

# Load the exported TorchScript model
torchscript_model = YOLO("yolo11n.torchscript")

# Run inference
results = torchscript_model("https://ultralytics.com/images/bus.jpg")
# Export a YOLO11n PyTorch model to TorchScript format
yolo export model=yolo11n.pt format=torchscript # creates 'yolo11n.torchscript'

# Run inference with the exported model
yolo predict model=yolo11n.torchscript source='https://ultralytics.com/images/bus.jpg'

Weitere Informationen zum Exportprozess finden Sie in der Ultralytics-Dokumentation zum Exportieren.

Warum sollte ich TorchScript für die Bereitstellung von YOLO11-Modellen verwenden?

Die Verwendung von TorchScript für die Bereitstellung von YOLO11-Modellen bietet mehrere Vorteile:

  • Portabilität: Exportierte Modelle können in Umgebungen ohne Python ausgeführt werden, wie z. B. in C++-Anwendungen, eingebetteten Systemen oder auf mobilen Geräten.
  • Optimierung: TorchScript unterstützt die statische Graphausführung und Just-In-Time (JIT)-Kompilierung, was die Modellleistung optimieren kann.
  • Sprachübergreifende Integration: TorchScript-Modelle können in andere Programmiersprachen integriert werden, was die Flexibilität und Erweiterbarkeit erhöht.
  • Serialisierung: Modelle können serialisiert werden, was ein plattformunabhängiges Laden und Inferenz ermöglicht.

Weitere Informationen zur Bereitstellung finden Sie in der PyTorch Mobile Dokumentation, der TorchServe Dokumentation und im C++ Deployment Guide.

Welche Installationsschritte sind für den Export von YOLO11-Modellen nach TorchScript erforderlich?

Um das erforderliche Paket für den Export von YOLO11-Modellen zu installieren, verwenden Sie den folgenden Befehl:

Installation

# Install the required package for YOLO11
pip install ultralytics

Detaillierte Anweisungen finden Sie im Ultralytics Installationsleitfaden. Sollten während der Installation Probleme auftreten, konsultieren Sie den Leitfaden zu häufigen Problemen.

Wie stelle ich meine exportierten TorchScript YOLO11-Modelle bereit?

Nach dem Export von YOLO11-Modellen in das TorchScript-Format können Sie diese auf einer Vielzahl von Plattformen bereitstellen:

  • C++ API: Ideal für Produktionsumgebungen mit geringem Overhead und hoher Effizienz.
  • Mobile Bereitstellung: Verwenden Sie PyTorch Mobile für iOS- und Android-Anwendungen.
  • Cloud-Bereitstellung: Nutzen Sie Dienste wie TorchServe für eine skalierbare serverseitige Bereitstellung.

Entdecken Sie umfassende Richtlinien für die Bereitstellung von Modellen in diesen Umgebungen, um die Möglichkeiten von TorchScript voll auszuschöpfen.



📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 21 Tagen

Kommentare