About cookies on this site Our websites require some cookies to function properly (required). In addition, other cookies may be used with your consent to analyze site usage, improve the user experience and for advertising. For more information, please review your options. By visiting our website, you agree to our processing of information as described in IBM’sprivacy statement. To provide a smooth navigation, your cookie preferences will be shared across the IBM web domains listed here.
Torna alla versione inglese della documentazione
Distribuzione dei modelli convertiti in formato ONNX
Vantaggi della conversione dei modelli in un runtime dell'
Conversione dei modelli dell'
Conversione dei modelli dell'
Conversione dei modelli di
Conversione dei modelli di
Conversione dei modelli dell'
Conversione dei modelli dell'
Distribuzione di modelli convertiti in form
Distribuzione dei modelli convertiti in formato ONNX
Ultimo aggiornamento: 21 feb 2025
È possibile distribuire e inferire modelli di apprendimento automatico da
o PyTorch
che sono salvati in diversi formati e convertiti nel formato TensorFlow
(Open Neural Network Exchange
). ONNX
è un formato open source per la rappresentazione di modelli di deep learning. Gli sviluppatori possono utilizzare il formato ONNX
per addestrare i loro modelli in un unico framework, come ONNX
o PyTorch
, e poi esportarlo per eseguirlo in un altro ambiente con caratteristiche di performance diverse. Il formato " TensorFlow
" fornisce una soluzione potente per convertire un modello di apprendimento automatico in " ONNX
" ed eseguire inferenze utilizzando il runtime " ONNX
".ONNX
Vantaggi della conversione dei modelli in un runtime dell' ONNX
ONNX
La conversione di un modello in un runtime dell
e offre diversi vantaggi, soprattutto nel contesto delle applicazioni di machine learning e deep learning. Alcuni dei vantaggi della conversione dei modelli in un runtime dell ONNX
:ONNX
Compatibilità multipiattaforma :
fornisce un formato standard per rappresentare i modelli di apprendimento automatico, che rende più facile distribuire i modelli su diversi framework come PyTorch o Tensorflow. È possibile addestrare i modelli in un framework e distribuirli in un altro framework che supporti l'ambiente di esecuzionONNX
.ONNX
Prestazioni migliorate : l'esecuzione dell'
e ottimizza i modelli per l'inferenza applicando varie ottimizzazioni specifiche per hardware e software, come le ottimizzazioni grafiche. Inoltre, supporta l'esecuzione su hardware diversi, come CPU e GPU, garantendo un utilizzo efficiente delle risorse.ONNX
Interoperabilità :
fornisce un modo per addestrare modelli, come PyTorch, TensorFlow, e scikit-learn in un unico framework e poi esportarli per eseguirli in un altro ambiente, il che semplifica i flussi di lavoro. Abbatte le barriere tra i diversi framework di deep learning, consentendo agli sviluppatori di sfruttare i punti di forza delle diverse librerie senza rimanere bloccati in un unico ecosistema.ONNX
Quadri supportati per la conversione
È possibile convertire i modelli di apprendimento automatico che utilizzano i seguenti framework in formato
:ONNX
PyTorch
TensorFlow
CatBoost
LightGBM
XGBoost
Scikit-learn
Conversione dei modelli dell' PyTorch
, in formato dell' ONNX
PyTorch
ONNX
Segui questa procedura per convertire il tuo modello in formato
nel formato PyTorch
:ONNX
Importare le librerie : Iniziare importando le librerie essenziali, come
per l'esecuzione del modello,onnxruntime
per le funzionalità di PyTorch e altre librerie necessarie per l'applicazione.torch
Creare o scaricare un modello di
: È possibile creare un modello diPyTorch
utilizzando il proprio set di dati o utilizzare modelli forniti da archivi di modelli open source esterni come Hugging Face.PyTorch
Convertire il modello
in formato ONNX : Per convertire il modelloPyTorch
in formato ONNX:PyTorch
a. Preparare il modello : assicurarsi che il modello dell'
e sia in modalità di valutazione utilizzando la funzionPyTorch
. Potrebbe essere necessario un tensore di ingresso fittizio per adattarlo alla forma del modello.model.eval()
b. Esportare il modello : Utilizzare la funzione
per convertire il modello in formato ONNX.torch.onnx.export
Verificare la conversione : Dopo aver convertito il modello, verificare che il modello funzioni come previsto utilizzando la libreria
.onnx
Conversione dei modelli dell' TensorFlow
, in formato dell' ONNX
TensorFlow
ONNX
Segui questa procedura per convertire il tuo modello
nel formato ONNX:TensorFlow
Importare librerie : iniziare importando le librerie essenziali, come
per facilitare la conversione dei modellitf2onnx
in ONNX, e altre librerie necessarie per l'applicazione.TensorFlow
Scaricare il modello di
: È necessario scaricare il modello diTensorFlow
creato esternamente e i dati utilizzati per addestrare il modello.TensorFlow
Convertire un modello in formato ONNX : utilizzare il comandoTensorFlow
per convertire un modellotf2onnx.convert
creato in formatoTensorFlow
in formatoSavedModel
. Se si desidera convertire un modello diONNX
, utilizzare il flagTensorFlow Lite
invece del flag--tflite
.--saved-model
Nota:
i modelli e le funzioni di Keras
possono essere convertiti direttamente in Python utilizzando le funzioni tf
o tf2onnx.convert.from_keras
.tf2onnx.convert.from_function
- Verificare la conversione : Dopo aver convertito il modello, verificare che il modello funzioni come previsto utilizzando la libreria
.onnx
Conversione dei modelli di CatBoost
e in formato ONNX
CatBoost
Segui questa procedura per convertire il tuo modello addestrato in ONNX (
):CatBoost
Importazione delle librerie : iniziare importando le librerie essenziali, come
per l'esecuzione del modello,onnxruntime
per le funzionalità dicatboost
, e altre librerie necessarie per l'applicazione.CatBoost
Creare o scaricare un modello di
: È possibile creare un modello diCatBoost
utilizzando il proprio set di dati o utilizzare modelli forniti da archivi di modelli open source esterni come Hugging Face.CatBoost
Convertire il modello
in formatoCatBoost
: Per convertire il modelloONNX
in formatoCatBoost
:ONNX
a. Caricare il modello
: È possibile caricare il modelloCatBoost
utilizzando librerie comeCatBoost
:pickle
catboost_model = pickle.load(file)
b. Esportare il modello : utilizzare la funzione "
" con il parametro di formato impostato su "catboost_model.save_model
" per convertire il modello nel formato "onnx
".ONNX
catboost_model.save_model( onnx_model_name, format="onnx", export_parameters={ 'onnx_domain': 'ai.catboost', 'onnx_model_version': 1, 'onnx_doc_string': 'test model for Regressor', 'onnx_graph_name': 'CatBoostModel_for_Regression' } )
Verificare la conversione : Dopo aver convertito il modello, verificare che il modello funzioni come previsto utilizzando la libreria
.onnx
Conversione dei modelli di LightGBM
e in formato ONNX
LightGBM
Segui questa procedura per convertire il tuo modello in formato
nel formato LightGBM
:ONNX
Importare le librerie : iniziare importando le librerie essenziali, come
per l'esecuzione del modello,onnxruntime
per le funzionalità dilightgbm
, eLightGBM
per la conversione e altre librerie necessarie per l'applicazione.onnxmltools
Creare o scaricare un modello di
: È possibile creare un modello diLightGBM
utilizzando il proprio set di dati o utilizzare modelli forniti da archivi di modelli open source esterni come Hugging Face.LightGBM
Convertire il modello
in formatoLightGBM
: Per convertire il modelloONNX
in formatoLightGBM
:ONNX
a. Caricare il modello
: È possibile caricare il modelloLightGBM
utilizzando librerie comeLightGBM
:pickle
lgbm_model = pickle.load(file)
b. Esportare il modello : utilizzare la funzione "
" per convertire il modello in formato "convert_lightgbm
".ONNX
from onnxmltools import convert_lightgbm from skl2onnx.common.data_types import FloatTensorType from onnxmltools.utils import save_model initial_types = [("float_input", FloatTensorType([None, X.shape[1]]))] onnx_model = convert_lightgbm(model=lgbm_model, initial_types=initial_types) onnx_model_filename = "lgbm_model.onnx" save_model(onnx_model, onnx_model_filename)
Suggerimento:Per la risoluzione dei problemi di conversione dei modelli di
in formatoLightGBM
, vedere Risoluzione dei problemi di Runtime di watsonx.ai.ONNX
Verificare la conversione : Dopo aver convertito il modello, verificare che il modello funzioni come previsto utilizzando la libreria
.onnx
Conversione dei modelli dell' XGBoost
, in formato dell' ONNX
XGBoost
ONNX
Segui questa procedura per convertire il tuo modello in formato
nel formato XGBoost
:ONNX
Importazione delle librerie : iniziare importando le librerie essenziali, come
per l'esecuzione del modello,onnxruntime
per le funzionalità dixgboost
, e altre librerie necessarie per l'applicazione.XGBoost
Creare o scaricare un modello di
: È possibile creare un modello diXGBoost
utilizzando il proprio set di dati o utilizzare modelli forniti da archivi di modelli open source esterni come Hugging Face.XGBoost
Convertire il modello
in formato ONNX : Per convertire il modelloXGBoost
in formato ONNX:XGBoost
a. Caricare il modello
: È possibile caricare il modelloXGboost
utilizzando librerie comeXGBoost
:pickle
xgboost_model = pickle.load(file)
b. Esportare il modello : utilizzare la funzione "
" per convertire il modello in formato "convert_xgboost
".ONNX
from onnxmltools import convert_xgboost from onnxconverter_common.data_types import FloatTensorType from onnxmltools.utils import save_model initial_types = [("float_input", FloatTensorType([None, X.shape[1]]))] onnx_model = convert_xgboost(xgboost_model, initial_types=initial_types) onnx_model_filename = "xgboost_onnx_model.onnx" save_model(onnx_model, onnx_model_filename)
Verifica della conversione : dopo aver convertito il modello, verificare che funzioni come previsto utilizzando la libreria onnx.
Conversione dei modelli dell' scikit-learn
, in formato dell' ONNX
scikit-learn
ONNX
Segui questa procedura per convertire il tuo modello in formato
nel formato scikit-learn
:ONNX
Importare le librerie : iniziare importando le librerie essenziali, come
per l'esecuzione del modello,onnxruntime
per le funzionalità disklearn
,scikit-learn
per la conversione e altre librerie necessarie per l'applicazione.skl2onnx
Creare o scaricare un modello di
: È possibile creare un modello discikit-learn
utilizzando il proprio set di dati o utilizzare modelli forniti da archivi di modelli open source esterni come Hugging Face.scikit-learn
Convertire il modello
in formato ONNX : Per convertire il modelloscikit-learn
in formatoscikit-learn
:ONNX
a. Caricare il modello
: È possibile caricare il modelloscikit-learn
utilizzando librerie comescikit-learn
:pickle
sklearn_model = pickle.load(file)
b. Esportare il modello : utilizzare la funzione "
" per convertire il modello in formato "to_onnx
".ONNX
from skl2onnx import to_onnx onnx_model = to_onnx(sklearn_model, X, target_opset=19) with open("sklearn_model.onnx", "wb") as f: f.write(onnx_model.SerializeToString())
Verificare la conversione : Dopo aver convertito il modello, verificare che il modello funzioni come previsto utilizzando la libreria
.onnx
Ulteriori considerazioni
Ecco alcune considerazioni aggiuntive per convertire i vostri modelli in form
:ONNX
Assi dinamici : Gli assi dinamici possono essere utilizzati da un modello per gestire forme di input variabili, come le dimensioni dinamiche dei lotti o le lunghezze delle sequenze, utili per i modelli utilizzati in applicazioni in cui le dimensioni di input possono variare. Utilizzare gli assi dinamici se il modello gestisce dimensioni di input variabili, come la dimensione dinamica del batch o la lunghezza della sequenza.
Gli assi dinamici riducono anche l'overhead di memoria, in quanto possono essere utilizzati con più ingressi e uscite per adattarsi dinamicamente senza riesportare il modello. È possibile specificare gli assi dinamici durante l'esportazione del modello in
oPyTorch
.TensorFlow
Versione OPSET: la versione OPSET in
determina l'insieme delle operazioni e le relative specifiche supportate dal modello. È un fattore critico durante la conversione e la distribuzione del modello.ONNX
Diversi tempi di esecuzione dell'
e e framework supportano versioni specifiche dell' e. Le vecchie versioni di opset possono essere prive di funzioni o ottimizzazioni presenti nelle versioni più recenti. L'incompatibilità tra la versione opset di un modello e il runtime dell'ONNX
e può causare errori durante l'inferenza. È necessario assicurarsi che la versione di Opset dell'ONNX
e scelta sia supportata dal proprio runtime di destinazione.ONNX
Distribuzione di modelli convertiti in form ONNX
ONNX
Utilizza le specifiche del software "
" per distribuire il tuo modello di apprendimento automatico convertito in formato " onnxruntime_opset_19
". È necessario specificare le specifiche del software e il tipo di modello quando si memorizza il modello nell'archivio di esecuzione di watsonx.ai. Per ulteriori informazioni, vedere Specifiche software supportate.ONNX
Per distribuire modelli convertiti in form
e dall'interfaccia utente, procedere come segue:ONNX
Nello spazio di distribuzione, andare alla scheda Assets (Risorse).
Individuare il modello nell'elenco delle risorse, fare clic sull'icona Menu e selezionare Deploy.
Selezionate il tipo di distribuzione per il vostro modello. Scegliete tra le opzioni di distribuzione online e batch.
Immettere un nome per l'installazione client e, facoltativamente, un nome di servizio, una descrizione e dei tag.
Nota:- Usare il campo Nome dell'installazione client per specificare un nome per l'installazione client invece dell'ID dell'installazione client.
- Il nome del servizio deve essere unico all'interno dello spazio dei nomi.
- Il nome del servizio deve contenere solo questi caratteri: a-z,0-9,_] e deve essere lungo al massimo 36 caratteri.
- Nei flussi di lavoro in cui il modello di base personalizzato viene utilizzato periodicamente, è consigliabile assegnare al modello lo stesso nome ogni volta che viene utilizzato. In questo modo, dopo aver cancellato e poi distribuito nuovamente il modello, si può continuare a usare lo stesso endpoint nel codice.
Selezionare una specifica hardware per il proprio modello.
Selezionate una configurazione e una specifica software per il vostro modello.
Fare clic su Crea.
Test del modello
Seguire questi passaggi per testare i modelli distribuiti e convertiti in formato ONNX:
- Nello spazio di installazione client, aprire la scheda Deployments e fare clic sul nome dell'installazione client.
- Fare clic sulla scheda Test per immettere un testo di richiesta e ottenere una risposta dall'asset distribuito.
- Immettere i dati di prova in uno dei seguenti formati, a seconda del tipo di risorsa distribuita:
- Testo : Immettere i dati di input del testo per generare un blocco di testo come output.
- JSON : inserire i dati di input JSON per generare l'output in formato JSON.
- Fare clic su Genera per ottenere risultati basati sulla richiesta.
Notebook di esempio
I seguenti esempi di notebook mostrano come distribuire modelli di apprendimento automatico convertiti da
o PyTorch
al formato TensorFlow
utilizzando la libreria client Python :ONNX
Notebook | Framework | Descrizione |
---|---|---|
Convertire la rete neurale ONNX da assi fissi ad assi dinamici e utilizzarla con watsonx | ONNX | Impostare l'ambiente Creare ed esportare il modello ONNX di base Convertire il modello da assi fissi ad assi dinamici Persistere il modello ONNX convertito Distribuire e valutare il modello ONNX Pulire Riepilogo e passi successivi |
Utilizzare il modello ONNX convertito da PyTorch con watsonx | PyTorch, ONNX | Creare il modello PyTorch con il set di dati. Convertire il modello PyTorch in formato ONNX Persistere il modello convertito nel repository Watson Machine Learning. Distribuire il modello per la valutazione online utilizzando la libreria client. Punteggio dei record di campione utilizzando la libreria dei clienti. |
Usare il modello ONNX convertito da TensorFlow per riconoscere le cifre scritte a mano con watsonx | Tensorflow, ONNX | Scaricare un modello TensorFlow addestrato esternamente con un set di dati. Convertire il modello TensorFlow in formato ONNX Persistere il modello convertito nel repository Watson Machine Learning. Distribuire il modello per la valutazione online utilizzando la libreria client. Punteggio dei record di campione utilizzando la libreria dei clienti. |
Utilizzare il modello ONNX convertito da CatBoost | CatBoost, ONNX | Modello addestrato CatBoost. Convertire il modello CatBoost in formato ONNX. Persistere il modello convertito nel repository Watson Machine Learning. Distribuire il modello per la valutazione online utilizzando la libreria client. Punteggio dei record di campione utilizzando la libreria dei clienti. |
Utilizzare il modello ONNX convertito da LightGBM | LightGBM, ONNX | Addestrare un modello LightGBM Convertire il modello LightGBM in formato ONNX Persistere il modello convertito nel repository di runtime watsonx.ai Distribuire il modello per lo scoring online utilizzando la libreria client Assegnare il punteggio ai record di esempio utilizzando la libreria client |
Usa il modello ONNX convertito da XGBoost con ibm- watsonx -ai | XGBoost, ONNX | Addestrare un modello XGBoost. Convertire il modello XGBoost nel formato ONNX. Conservare il modello convertito nell'archivio dell' watsonx.ai. Distribuire il modello per il punteggio online utilizzando l'istanza APIClient. Registra i record di esempio utilizzando l'istanza APIClient. |
Usa il modello ONNX convertito da scikit-learn con ibm- watsonx -ai | Scikit-learn, ONNX | Train a scikit-learn model (Addestrare un modello scikit-learn) (Convertire il modello scikit-learn nativo in formato ONNX) (Eseguire la conversione per un modello scikit-learn personalizzato avvolto in una pipeline sklearn) (Persistere il modello convertito nel repository Runtime di watsonx.ai ) (Distribuire il modello per il punteggio online utilizzando la libreria client) (Punteggiare record campione utilizzando la libreria client) |
Argomento principale: Distribuzione di risorse di apprendimento automatico
L'argomento è stato utile?
0/1000