Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

ONNX (Open Neural Network Exchange)

Entdecken Sie dasONNX-Format (Open Neural Network Exchange). Erfahren Sie, wie Sie Ultralytics ONNX eine schnelle, plattformübergreifende Bereitstellung und Hardwareoptimierung in ONNX exportieren können.

ONNX Open Neural Network Exchange) ist ein Open-Source-Format zur Darstellung von Modellen für maschinelles Lernen , das die Interoperabilität zwischen verschiedenen KI-Frameworks und -Tools ermöglicht. Es dient als universeller Übersetzer für Deep Learning und ermöglicht es Entwicklern, Modelle in einem Framework zu erstellen – beispielsweise PyTorch, TensorFlow oder Scikit-learn – zu erstellen und diese nahtlos in einer anderen, für die Inferenz optimierten Umgebung einzusetzen. Durch die Definition eines gemeinsamen Satzes von Operatoren und eines Standarddateiformats ONNX komplexe, benutzerdefinierte Konvertierungsskripte ONNX , die bisher erforderlich waren, um Modelle von der Forschung in die Produktion zu übertragen. Diese Flexibilität ist entscheidend für moderne KI-Workflows, bei denen das Training auf leistungsstarken Cloud-GPUs stattfinden kann, während die Bereitstellung auf unterschiedlicher Hardware wie Edge-Geräten, Mobiltelefonen oder Webbrowsern erfolgt.

Die Rolle von ONNX der modernen KI

In der sich schnell entwickelnden Landschaft der künstlichen Intelligenz verwenden Forscher und Ingenieure häufig unterschiedliche Tools für verschiedene Phasen des Entwicklungszyklus. Ein Datenwissenschaftler bevorzugt möglicherweise die Flexibilität von PyTorch Experimente und Schulungen, während ein Produktionsingenieur die optimierte Leistung von TensorRT oder OpenVINO die Bereitstellung benötigt. Ohne ein Standardaustauschformat ist die Übertragung eines Modells zwischen diesen Ökosystemen schwierig und fehleranfällig.

ONNX diese Lücke, indem es eine gemeinsame Definition des Berechnungsgraphen bereitstellt. Wenn ein Modell nach ONNX exportiert wird, wird es in ein Format serialisiert, das die Netzwerkstruktur (Schichten, Verbindungen) und Parameter (Gewichte, Verzerrungen) auf eine Framework-unabhängige Weise erfasst. Dadurch können speziell auf Hardwarebeschleunigung abgestimmte Inferenz-Engines – wie die ONNX – das Modell effizient auf mehreren Plattformen ausführen, darunter Linux, Windows, macOS, Android und iOS.

Die wichtigsten Vorteile der Verwendung von ONNX

Die Verwendung des Open Neural Network Exchange-Formats bietet mehrere strategische Vorteile für KI-Projekte:

  • Framework-Interoperabilität: Entwickler können zwischen Frameworks wechseln, ohne an ein einziges Ökosystem gebunden zu sein. Sie können ein Modell mit der benutzerfreundlichen Ultralytics Python trainieren und es für die Verwendung in einer C++-Anwendung oder einer webbasierten JavaScript-Umgebung exportieren.
  • Hardware-Optimierung: Viele Hardwarehersteller bieten spezialisierte Ausführungsanbieter, die mit ONNX kompatibel sind. Das bedeutet, dass ein einziger .onnx Datei kann auf NVIDIA , Intel oder mobilen NPUs (Neural Processing Units) mit Tools wie OpenVINO oder CoreML.
  • Schnellere Inferenz: Die ONNX wendet Graphenoptimierungen an – wie Knotenfusion und Konstantenausblendung –, die die Inferenzlatenz erheblich reduzieren können. Dies ist für Echtzeitanwendungen wie autonome Fahrzeuge oder Hochgeschwindigkeitsfertigungslinien von entscheidender Bedeutung.
  • Vereinfachte Bereitstellung: Anstatt separate Bereitstellungspipelines für jedes Trainingsframework zu unterhalten, können Engineering-Teams ONNX Standardformat für die Bereitstellung verwenden und so die ModelOps- Prozesse optimieren.

Anwendungsfälle in der Praxis

Die Vielseitigkeit von ONNX es ONNX einem unverzichtbaren Bestandteil in verschiedenen Branchen. Hier sind zwei konkrete Anwendungsbeispiele:

1. Edge-KI auf Mobilgeräten

Betrachten wir eine mobile Anwendung, die für die Echtzeitüberwachung des Gesundheitszustands von Nutzpflanzen entwickelt wurde. Das Modell könnte auf einem leistungsstarken Cloud-Server unter Verwendung eines großen Datensatzes mit Pflanzenbildern trainiert werden. Die App muss jedoch offline auf dem Smartphone eines Landwirts ausgeführt werden. Durch den Export des trainierten Modells nach ONNX können Entwickler es mithilfe von ONNX Mobile in die mobile App integrieren. Dadurch kann der Prozessor des Telefons die Objekterkennung lokal ausführen und Schädlinge oder Krankheiten sofort identifizieren, ohne dass eine Internetverbindung erforderlich ist.

2. Plattformübergreifende Web-Inferenz

Im E-Commerce könnte eine „virtuelle Anprobe”-Funktion Posen-Schätzungen verwenden, um Kleidung auf das Webcam-Bild eines Benutzers zu legen. Das Training dieses Modells könnte in Python erfolgen, aber das Einsatzziel ist ein Webbrowser. Mit ONNX kann das Modell konvertiert und über ONNX Web direkt im Browser des Benutzers ausgeführt werden. Dabei werden die Gerätefunktionen des Clients (WebGL oder WebAssembly) genutzt, um Computer-Vision-Aufgaben auszuführen, wodurch ein reibungsloses, datenschutzkonformes Erlebnis gewährleistet wird, da die Videodaten den Computer des Benutzers nie verlassen.

Vergleich mit verwandten Begriffen

Es ist hilfreich, ONNX anderen Modellformaten und Tools zu unterscheiden:

  • vs. TensorRT: Während ONNX ein Austauschformat ONNX , TensorRT eine Inferenz-Engine und ein Optimierer speziell für NVIDIA . Ein gängiger Arbeitsablauf besteht darin, ein Modell ONNX nach ONNX zu exportieren und dann diese ONN ONNX -Datei in TensorRT zu parsen, TensorRT einen maximalen Durchsatz auf NVIDIA zu erzielen.
  • vs. TensorFlow SavedModel: SavedModel das native Serialisierungsformat für TensorFlow. Es ist zwar innerhalb des Google robust, aber weniger universell kompatibel als ONNX. Oft gibt es Tools, um SavedModels in ONNX zu konvertieren, ONNX eine breitere Plattformunterstützung zu erreichen.
  • vs. CoreML: CoreML ist Apples Framework für maschinelles Lernen auf Geräten. Obwohl es sich um unterschiedliche Frameworks handelt, werden Modelle häufig von PyTorch ONNX und dann von ONNX CoreML oder direkt) konvertiert, um effizient auf iPhones und iPads zu laufen.

Exportieren nach ONNX Ultralytics

Das Ultralytics vereinfacht den Prozess der Konvertierung modernster Modelle wie YOLO26 in das ONNX . Die Exportfunktion ist direkt in die Bibliothek integriert und übernimmt automatisch die komplexe Graphendurchquerung und die Zuordnung der Operatoren.

Das folgende Beispiel zeigt, wie ein vortrainiertes YOLO26-Modell zur Bereitstellung in ONNX exportiert wird:

from ultralytics import YOLO

# Load the YOLO26n model (Nano version recommended for edge deployment)
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
# The 'dynamic' argument enables variable input sizes
path = model.export(format="onnx", dynamic=True)

print(f"Model exported successfully to: {path}")

Nach dem Export wird dies .onnx Die Datei kann in der Ultralytics für die Verwaltung oder direkt auf Edge-Geräten mit der ONNX eingesetzt werden, wodurch leistungsstarke Computer Vision in praktisch jeder Umgebung verfügbar wird.

Werden Sie Mitglied der Ultralytics

Gestalten Sie die Zukunft der KI mit. Vernetzen Sie sich, arbeiten Sie zusammen und wachsen Sie mit globalen Innovatoren

Jetzt beitreten