Imparare ONNX per il trading - pagina 2

 

Sfide nell'apprendimento profondo | Tutorial-2 | Scambio di reti neurali aperte | ONNX



Sfide nell'apprendimento profondo | Tutorial-2 | Scambio di reti neurali aperte | ONNX

Le sfide dell'utilizzo di diversi framework di deep learning e acceleratori hardware durante l'inferenza sono discusse in questo segmento video. ONNX è presentato come un tipo di modello intermedio compatibile con vari framework di deep learning e acceleratori hardware, consentendo il trasferimento continuo dei modelli tra di loro. La conversione di modelli ONNX in framework specifici quando necessario consente una maggiore flessibilità quando si utilizzano modelli addestrati su sistemi diversi. Comprendere queste sfide e soluzioni può aiutare a creare una pipeline efficace per lavorare con il deep learning.

  • 00:00:00 In questa sezione del video vengono discusse le sfide del deep learning. I vari framework popolari utilizzati nel deep learning includono Cafe, TensorFlow, Keras e MXNet. Per un'elevata potenza di calcolo, sono necessari acceleratori hardware ottimizzati per soluzioni di deep learning, come GPU NVIDIA, GPU Intel e Google TPU. L'inferenza richiede anche un modello ottimizzato per garantire l'efficienza e sono disponibili varie opzioni hardware di inferenza come NVIDIA T4, CPU e dispositivi S come Google Coral, Raspberry Pi e Jetson VR. È fondamentale considerare i fattori software e hardware durante la selezione di un dispositivo per scopi di deep learning. ONNX è preferito per la sua compatibilità con vari framework di deep learning e acceleratori hardware, facilitando il trasferimento continuo di modelli tra di loro.

  • 00:05:00 In questa sezione, il relatore spiega la sfida dell'utilizzo di un modello addestrato con un framework o hardware diverso nella fase di inferenza. Questo problema può essere risolto con Open Neural Network Exchange (ONNX), un tipo di modello intermedio che può essere utilizzato con hardware e framework diversi. Il modello ONNX può essere convertito in qualsiasi framework specifico, se necessario. Questa soluzione consente una maggiore flessibilità nell'utilizzo di modelli addestrati su sistemi diversi. Il relatore conclude affermando che la comprensione di questi problemi e soluzioni aiuterà a creare una pipeline e a lavorare in modo efficace con il deep learning.
 

Tutto su ONNX | Tutorial-3 | Scambio di reti neurali aperte | ONNX



Tutto su ONNX | Tutorial-3 | Scambio di reti neurali aperte | ONNX

Il video illustra ONNX, un framework di apprendimento automatico intermedio che consente la conversione di modelli in diversi tipi di modello di framework e fornisce funzionalità di ottimizzazione. Introdotto per la prima volta nel 2017 da AWS, Microsoft e Facebook, ONNX ha guadagnato popolarità e contributi da altre società, tra cui IBM, Intel e Huawei. Molte aziende si stanno attualmente dedicando a lavorare sull'ecosistema ONNX.

 

Principi di progettazione | Tutorial-4 | Scambio di reti neurali aperte | ONNX



Principi di progettazione | Tutorial-4 | Scambio di reti neurali aperte | ONNX

In questo video, il relatore spiega i principi di progettazione dell'Open Neural Network Exchange (ONNX). Sviluppato inizialmente per il deep learning, l'ecosistema si è ampliato per supportare anche il machine learning tradizionale. ONNX è adattabile con aggiornamenti da altri framework, standardizzato con operazioni ben definite da applicazioni pratiche e in grado di esportare/importare modelli con facilità. Queste caratteristiche lo rendono una scelta conveniente per gli utenti finali che cercano una soluzione flessibile ed efficiente.

 

Formato file ONNX | Tutorial-5 | Scambio di reti neurali aperte | ONNX




Formato file ONNX | Tutorial-5 | Scambio di reti neurali aperte | ONNX

Questo video tutorial copre il formato di file ONNX per i modelli di machine learning, che contiene elenchi di input e output, nodi e operatori computazionali e parametri dell'operatore insieme a metadati e versione del modello. Il formato file ONNX non è una scatola nera e può essere visualizzato. Il relatore fornisce esempi di operatori come ReLU e PReLU e dimostra un grafico del modello di deep learning e lo confronta con il grafico del formato di file ONNX. Gli operatori personalizzati possono anche essere mappati utilizzando ONNX, rendendolo una scelta popolare per le reti neurali grazie alla sua flessibilità e funzionalità.

  • 00:00:00 In questa sezione, il relatore discute il formato di file ONNX per i modelli di machine learning, che non è una scatola nera e può essere visualizzato. Il formato di file ONNX contiene elenchi di input e output, un elenco di nodi e operatori computazionali e parametri dell'operatore, nonché metadati e la versione del modello. Il relatore mostra un grafico del modello di deep learning, che è una sequenza di nodi computazionali, e lo confronta con il grafico del formato di file ONNX. Il formato di file ONNX contiene schemi di operatori che mappano operatori da framework come Keras, TensorFlow e PyTorch. Il relatore mostra esempi di operatori come ReLU e PReLU.

  • 00:05:00 In questa sezione, il relatore spiega come quando si converte un modello reale nel formato di file ONNX, il framework si limita a mappare gli operatori sul modello. Gli operatori personalizzati possono anche essere creati e mappati utilizzando ONNX. ONNX è una piattaforma flessibile che offre molte funzionalità, motivo per cui è diventata popolare nel campo delle reti neurali.
 

Tipo di dati ONNX | Esercitazione-6 | Scambio di reti neurali aperte | ONNX



Tipo di dati ONNX | Esercitazione-6 | Scambio di reti neurali aperte | ONNX

Il video spiega che ONNX ha due tipi di specifiche: reti neurali profonde e apprendimento automatico. Il primo utilizza tipi di dati tensoriali come numeri interi, float, booleani, stringhe e tipi complessi, utilizzati anche in Python e TensorFlow. Nel frattempo, quest'ultimo utilizza tipi di dati non tensoriali come sequenze e mappe a causa dell'apprendimento basato sulla statistica che in genere non utilizza tensori.

 

Esempio di apprendimento automatico | Esercitazione-7 | Scambio di reti neurali aperte | ONNX



Esempio di apprendimento automatico | Esercitazione-7 | Scambio di reti neurali aperte | ONNX

Questo tutorial video spiega come convertire un modello salvato in formato pickle in un formato di file modello Open Neural Network Exchange (ONNX) per un esempio pratico di machine learning utilizzando ONNX. Il video fornisce un file dei requisiti che specifica i pacchetti necessari e il relatore fornisce un semplice codice per importare i dati, suddividere e addestrare il modello prima della conversione in formato ONNX utilizzando il pacchetto skl2onnx. Viene fornito uno script di conversione e vengono condivise le istruzioni per visualizzare il grafico risultante con lo strumento Netron e per eseguire l'inferenza sul modello ONNX. Il relatore sottolinea la portabilità e l'ottimizzazione del formato ONNX e incoraggia la pratica con il processo di conversione.

  • 00:00:00 In questa sezione, il video illustra un esempio pratico di machine learning utilizzando ONNX. L'esempio prevede l'addestramento di un modello e il suo salvataggio in formato pickle, quindi la sua conversione nel formato di file del modello ONNX. Il video fornisce un file requirements.txt in cui sono specificati tutti i pacchetti di requisiti, inclusi sklearn e skl2onnx, che è il convertitore. Il video mostra quindi un semplice codice per importare il set di dati is, eseguire una suddivisione del test di addestramento e addestrare il modello. Infine, viene fornito uno script di conversione per convertire il modello salvato in formato ONNX utilizzando il pacchetto skl2onnx.

  • 00:05:00 In questa sezione, il relatore spiega come convertire un modello pickle in un modello ONNX utilizzando un semplice script. Lo script prevede il caricamento del modello pickle, la definizione del tipo di dati, la chiamata della funzione convert_scalar e il passaggio dell'oggetto classe prima di salvare il modello come file ONNX. Il relatore dimostra anche come visualizzare il grafico risultante utilizzando lo strumento Netron ed eseguire l'inferenza utilizzando il modello ONNX passando un input di esempio. Il formato ONNX è descritto come più portabile e ottimizzato rispetto al formato pickle, in quanto può essere utilizzato in qualsiasi ecosistema ONNX. L'oratore raccomanda di praticare il processo di conversione per ricordare come farlo in modo efficace.
pickle — Python object serialization
pickle — Python object serialization
  • docs.python.org
Source code: Lib/pickle.py The pickle module implements binary protocols for serializing and de-serializing a Python object structure. “Pickling” is the process whereby a Python object hierarchy is...
 

Tempo di esecuzione ONNX | Tutorial-8 | Scambio di reti neurali aperte | ONNX



Tempo di esecuzione ONNX | Tutorial-8 | Scambio di reti neurali aperte | ONNX

Il relatore discute il runtime ONNX e la sua importanza nel deep learning. ONNX Runtime è un motore ad alte prestazioni, veloce e fondato da Microsoft. È un framework estensibile e modulare che è open source e viene fornito con Windows 10. Microsoft preferisce questo runtime perché è veloce ed efficiente per il deep learning, a differenza del runtime predefinito, che può subire ritardi. Inoltre, il diagramma del runtime ONNX mostra come il runtime ONNX viene utilizzato per convertire un modello esistente in un formato di file ONNX, quindi il runtime ONNX viene utilizzato per eseguire il modello senza preoccuparsi dell'hardware o del framework. Il relatore suggerisce che il pubblico possa approfondire il runtime ONNX sul GitHub ufficiale di ONNX.
 

Zoo modello ONNX | Esercitazione-9 | Scambio di reti neurali aperte | ONNX



Zoo modello ONNX | Esercitazione-9 | Scambio di reti neurali aperte | ONNX

ONNX Model Zoo è una raccolta di modelli preaddestrati per diverse attività come la classificazione delle immagini, il rilevamento di oggetti e l'elaborazione vocale e audio. I modelli con training preliminare sono disponibili per il download come file ONNX e possono essere usati con qualsiasi framework o il runtime ONNX per l'inferenza. Inoltre, le piattaforme cloud come Azure ML offrono funzionalità simili in cui gli utenti possono caricare i propri dati e addestrare i modelli da scaricare come file ONNX. Il prossimo video mostrerà come utilizzare un modello preaddestrato da ONNX Model Zoo per il riconoscimento delle cifre scritte a mano.

 

ONNX Modello Zoo Demo | Tutorial-10 | Scambio di reti neurali aperte | ONNX



ONNX Modello Zoo Demo | Tutorial-10 | Scambio di reti neurali aperte | ONNX

L'esercitazione video mostra come utilizzare ONNX Model Zoo per eseguire l'inferenza su un modello ONNX utilizzando il runtime ONNX. Il presentatore guida gli spettatori attraverso il processo di creazione di un ambiente virtuale, installazione dei pacchetti necessari, download del modello scritto a mano MNIST da ONNX Model Zoo e scrittura di uno script Python per l'inferenza. La demo mostra che il tempo di previsione è rapido e incoraggia gli utenti a scaricare i modelli direttamente da ONNX Model Zoo. Il video anticipa il prossimo tutorial, che riguarderà la conversione di un modello Python in TensorFlow.

  • 00:00:00 In questa sezione, il relatore mostra come scaricare il modello scritto a mano MNIST da ONNX Model Zoo ed eseguire l'inferenza sul runtime ONNX. L'utente deve creare un ambiente virtuale e installare i pacchetti richiesti come ONNX Runtime, OpenCV e NumPy. Il presentatore mostra quindi come scaricare il modello direttamente da ONNX Model Zoo o copiando il collegamento al sito Web CNTK.ai. Una volta scaricato il modello, il relatore spiega come scrivere uno script Python per l'inferenza, incluso il caricamento del modello ONNX, la preelaborazione dell'immagine e l'esecuzione della sessione per ottenere l'output. Infine, il presentatore visualizza la previsione disegnando i risultati in base all'operazione argmax.

  • 00:05:00 In questa sezione, il relatore discute l'inferenza con i modelli ONNX utilizzando il runtime ONNX. Dimostrano l'utilizzo di un modello ONNX pre-addestrato per prevedere le cifre scritte a mano e mostrano che il tempo di previsione è piuttosto rapido. Il relatore menziona inoltre che gli utenti possono scaricare modelli da ONNX Model Zoo e iniziare a inferire senza la necessità di convertirli. Prendono in giro il video successivo, in cui intendono convertire un modello Python in TensorFlow, offrendo agli utenti una comprensione più approfondita del processo di conversione del modello.
 

Demo da PyTorch a Tensorflow | Esercitazione-11 | Scambio di reti neurali aperte | ONNX



Demo da PyTorch a Tensorflow | Esercitazione-11 | Scambio di reti neurali aperte | ONNX

Il video mostra come utilizzare ONNX per convertire un modello PyTorch nel formato TensorFlow. Il processo prevede l'addestramento del modello in PyTorch, il salvataggio in formato .pth e quindi la conversione in formato ONNX prima di convertirlo infine in formato TensorFlow. Il processo di conversione viene mostrato in dettaglio attraverso l'uso di un modello di classificazione delle cifre scritto a mano utilizzando il set di dati MNIST e il modello TensorFlow risultante viene testato con immagini di esempio. Il video tocca anche brevemente la conversione di un modello da Caffe2 a ONNX e suggerisce agli utenti di esplorare ulteriormente ONNX.
  • 00:00:00 In questa sezione del video, il relatore mostra come convertire un modello Python in TensorFlow utilizzando ONNX. Spiegano che durante la conversione dei modelli, è necessario seguire due passaggi: in primo luogo, addestrare il modello nel framework desiderato, quindi convertirlo nel formato di file ONNX. Da lì, può essere convertito nel formato desiderato, come TensorFlow o PyTorch. Il relatore mostra quindi come utilizzare i pacchetti ONNX e TensorFlow per convertire un modello di classificazione delle cifre scritto a mano da PyTorch a TensorFlow utilizzando il set di dati MNIST. Spiegano ogni fase del processo, inclusa l'installazione dei pacchetti necessari, l'importazione delle librerie, la definizione del modello e la creazione di training e test
    funzioni. Il codice del notebook viene fornito nella sezione delle risorse affinché gli utenti possano seguirlo.

  • 00:05:00 In questa sezione del video, il presentatore addestra un modello PyTorch e lo salva in un formato di file .pth. Successivamente, il modello viene caricato e convertito in un formato di file ONNX. Il modello ONNX convertito viene quindi caricato in TensorFlow per testarne la funzionalità su immagini three.png e seven.png. Il modello prevede i valori corretti per entrambe le immagini. Infine, il modello ONNX viene convertito in un modello TensorFlow e salvato in un formato di file .pb, che può essere utilizzato per ulteriori previsioni. Nel complesso, il presentatore mostra come convertire i modelli PyTorch in modelli TensorFlow con l'aiuto di ONNX.

  • 00:10:00 In questa sezione del video, il relatore spiega come convertire il proprio modello da un modello caffe2 a ONNX. Il relatore ha dato un link al taccuino dove è già scritto il codice e sono disponibili tutti i pacchetti richiesti. Il relatore spiega che tutte le possibili conversioni, come PyTorch a ONNX, PyTorch a Caffe2 e TensorFlow a ONNX, sono disponibili sul notebook. Il relatore consiglia agli spettatori di esplorare ulteriormente ONNX e provare esempi in tempo reale per una migliore esperienza di apprendimento. Infine, l'oratore termina il video e ringrazia gli spettatori per aver guardato la serie.
Motivazione: