Ultralytics YOLO27:

YOLO26-Modell-Export nach TorchScript für eine schnelle Bereitstellung#

PyTorch stellt TorchScript ein

PyTorch hat TorchScript als veraltet markiert und entfernt schrittweise dessen Funktionen. Für neue Bereitstellungen auf Mobil- und Edge-Geräten solltest du die unterstützte ExecuTorch-Integration verwenden. Ultralytics behält den regulären TorchScript-Export aus Gründen der Abwärtskompatibilität mit C++ bei.

Für die Bereitstellung von Computer-Vision-Modellen in C++-Umgebungen ohne Python ist eine portable serialisierte Repräsentation erforderlich. TorchScript bietet diese Kompatibilität für ältere LibTorch-Anwendungen.

Exportiere deine Ultralytics-YOLO26-Modelle nach TorchScript, um sie für plattformübergreifende Kompatibilität zu serialisieren und die Bereitstellung zu vereinfachen. In diesem Leitfaden zeigen wir dir, wie du deine YOLO26-Modelle in das TorchScript-Format exportierst, damit du sie leichter in einer größeren Bandbreite von Anwendungen einsetzen kannst.

Warum solltest du nach TorchScript exportieren?#

Übersicht über die Serialisierung und Bereitstellung von TorchScript-Modellen

TorchScript wurde von den Entwicklern von PyTorch entwickelt und ist ein leistungsfähiges Werkzeug zur Optimierung und Bereitstellung von PyTorch-Modellen auf verschiedenen Plattformen. Der Export von YOLO26-Modellen nach TorchScript ist entscheidend für den Übergang von der Forschung zu realen Anwendungen. TorchScript ist Bestandteil des PyTorch-Frameworks und erleichtert diesen Übergang, indem PyTorch-Modelle in Umgebungen verwendet werden können, die Python nicht unterstützen.

Der Prozess umfasst zwei Techniken: Tracing und Scripting. Beim Tracing werden Vorgänge während der Modellausführung aufgezeichnet, während Scripting die Definition von Modellen mithilfe einer Teilmenge von Python ermöglicht. Diese Techniken stellen sicher, dass Modelle wie YOLO26 auch außerhalb ihrer üblichen Python-Umgebung zuverlässig funktionieren.

Vergleich von TorchScript-Scripting und -Tracing

TorchScript-Modelle können außerdem durch Techniken wie die Zusammenfassung von Operatoren und eine optimierte Speichernutzung optimiert werden, um eine effiziente Ausführung sicherzustellen. Ein weiterer Vorteil des Exports nach TorchScript ist die Möglichkeit, die Modellausführung auf verschiedenen Hardwareplattformen zu beschleunigen. Dadurch entsteht eine eigenständige, produktionsbereite Repräsentation deines PyTorch-Modells, die in C++-Umgebungen integriert werden kann.

Wichtige Funktionen von TorchScript-Modellen#

TorchScript ist ein zentraler Bestandteil des PyTorch-Ökosystems und bietet leistungsfähige Funktionen zur Optimierung und Bereitstellung von Deep-Learning-Modellen.

Übersicht über die wichtigsten Funktionen von TorchScript

Die folgenden wichtigen Funktionen machen TorchScript zu einem wertvollen Werkzeug für Entwickler:

  • Ausführung statischer Graphen: TorchScript verwendet eine Darstellung der Modellberechnung als statischen Graphen, die sich von der Ausführung dynamischer Graphen in PyTorch unterscheidet. Bei der Ausführung statischer Graphen wird der Berechnungsgraph vor der eigentlichen Ausführung einmal definiert und kompiliert, wodurch sich die Leistung während der Inferenz verbessert.

  • Modellserialisierung: Mit TorchScript kannst du PyTorch-Modelle in ein plattformunabhängiges Format serialisieren. Serialisierte Modelle können geladen werden, ohne dass der ursprüngliche Python-Code erforderlich ist, sodass sie in unterschiedlichen Laufzeitumgebungen bereitgestellt werden können.

  • JIT-Kompilierung: TorchScript verwendet 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 Zielgeräten.

  • Schrittweise Konvertierung: TorchScript bietet einen schrittweisen Konvertierungsansatz, mit dem du Teile deines PyTorch-Modells nach und nach in TorchScript umwandeln kannst. Diese Flexibilität ist besonders nützlich bei komplexen Modellen oder wenn du bestimmte Teile des Codes optimieren möchtest.

Bereitstellungsoptionen in TorchScript#

Bevor wir uns den Code für den Export von YOLO26-Modellen in das TorchScript-Format ansehen, klären wir zunächst, wo TorchScript-Modelle normalerweise eingesetzt werden.

TorchScript bietet verschiedene Bereitstellungsoptionen für Maschinelles Lernen-Modelle, darunter:

  • C++-API: Der häufigste Anwendungsfall für TorchScript ist die LibTorch-C++-API, mit der du optimierte TorchScript-Modelle direkt in C++-Anwendungen laden und ausführen kannst. Das ist ideal für Produktionsumgebungen, in denen Python möglicherweise nicht geeignet oder verfügbar ist. Die C++-API ermöglicht eine Ausführung von TorchScript-Modellen mit geringem Overhead und hoher Effizienz und schöpft so das Leistungspotenzial optimal aus.

  • Bereitstellung auf Mobilgeräten: Für Inferenz mit geringer Latenz, Offline-Inferenz und Datenschutz auf Mobilgeräten solltest du ExecuTorch verwenden, den von PyTorch vorgesehenen Ersatz für TorchScript Mobile.

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

Unterstützte Aufgaben#

Der TorchScript-Export unterstützt alle sieben Ultralytics-Aufgaben. Semantische Segmentierung und Tiefenschätzung sind nur mit YOLO26 verfügbar, der einzigen Modellfamilie, die diese Köpfe enthält.

AufgabeYOLOv8YOLO11YOLO26
Erkennen
Segmentieren
Semantisch
Tiefe
Klassifizieren
Pose
OBB

Export nach TorchScript: Dein YOLO26-Modell konvertieren#

Der Export von YOLO26-Modellen nach TorchScript erleichtert ihren Einsatz an verschiedenen Orten und sorgt für eine schnellere und effizientere Ausführung. Das ist ideal für alle, die Deep-Learning-Modelle in realen Anwendungen effektiver einsetzen möchten.

Installation#

Führe zur Installation des erforderlichen Pakets folgenden Befehl aus:

Installation
# Install the required package for YOLO26
pip install ultralytics

Ausführliche Anweisungen und bewährte Vorgehensweisen zur Installation findest du in unserem Installationsleitfaden von Ultralytics. Sollten bei der Installation der für YOLO26 erforderlichen Pakete Schwierigkeiten auftreten, findest du in unserem Leitfaden zu häufigen Problemen Lösungen und Tipps.

Verwendung#

Alle Ultralytics YOLO26-Modelle sind so konzipiert, dass sie standardmäßig den Export unterstützen, sodass du sie problemlos in deinen bevorzugten Bereitstellungsablauf integrieren kannst. Du kannst die vollständige Liste der unterstützten Exportformate und Konfigurationsoptionen anzeigen, um die beste Konfiguration für deine Anwendung auszuwählen.

Das TorchScript-Format unterstützt die Modi Export, Predict und Validate. Exportiere dein Modell und lade anschließend das exportierte Modell, um Inferenz auszuführen oder seine Genauigkeit zu validieren.

Export
from ultralytics import YOLO

# Load a YOLO26 model
model = YOLO("yolo26n.pt")

# Export the model to TorchScript format
model.export(format="torchscript")  # creates 'yolo26n.torchscript'
Vorhersage
from ultralytics import YOLO

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

# Run inference
results = model("https://ultralytics.com/images/bus.jpg")
Validieren
from ultralytics import YOLO

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

# Validate accuracy on the COCO8 dataset
metrics = model.val(data="coco8.yaml")

Exportargumente#

ArgumentTypStandardwertBeschreibung
formatstr'torchscript'Zielformat für das exportierte Modell, das die Kompatibilität mit verschiedenen Bereitstellungsumgebungen festlegt.
imgszint oder tuple640Gewünschte Bildgröße für die Modelleingabe. Kann für quadratische Bilder eine Ganzzahl oder für bestimmte Abmessungen ein Tupel (height, width) sein.
dynamicboolFalseErlaubt dynamische Eingabegrößen und erhöht dadurch die Flexibilität beim Umgang mit unterschiedlichen Bildabmessungen.
quantizeint oder strNoneQuantisierungsgenauigkeit: 16 (FP16) erfordert einen GPU-Export mit device=0; 32/nicht gesetzt entspricht FP32. Ersetzt das veraltete Flag half.
nmsbool, optionalNoneWähle die Rohausgabe (None, Standard), das eingebettete NMS (True) oder den NMS-freien Kopf (False).
batchint1Legt die Batchgröße für die Inferenz des exportierten Modells oder die maximale Anzahl der Bilder fest, die das exportierte Modell im Modus predict gleichzeitig verarbeitet.
devicestrNoneGibt das Gerät für den Export an: GPU (device=0), CPU (device=cpu), MPS für Apple-Silizium (device=mps).

Weitere Informationen zum Exportvorgang findest du auf der Ultralytics-Dokumentationsseite zum Export.

Bereitstellung exportierter YOLO26-TorchScript-Modelle#

Nachdem du deine Ultralytics-YOLO26-Modelle erfolgreich in das TorchScript-Format exportiert hast, kannst du sie nun bereitstellen. Der wichtigste und empfohlene erste Schritt zum Ausführen eines TorchScript-Modells ist die Verwendung der Methode YOLO("model.torchscript"), wie im vorherigen Codebeispiel zur Verwendung beschrieben. Ausführliche Anleitungen zur Bereitstellung deiner TorchScript-Modelle in anderen Umgebungen findest du in den folgenden Ressourcen:

  • Bereitstellung auf Mobilgeräten erkunden: Verwende für die aktuelle mobile Bereitstellung mit PyTorch die separate torch.export().pte-Pipeline von ExecuTorch.

  • Serverseitige Bereitstellung meistern: Erfahre, wie du Modelle serverseitig mit TorchServe bereitstellst. Dazu gibt es eine schrittweise Anleitung für eine skalierbare und effiziente Bereitstellung von Modellen.

  • C++-Bereitstellung implementieren: Sieh dir das Tutorial zum Laden eines TorchScript-Modells in C++ an. Es erleichtert die Integration deiner TorchScript-Modelle in C++-Anwendungen für höhere Leistung und größere Flexibilität.

Zusammenfassung#

In diesem Leitfaden haben wir den Prozess des Exports von Ultralytics-YOLO26-Modellen in das TorchScript-Format erläutert. Wenn du die bereitgestellten Anweisungen befolgst, kannst du YOLO26-Modelle für eine bessere Leistung optimieren und sie flexibel auf verschiedenen Plattformen und in unterschiedlichen Umgebungen bereitstellen.

Weitere Informationen zur Verwendung findest du in der offiziellen Dokumentation zu TorchScript.

Wenn du mehr über andere Ultralytics-YOLO26-Integrationen erfahren möchtest, besuche unsere Seite mit dem Integrationsleitfaden. Dort findest du zahlreiche nützliche Ressourcen und Informationen.

FAQ#

  • Der Export eines Ultralytics-YOLO26-Modells nach TorchScript ermöglicht eine flexible, plattformübergreifende Bereitstellung. TorchScript ist Teil des PyTorch-Ökosystems und ermöglicht die Serialisierung von Modellen, die anschließend in Umgebungen ohne Python-Unterstützung ausgeführt werden können. Dadurch eignet sich TorchScript für die Bereitstellung von Modellen in C++-Umgebungen.

  • Um ein YOLO26-Modell nach TorchScript zu exportieren, kannst du den folgenden Beispielcode verwenden:

    Verwendung
    from ultralytics import YOLO
    
    # Load a YOLO26 model
    model = YOLO("yolo26n.pt")
    
    # Export the model to TorchScript format
    model.export(format="torchscript")  # creates 'yolo26n.torchscript'
    
    # Load the exported TorchScript model
    torchscript_model = YOLO("yolo26n.torchscript")
    
    # Run inference
    results = torchscript_model("https://ultralytics.com/images/bus.jpg")

    Weitere Informationen zum Exportprozess findest du in der Ultralytics-Dokumentation zum Export.

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

    • Portabilität: Exportierte Modelle können in C++-Anwendungen ohne Python ausgeführt werden.
    • Optimierung: TorchScript unterstützt die Ausführung statischer Graphen und die Just-in-Time-Kompilierung (JIT), wodurch die Modellleistung optimiert werden kann.
    • Sprachübergreifende Integration: TorchScript-Modelle können in andere Programmiersprachen integriert werden, was Flexibilität und Erweiterbarkeit verbessert.
    • Serialisierung: Modelle können serialisiert werden, sodass sie plattformunabhängig geladen und für Inferenz verwendet werden können.

    Weitere Einblicke in die Bereitstellung findest du in der TorchServe-Dokumentation und im Leitfaden zur C++-Bereitstellung. Für die mobile Bereitstellung auf dem Gerät empfiehlt PyTorch jetzt ExecuTorch, das eine eigene separate torch.export().pte-Pipeline anstelle von TorchScript verwendet.

  • Um das erforderliche Paket für den Export von YOLO26-Modellen zu installieren, verwende den folgenden Befehl:

    Installation
    # Install the required package for YOLO26
    pip install ultralytics

    Ausführliche Anweisungen findest du im Ultralytics-Installationsleitfaden. Falls während der Installation Probleme auftreten, sieh im Leitfaden zu häufigen Problemen nach.

  • Nachdem du YOLO26-Modelle in das TorchScript-Format exportiert hast, kannst du sie auf verschiedenen Plattformen bereitstellen:

    • C++-API: Verwende LibTorch für Produktionsumgebungen mit geringem Overhead und hoher Effizienz.
    • Bereitstellung auf Mobilgeräten: Verwende ExecuTorch, den von PyTorch unterstützten Ersatz mit einer separaten .pte-Exportpipeline.
    • Bereitstellung in der Cloud: Nutze Dienste wie TorchServe für eine skalierbare serverseitige Bereitstellung.

    Sieh dir umfassende Richtlinien für die Bereitstellung von Modellen in diesen Umgebungen an, um die Funktionen von TorchScript vollständig zu nutzen.

Kommentare