Entdecken Sie, wie ONNX die Übertragbarkeit und Interoperabilität von KI-Modellen verbessert und die nahtlose Bereitstellung von Ultralytics YOLO auf verschiedenen Plattformen ermöglicht.
Open Neural Network ExchangeONNX) ist ein Open-Source-Standard zur Darstellung von Modelle des maschinellen Lernens (ML) auf eine Weise Portabilität über verschiedene Frameworks und Hardware hinweg gewährleistet. Ursprünglich wurde er von Unternehmen wie Microsoft und Facebook entwickelt, dient ONNX als "Universalübersetzer" für KI. Er ermöglicht es Entwicklern, ein Modell in einem Ökosystem zu trainieren, wie zum Beispiel PyTorchtrainieren und es nahtlos in einem anderen einem anderen, wie TensorFlow oder einer spezialisierten Inferenzmaschine. Diese Interoperabilität eliminiert die Notwendigkeit, Netzwerke neu aufzubauen oder neu zu trainieren, wenn sie von Forschungsumgebungen zu Produktionsanwendungen wechseln, die Modellimplementierung Modellbereitstellungs-Pipeline.
Im Kern definiert ONNX einen gemeinsamen Satz von Operatoren - die Bausteine von Modelle für Deep Learning (DL) und maschinelles Lernen sowie ein Standard-Dateiformat. Wenn ein Modell in ONNX konvertiert wird, wird seine Berechnungsstruktur auf einen statischen Berechnungsgraphen abgebildet. In diesem Graphen stellen die Knoten mathematische Knoten mathematische Operationen (wie Faltungen oder Aktivierungsfunktionen), und Kanten stellen den Fluss von Datentensoren zwischen ihnen dar.
Da diese Graphendarstellung standardisiert ist, können Hardwarehersteller optimierte Ausführungsanbieter für
ONNX ERSTELLEN. Dies bedeutet, dass eine einzige .onnx Datei kann auf verschiedenen Geräten beschleunigt werden, darunter ein
CPU,
GPU (Graphics Processing Unit)oder
spezialisiert
TPU Tensor Processing Unit)oft
unter Verwendung der leistungsstarken ONNX.
Für Nutzer des ultralytics Paket ist die Konvertierung eines trainierten Modells in das ONNX ein unkomplizierter
Prozess. Die Bibliothek erledigt die komplexe Zuordnung der Schichten zum ONNX automatisch. Der folgende Code
Schnipsel demonstriert, wie man ein YOLO11 Modell und bereitet
es für einen breiteren Einsatz vorbereitet.
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
# This creates 'yolo11n.onnx' in the current directory
model.export(format="onnx")
Die Flexibilität von ONNX macht es zu einer entscheidenden Komponente in der modernen KI-Infrastruktur, insbesondere für Computer Vision (CV) Aufgaben.
Wenn Sie verstehen, wie ONNX mit anderen Tools interagiert, können Sie die richtige Implementierungsstrategie wählen.
.pt oder
Keras' .h5 eignen sich hervorragend für die Ausbildung und das Sparen
Modellgewichte innerhalb ihrer spezifischen Ökosysteme.
Sie erfordern jedoch häufig, dass das ursprüngliche Framework installiert wird, um das Modell auszuführen. ONNX entkoppelt das Modell vom
dem Trainingsframework, wodurch es einfacher wird, das
KI Einsätze, bei denen die Installation einer vollständigen
aufgrund von Speicherplatzmangel nicht praktikabel ist.