ONNX
forkortelse for Open Neural Network Exchange
ONNX er en åben standard for at repræsentere maskinlæringsmodeller, så de kan overføres mellem forskellige frameworks.
Kort fortalt
Et fælles filformat til ML-modeller, der gør det muligt at flytte en model mellem træningsværktøj som PyTorch og produktionsværktøj som ONNX Runtime.
- Kategori
- værktøj
- Niveau
- øvet
- Udtale
- ˈɒnɪks
Betydninger
1- 1
En åben, protobuf-baseret serialiseringsstandard for maskinlæringsmodeller, der understøtter operationer, grafer og metadata på tværs af frameworks.
- Efter træning i PyTorch eksporterede vi modellen til ONNX-format og kørte den i ONNX Runtime på en edge-enhed.
- ONNX-formatet indeholder en beregningsgraf og operatorer, som gør det let at optimere inferens.
Hvornår bruges det
ONNX bruges når man træner en model i et framework som PyTorch, men skal deploye den i et andet miljø som ONNX Runtime, TensorFlow eller en mobilapp. Det gør modellen uafhængig af det oprindelige framework.
Kodeeksempel
import torch
import torch.onnx
# PyTorch model
model = torch.load('model.pth')
model.eval()
# Dummy input for tracing
dummy_input = torch.randn(1, 3, 224, 224)
torch.onnx.export(model, dummy_input, 'model.onnx',
input_names=['input'],
output_names=['output'],
opset_version=11)Eksport af en PyTorch-model til ONNX-format ved hjælp af sporing (tracing).
Oprindelse
Udviklet af Microsoft og Facebook i 2017 som et fælles format for neurale netværk.