Scoprite come ONNX migliora la portabilità e l'interoperabilità dei modelli di AI, consentendo l'implementazione senza problemi dei modelli Ultralytics YOLO su diverse piattaforme.
Open Neural Network ExchangeONNX) è uno standard open-source progettato per rappresentare modelli di modelli di apprendimento automatico (ML) in un modo che in modo da garantire la portabilità tra diversi framework e hardware. Originariamente sviluppato da aziende come Microsoft e Facebook, ONNX funge da "traduttore universale" per l'IA. Permette agli sviluppatori di addestrare un modello in un ecosistema, come PyTorche di distribuirlo senza problemi in un altro, come TensorFlow o un motore di motore di inferenza. Questa interoperabilità elimina la necessità di ricostruire o riqualificare le reti quando si passa da ambienti di ricerca ad applicazioni di produzione, semplificare in modo significativo la pipeline di di distribuzione dei modelli.
Nel suo nucleo, ONNX definisce un insieme comune di operatori, gli elementi costitutivi di modelli di modelli di deep learning (DL) e di apprendimento automatico, e un formato di file standard. Quando un modello viene convertito in ONNX, la sua struttura computazionale viene mappata in un grafo di calcolo statico. grafico di calcolo statico. In questo grafo, i nodi rappresentano operazioni operazioni matematiche (come le convoluzioni o le funzioni di attivazione) e i bordi rappresentano il flusso di tensori di dati tra di essi.
Poiché la rappresentazione del grafo è standardizzata, i produttori di hardware possono costruire fornitori di esecuzione ottimizzati per
ONNX. Ciò significa che un singolo .onnx può essere accelerato su diversi tipi di hardware, tra cui un
CPU,
GPU (Unità di elaborazione grafica)o
specializzato
TPU Tensor Unità di elaborazioneTensor )spesso
utilizzando il sistema ad alte prestazioni Runtime ONNX.
Per gli utenti di ultralytics conversione di un modello addestrato nel formato ONNX è un processo semplice.
processo semplice. La libreria gestisce automaticamente la complessa mappatura dei livelli allo standard ONNX . Il seguente frammento di codice
dimostra come esportare un modello YOLO11 modello, preparandolo per
per una più ampia diffusione.
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")
La flessibilità di ONNX lo rende un componente fondamentale nelle moderne infrastrutture di IA, in particolare per i compiti di visione artificiale (CV).
Capire come ONNX interagisce con altri strumenti aiuta a selezionare la giusta strategia di distribuzione.
.pt o
Keras .h5 sono eccellenti per la formazione e il risparmio
pesi del modello all'interno dei loro specifici ecosistemi.
Tuttavia, spesso richiedono l'installazione del framework originale per eseguire il modello. ONNX disaccoppia il modello dal framework di
dal framework di addestramento, rendendo più facile l'esecuzione
bordo AI Quando l'installazione di una libreria di formazione completa
è impraticabile a causa di limiti di memoria o di archiviazione.