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.
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 Verwendung des Open Neural Network Exchange-Formats bietet mehrere strategische Vorteile für KI-Projekte:
.onnx Datei kann auf NVIDIA , Intel oder
mobilen NPUs (Neural Processing Units) mit Tools wie
OpenVINO oder CoreML.
Die Vielseitigkeit von ONNX es ONNX einem unverzichtbaren Bestandteil in verschiedenen Branchen. Hier sind zwei konkrete Anwendungsbeispiele:
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.
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.
Es ist hilfreich, ONNX anderen Modellformaten und Tools zu unterscheiden:
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.