ONNX Export für YOLO11 Modelle
Wenn Sie Computer-Vision-Modelle einsetzen, benötigen Sie häufig ein Modellformat, das sowohl flexibel als auch mit mehreren Plattformen kompatibel ist.
Der Export von Ultralytics YOLO11 Modelle in das Format ONNX vereinfacht die Bereitstellung und gewährleistet eine optimale Leistung in verschiedenen Umgebungen. Dieser Leitfaden zeigt Ihnen, wie Sie Ihre YOLO11 Modelle einfach in ONNX konvertieren und ihre Skalierbarkeit und Effektivität in realen Anwendungen verbessern können.
ONNX und ONNX Laufzeit
ONNXsteht für Open Neural Network Exchange und ist ein Gemeinschaftsprojekt, das ursprünglich von Facebook und Microsoft entwickelt wurde. Die fortlaufende Entwicklung von ONNX ist eine Gemeinschaftsarbeit, die von verschiedenen Organisationen wie IBM, Amazon (über AWS) und Google unterstützt wird. Das Projekt zielt darauf ab, ein offenes Dateiformat zu schaffen, das Modelle für maschinelles Lernen so darstellt, dass sie in verschiedenen KI-Frameworks und -Hardware verwendet werden können.
ONNX Modelle können verwendet werden, um nahtlos zwischen verschiedenen Frameworks zu wechseln. Zum Beispiel kann ein Deep-Learning-Modell, das in PyTorch trainiert wurde, in das Format ONNX exportiert und dann einfach in TensorFlow importiert werden.
Alternativ können die Modelle von ONNX auch mit ONNX Runtime verwendet werden. ONNX Runtime ist ein vielseitiger plattformübergreifender Beschleuniger für Modelle des maschinellen Lernens, der mit Frameworks wie PyTorch kompatibel ist, TensorFlowTFLite, scikit-learn, etc.
ONNX Runtime optimiert die Ausführung von ONNX Modellen, indem es hardwarespezifische Funktionen nutzt. Durch diese Optimierung können die Modelle effizient und mit hoher Leistung auf verschiedenen Hardware-Plattformen, einschließlich CPUs, GPUs und speziellen Beschleunigern, ausgeführt werden.
Ob unabhängig oder in Verbindung mit ONNX Runtime, ONNX bietet eine flexible Lösung für die Bereitstellung und Kompatibilität von Modellen für maschinelles Lernen.
Hauptmerkmale der Modelle ONNX
Die Fähigkeit von ONNX , mit verschiedenen Formaten umzugehen, lässt sich auf die folgenden Hauptmerkmale zurückführen:
-
Gemeinsame Modelldarstellung: ONNX definiert einen gemeinsamen Satz von Operatoren (wie Faltungen, Schichten usw.) und ein Standarddatenformat. Wenn ein Modell in das Format ONNX konvertiert wird, werden seine Architektur und Gewichte in diese gemeinsame Darstellung übersetzt. Durch diese Einheitlichkeit wird sichergestellt, dass das Modell von jedem Framework, das ONNX unterstützt, verstanden werden kann.
-
Versionierung und Rückwärtskompatibilität: ONNX unterhält ein Versionierungssystem für seine Betreiber. Dadurch wird sichergestellt, dass Modelle, die in älteren Versionen erstellt wurden, auch bei einer Weiterentwicklung der Norm verwendbar bleiben. Die Rückwärtskompatibilität ist ein wichtiges Merkmal, das verhindert, dass Modelle schnell veralten.
-
Graphenbasierte Modelldarstellung: ONNX stellt Modelle als Berechnungsgraphen dar. Diese graphenbasierte Struktur ist eine universelle Art der Darstellung von Modellen des maschinellen Lernens, bei der die Knoten Operationen oder Berechnungen und die Kanten die zwischen ihnen fließenden Tensoren darstellen. Dieses Format ist leicht an verschiedene Frameworks anpassbar, die Modelle ebenfalls als Graphen darstellen.
-
Tools und Ökosystem: Rund um ONNX gibt es ein reichhaltiges Ökosystem von Tools, die bei der Modellkonvertierung, Visualisierung und Optimierung helfen. Diese Werkzeuge erleichtern den Entwicklern die Arbeit mit ONNX Modellen und die nahtlose Konvertierung von Modellen zwischen verschiedenen Frameworks.
Gemeinsame Verwendung von ONNX
Bevor wir uns damit befassen, wie man YOLO11 Modelle in das Format ONNX exportiert, wollen wir uns ansehen, wo ONNX Modelle normalerweise verwendet werden.
CPU Einsatz
ONNX Modelle werden aufgrund ihrer Kompatibilität mit ONNX Runtime häufig auf CPUs eingesetzt. Diese Laufzeitumgebung ist für die Ausführung von CPU optimiert. Sie verbessert die Inferenzgeschwindigkeit erheblich und ermöglicht den Einsatz von CPU in Echtzeit.
Unterstützte Bereitstellungsoptionen
Die Modelle von ONNX werden in der Regel auf CPUs verwendet, können aber auch auf den folgenden Plattformen eingesetzt werden:
-
GPU Beschleunigung: ONNX unterstützt vollständig GPU Beschleunigung, insbesondere NVIDIA CUDA . Dies ermöglicht eine effiziente Ausführung auf NVIDIA GPUs für Aufgaben, die eine hohe Rechenleistung erfordern.
-
Edge- und Mobilgeräte: ONNX ist auch für Edge- und Mobilgeräte geeignet und eignet sich perfekt für On-Device- und Echtzeit-Inferenzszenarien. Es ist leichtgewichtig und kompatibel mit Edge-Hardware.
-
Webbrowser: ONNX kann direkt in Webbrowsern ausgeführt werden, um interaktive und dynamische webbasierte KI-Anwendungen zu ermöglichen.
Exportieren von YOLO11 Modellen nach ONNX
Sie können die Modellkompatibilität und die Einsatzflexibilität erweitern, indem Sie die Modelle von YOLO11 in das Format ONNX konvertieren.
Einrichtung
Führen Sie das erforderliche Paket aus, um es zu installieren:
Detaillierte Anweisungen und bewährte Verfahren für den Installationsprozess finden Sie in unserem YOLO11 Installationshandbuch. Wenn Sie bei der Installation der erforderlichen Pakete für YOLO11 auf Schwierigkeiten stoßen, finden Sie in unserem Leitfaden für häufige Probleme Lösungen und Tipps.
Verwendung
Bevor Sie sich mit der Gebrauchsanweisung befassen, sollten Sie sich über die verschiedenen Modelle vonYOLO11 informieren, die von Ultralytics angeboten werden. Dies wird Ihnen helfen, das am besten geeignete Modell für Ihre Projektanforderungen auszuwählen.
Verwendung
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
model.export(format="onnx") # creates 'yolo11n.onnx'
# Load the exported ONNX model
onnx_model = YOLO("yolo11n.onnx")
# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
Weitere Einzelheiten zum Exportvorgang finden Sie auf der Dokumentationsseite zum Exportieren unterUltralytics .
Bereitstellung von exportierten YOLO11 ONNX Modellen
Sobald Sie Ihre Ultralytics YOLO11 Modelle erfolgreich in das ONNX Format exportiert haben, ist der nächste Schritt die Bereitstellung dieser Modelle in verschiedenen Umgebungen. Detaillierte Anweisungen für die Bereitstellung Ihrer ONNX Modelle finden Sie in den folgenden Ressourcen:
-
ONNX Laufzeit Python API-Dokumentation: Dieser Leitfaden enthält wichtige Informationen zum Laden und Ausführen von ONNX Modellen mit ONNX Runtime.
-
Bereitstellen auf Edge-Geräten: Auf dieser Dokumentseite finden Sie verschiedene Beispiele für die Bereitstellung von ONNX Modellen auf Edge-Geräten.
-
ONNX Tutorials auf GitHub: Eine Sammlung umfassender Tutorials, die verschiedene Aspekte der Verwendung und Implementierung von ONNX Modellen in unterschiedlichen Szenarien abdecken.
Zusammenfassung
In diesem Handbuch haben Sie gelernt, wie Sie Ultralytics YOLO11 Modelle in das ONNX Format exportieren können, um ihre Interoperabilität und Leistung auf verschiedenen Plattformen zu verbessern. Außerdem wurden Sie mit den Optionen ONNX Runtime und ONNX deployment vertraut gemacht.
Weitere Einzelheiten zur Verwendung finden Sie in der offiziellen DokumentationONNX .
Wenn Sie mehr über andere Ultralytics YOLO11 Integrationen erfahren möchten, besuchen Sie unseren Integrationsleitfaden. Dort finden Sie viele nützliche Ressourcen und Einblicke.
FAQ
Wie exportiere ich YOLO11 Modelle in das Format ONNX mit Ultralytics?
Gehen Sie folgendermaßen vor, um Ihre YOLO11 Modelle mit Ultralytics in das Format ONNX zu exportieren:
Verwendung
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
model.export(format="onnx") # creates 'yolo11n.onnx'
# Load the exported ONNX model
onnx_model = YOLO("yolo11n.onnx")
# Run inference
results = onnx_model("https://ultralytics.com/images/bus.jpg")
Weitere Einzelheiten finden Sie in der Exportdokumentation.
Welche Vorteile bietet die Verwendung von ONNX Runtime für die Bereitstellung von YOLO11 Modellen?
Die Verwendung von ONNX Runtime für die Bereitstellung von YOLO11 Modellen bietet mehrere Vorteile:
- Plattformübergreifende Kompatibilität: ONNX Runtime unterstützt verschiedene Plattformen wie Windows, macOS und Linux und sorgt dafür, dass Ihre Modelle in unterschiedlichen Umgebungen reibungslos laufen.
- Hardware-Beschleunigung: ONNX Die Laufzeitumgebung kann hardwarespezifische Optimierungen für CPUs, GPUs und dedizierte Beschleuniger nutzen und so hochleistungsfähige Inferenzen ermöglichen.
- Interoperabilität der Frameworks: Modelle, die in gängigen Frameworks wie PyTorch oder TensorFlow trainiert wurden, können leicht in das Format ONNX konvertiert werden und mit ONNX Runtime ausgeführt werden.
Weitere Informationen finden Sie in der ONNX Runtime-Dokumentation.
Welche Bereitstellungsoptionen gibt es für YOLO11 Modelle, die nach ONNX exportiert werden?
YOLO11 Die nach ONNX exportierten Modelle können auf verschiedenen Plattformen eingesetzt werden:
- CPUs: Nutzung von ONNX Runtime für optimierte CPU Inferenz.
- GPUs: Nutzung von NVIDIA CUDA für eine leistungsstarke GPU Beschleunigung.
- Edge-Geräte: Ausführen von leichtgewichtigen Modellen auf Edge- und Mobilgeräten für Echtzeit-Inferenz auf dem Gerät.
- Web-Browser: Ausführen von Modellen direkt in Webbrowsern für interaktive webbasierte Anwendungen.
Weitere Informationen finden Sie in unserem Leitfaden zu den Optionen für die Modellbereitstellung.
Warum sollte ich das Format ONNX für die Modelle Ultralytics YOLO11 verwenden?
Die Verwendung des Formats ONNX für die Modelle Ultralytics YOLO11 bietet zahlreiche Vorteile:
- Interoperabilität: ONNX ermöglicht die nahtlose Übertragung von Modellen zwischen verschiedenen Frameworks für maschinelles Lernen.
- Optimierung der Leistung: ONNX Die Laufzeit kann die Modellleistung durch hardwarespezifische Optimierungen verbessern.
- Flexibilität: ONNX unterstützt verschiedene Bereitstellungsumgebungen, so dass Sie dasselbe Modell ohne Änderungen auf verschiedenen Plattformen verwenden können.
Lesen Sie den umfassenden Leitfaden zum Export von YOLO11 Modellen auf ONNX.
Wie kann ich Probleme beim Exportieren von YOLO11 Modellen nach ONNX beheben?
Beim Exportieren von YOLO11 Modellen nach ONNX können allgemeine Probleme auftreten, wie z. B. nicht übereinstimmende Abhängigkeiten oder nicht unterstützte Operationen. So beheben Sie diese Probleme:
- Überprüfen Sie, ob Sie die richtige Version der erforderlichen Abhängigkeiten installiert haben.
- Informieren Sie sich in der offiziellen DokumentationONNX über unterstützte Operatoren und Funktionen.
- Suchen Sie in den Fehlermeldungen nach Hinweisen und konsultieren Sie den LeitfadenUltralytics Common Issues.
Sollten die Probleme weiterhin bestehen, wenden Sie sich bitte an den Ultralytics Support für weitere Unterstützung.