Open Neural Network Exchange (ONNX)
Was ist ONNX?
ONNX ist ein offenes Dateiformat zur Repräsentation von Machine Learning-Modellen und wird als Community-Projekt verwaltet. Homepage der ONNX Community: onnx.ai
Das ONNX-Format definiert Gruppen von Operatoren in einem standardisierten Format, sodass gelernte Modelle interoperabel mit diversen Frameworks, Runtimes und weiteren Werkzeugen genutzt werden können.
ONNX unterstützt sowohl Beschreibungen Neuronaler Netze als auch klassischer Machine Learning Algorithmen und ist damit sowohl für die TwinCAT Machine Learning Inference Engine als auch für die TwinCAT Neural Network Inference Engine das passende Format.
Warum ONNX?
Durch die Unterstützung von ONNX integriert Beckhoff die TwinCAT Machine Learning-Produkte in offener Art und Weise und garantiert so flexible Workflows. Während der Automatisierungsspezialist in TwinCAT 3 arbeiten kann, kann der Data Scientist mit seinen gewohnten Werkzeugen (PyTorch, Scikit-learn, …) arbeiten.
Der Einsatz von ONNX erleichtert das arbeitsgruppenübergreifende Arbeiten sowohl unternehmensintern als auch unternehmensübergreifend mit Partnern. Der Automatisierungsspezialist stellt dem Data Scientist aufgenommene Daten zur Verfügung. Der Data Scientist erstellt ein ML-Modell und übergibt sein Werk als ONNX-Datei an den Automatisierungsspezialist. Diese Datei enthält bereits alle Informationen, um das erstellte Modell in TwinCAT auszuführen.
Der Offline-Test von Modellen wird vereinfacht, da alle gängigen KI-Frameworks die ONNX-Datei laden und ebenso ausführen können.
Welche Software unterstützt ONNX?
Unterstützte Werkzeuge der ONNX Community können hier eingesehen werden: onnx.ai/supported-tools.
Darunter z. B. die Frameworks:
- PyTorch
- Keras/TensorFlow
- MXNet
- Scikit-learn
- …
Graph Optimierer
Graph Visualisierer
- Netron (https://github.com/lutzroeder/Netron)
- …