Definition

Was ist ONNX (Open Neural Network Exchange)?

| Autor / Redakteur: Stefan Luber / Nico Litzel

(Bild: © aga7ta - stock.adobe.com)

ONNX – Open Neural Network Exchange – ist ein gemeinschaftliches Projekt von Microsoft und Facebook. Es definiert ein offenes Format zur Repräsentation von Deep-Learning-Modellen in verschiedenen Frameworks. Die Modelle lassen sich ohne großen Anpassungsaufwand zwischen Machine Learning Frameworks wie Caffe2, MXNet, Microsoft Cognitive Toolkit oder PyTorch verschieben.

Die Abkürzung ONNX steht für Open Neural Network Exchange. Es handelt sich um ein offenes Format zur Repräsentation von Deep-Learning-Modellen in verschiedenen Frameworks. ONNX ist aus einem gemeinschaftlichen Projekt von Facebook und Microsoft entstanden, das mittlerweile von vielen weiteren Unternehmen wie IBM, Intel, AMD, Huawei, ARM, Qualcomm, NVIDIA und anderen unterstützt wird. Mit dem ONNX-Format ist es möglich, die Modelle ohne größeren Anpassungsaufwand zwischen verschiedenen Machine-Learning-Frameworks wie Caffe2, MXNet, Microsoft Cognitive Toolkit oder PyTorch zu verschieben.

Entwickler können die für den jeweiligen Zweck optimale Kombination zwischen Modell und Framework wählen und müssen keine aufwendige Migration oder Transformation der Modelle durchführen. Wesentliche Bestandteile von ONNX sind Definitionen für Berechnungsgraphen, Operatoren, Funktionen und Standard-Datentypen. Die Interoperabilität der Modelle in den verschiedenen Frameworks verkürzt die Entwicklungszeiten für Anwendungen im Umfeld der Künstlichen Intelligenz und nutzt vorhandene Ressourcen besser aus. So lässt sich ein Modell beispielsweise in einem Framework trainieren und in einem anderen zu Inferenz-Zwecken betreiben. ONNX ist mit MIT-Lizenz über GitHub frei verfügbar. Die aktuelle Version (Stand April 2019) ist 1.5.0.

Die Motivation für ONNX

Deep Learning in neuronalen Netzen basiert auf Berechnungen unter Verwendung spezifischer Graphen und bereitgestellter Daten. Jedes Framework stellt Graphen etwas anders dar und nutzt teils eigene Mechanismen und Methoden. So kommen beispielsweise statische oder dynamische Graphen zum Einsatz. Frameworks stellen in sich geschlossene Einheiten aus Graphen, Schnittstellen und Laufzeitumgebungen dar und sind für bestimmte Einsatzzwecke optimiert. Je nach Anforderung wählen Entwickler das jeweils für ihre Zwecke am besten geeignete Framework. Allerdings kann es passieren, dass für Training und Inferenz eines Modells die Verwendung verschiedener Frameworks sinnvoll wäre. In diesem Fall entsteht immenser Aufwand die Modelle aufgrund der unterschiedlichen Graphendarstellungen zu transformieren und zu migrieren.

ONNX soll einen Ausweg aus diesem Dilemma bieten, indem es ein einheitliches Format zur Repräsentation von Deep-Learning-Modellen in verschiedenen Frameworks bereitstellt. Da es sich um ein offenes Format handelt, ist ONNX vielseitig nutzbar und sorgt für eine bessere Interoperabilität im Umfeld des Deep Learnings.

Die technischen Merkmale von ONNX

ONNX arbeitet mit Bibliotheken und Schnittstellen, die den Import und Export von Modellen erlauben. Die wichtigsten Inhalte von Open Neural Network Exchange sind die Definitionen des Graphen, der Operatoren, der Funktionen und der Standard-Datentypen. Die Berechnungsgraphen bestehen aus einer Abfolge von Knoten, die einen sogenannten azyklischen Graphen bilden. Jeder Knoten im Graphen hat ein oder mehrere Ein- und Ausgänge. Frameworks, die ONNX unterstützen, stellen Implementierungen der ONNX-Operatoren zur Verfügung und sorgen so für die Portabilität der Modelle.

Vorteile durch den Einsatz von ONNX

Der Einsatz von ONNX bietet eine ganze Reihe Vorteile. Deep-Learning-Modelle lassen sich mit wenig Aufwand zwischen verschiedenen Frameworks verschieben. Entwickler sind dadurch in der Lage, das jeweils für ihre Zwecke am besten geeignete Framework auszuwählen. Es lassen sich unterschiedliche Frameworks für das gleiche Modell beispielsweise in der Entwicklung, in der Produktion, in der Trainingsphase oder für die Inferenz einsetzen. Entwicklungszeiten verkürzen sich und Innovationen sind schneller am Markt verfügbar. Zudem werden vorhandene Hard- und Softwareressourcen besser genutzt. Ein Deep-Learning-Modell ist nicht mehr fest an ein bestimmtes Framework gebunden. Verändert sich der Markt oder stehen neue Frameworks mit besserer Eignung für ein bestimmtes Modell zur Verfügung, ist ein schneller und einfacher Umstieg möglich. Hardwarehersteller profitieren durch ONNX, indem sie dank des austauschbaren Formats und der Interoperabilität der Modelle eine größere Zielgruppe ansprechen.

Was ist der ONNX Model Zoo?

Für ONNX existiert ein sogenannter ONNX Model Zoo. Es handelt sich um eine Sammlung von Deep-Learning-Modellen für verschiedene Einsatzbereiche, die im ONNX-Format verfügbar und bereits vortrainiert sind. Zu jedem Modell werden sogenannte Jupyter Notebooks mitgeliefert. Ein Jupyter Notebook ist eine Open-Source-Web-Applikation, die es ermöglicht, Live-Code, Dokumente, Visualisierungen, Texte und Gleichungen zu erstellen und zu teilen. Die Notebooks sind in Python geschrieben und enthalten im Fall des ONNX Model Zoos Beschreibungen des Modells und Links zu den Trainingsdaten.

Was ist ONNX.js?

Bei ONNX.js handelt es sich um eine JavaScript-Bibliothek. Sie führt Berechnungen ONNX-basierter Modelle direkt in einem Webbrowser aus. Rechner mit Browser lassen sich ohne die Notwendigkeit der Installation zusätzlicher Software für maschinelles Lernen verwenden. ONNX.js nutzt sowohl die Rechenleistung der CPU als auch der GPU. Um auf die GPU zuzugreifen, kommt die JavaScript-Programmierschnittstelle WebGL zum Einsatz.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Mathworks erweitert Deep-Learning-Funktionen im neuen Release

Matlab und Simulink 2018b

Mathworks erweitert Deep-Learning-Funktionen im neuen Release

Mathworks hat das Release 2018b von Matlab und Simulink vorgestellt, das Deep Learning in den Fokus der Neuheiten stellt. So löst beispielsweise die Deep Learning Toolbox die vorherige Neural Network Toolbox ab, um Netzarchitekturen einfacher zu entwerfen. lesen

Windows 10 IoT Update bringt Machine Learning und 10 Jahre Support

Windows 10 IoT Update bringt Machine Learning und 10 Jahre Support

Nicht nur für Desktop-PCs, auch für das Embedded-OS Windows 10 IoT hat Microsoft ein October Update 2018 ausgerollt. Wesentliche Neuerungen sind dabei Anbindung an Azure IoT Edge, Windows Machine Learning, die Unterstützung von NXP-i.MX-Prozessoren und ein Support von bis zu zehn Jahren. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 46056251 / Definitionen)