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. 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.

Afledte ord

1

Kilder

1