Imparare ONNX per il trading - pagina 12

 

ONNX e la JVM


ONNX e la JVM

Il supporto ONNX su Java Virtual Machine (JVM) è fondamentale poiché i modelli ML stanno diventando sempre più importanti praticamente in ogni applicazione. Poiché Java è una delle più grandi piattaforme utilizzate nella creazione di applicazioni software live, è essenziale fornire supporto all'interno dei linguaggi di programmazione, come Java o C#. Oracle mira a fornire l'API C di runtime ONNX in Java, consentendo una facile implementazione con un impatto minimo sulle prestazioni attraverso l'uso di un sottile strato dell'API Java sull'API C. Il relatore discute anche di una libreria open source per la scrittura di modelli ONNX da Java, introduce un esempio di grafico di regressione logistica e invita a contribuire all'esportazione ONNX in Trippo mentre discute la mancanza di standardizzazione nel formato dei metadati ONNX.

  • 00:00:00 In questa sezione, Adam Pocock, ricercatore del gruppo di ricerca sull'apprendimento automatico presso Oracle Labs, spiega perché è importante supportare ONNX su Java Virtual Machine (JVM). Con i modelli ML che diventano sempre più importanti in quasi tutte le applicazioni, è fondamentale fornire supporto all'interno dei linguaggi in cui sono scritte le applicazioni, come Java o C#. Secondo Pocock, Java è una delle più grandi piattaforme per la creazione di applicazioni software live in tutto il mondo, con milioni di sviluppatori Java. Di conseguenza, l'obiettivo di Oracle è quello di fornire l'API ONNX runtime C in Java, semplificandone l'implementazione per gli utenti, con un impatto minimo sulle prestazioni. Viene mostrato un rapido esempio di codice per dimostrare lo strato sottile dell'API Java rispetto all'API C.

  • 00:05:00 In questa sezione, il relatore discute le sfide dell'utilizzo di oggetti Java con un oggetto nativo accoppiato al fine di ridurre al minimo i costi generali per i modelli di apprendimento automatico. Spiegano che esistono reti di sicurezza per garantire che tutto venga ripulito, ma non è consigliabile utilizzare array regolari. Il relatore introduce anche una libreria open source per la scrittura di modelli ONNX da Java, che include la convalida e il controllo degli attributi e la possibilità di esportare facilmente array Java. Forniscono un esempio di come scrivere un grafico di regressione logistica utilizzando questa libreria e menzionano i piani per espandere l'enumerazione dell'operatore e integrare la provenienza e i metadati nei modelli convertiti.

  • 00:10:00 In questa sezione, il relatore discute la mancanza di standardizzazione relativa al formato dei metadati in ONNX. Sebbene esista la possibilità di includere dati come dati di addestramento e iperparametri nei metadati ONNX, non è standardizzato. Il relatore esprime interesse per il lavoro che Intel sta facendo per standardizzare il formato dei metadati. Il relatore invita anche a qualsiasi contributo al materiale di esportazione ONNX in Trippo e incoraggia la discussione sull'argomento.
 

Crea la tua soluzione di inferenza del modello ad alte prestazioni con DJL e ONNX Runtime



Crea la tua soluzione di inferenza del modello ad alte prestazioni con DJL e ONNX Runtime

La Deep Java Library (DJL) è una libreria di machine learning basata su Java che astrae le librerie di deep learning e offre più backend, come Apache MXNet, TensorFlow e PyTorch. La libreria dispone di una serie di modelli preaddestrati per varie attività ed è pronta per il servizio, essendo stata sottoposta a test rigorosi per garantire le massime prestazioni pur avendo il controllo sull'utilizzo della memoria. Gli altoparlanti introducono anche il concetto di motore ibrido che carica entrambi i motori insieme, offrendo una transizione più fluida tra i motori per l'inferenza. Ulteriori sviluppi includono il supporto dei server ARM, l'esecuzione di ONNX Runtime su dispositivi Android e l'introduzione della soluzione del motore ibrido sui dispositivi edge.

  • 00:00:00 In questa sezione, il relatore introduce la Deep Java Library (DJL) e la sua integrazione con ONNX Runtime, che ha dimostrato di avere buone prestazioni per i casi d'uso di machine learning sia all'interno che all'esterno di Amazon. DJL è una libreria di machine learning basata su Java che astrae le librerie di deep learning e offre più backend, come Apache MXNet, TensorFlow e PyTorch. DJL ha una serie di modelli pre-addestrati, inclusi quelli popolari di Hugging Face e Torch Hub, per attività come la classificazione delle immagini, il rilevamento di oggetti, l'analisi dei sentimenti e il riconoscimento delle azioni. Il vantaggio di DJL è che è pronto per il servizio ed è stato sottoposto a test rigorosi per garantire le massime prestazioni pur avendo il controllo sull'utilizzo della memoria. Il relatore condivide anche alcuni casi d'uso di clienti di successo che hanno sfruttato ONNX Runtime e DJL, mostrando miglioramenti significativi nella velocità di inferenza del modello e nell'inferenza multi-threading, anche durante la conversione da diversi framework di deep learning come TensorFlow e PaddlePaddle, che non supportavano thread-safe multi-threading.

  • 00:05:00 In questa sezione, i relatori discutono delle sfide affrontate dagli utenti di ONNX Runtime a causa della mancanza di operatori integrati, rendendo difficile eseguire la pre-elaborazione e la post-elaborazione in Java per l'array non dimensionale operazione. Propongono un nuovo concetto chiamato motore ibrido, che carica entrambi i motori insieme contemporaneamente, consentendo una transizione più fluida tra i motori per l'inferenza. La libreria Deep Java offre una classe di criteri in cui l'utente può definire come verrà caricato il proprio modello e il traduttore fornisce l'astrazione per eseguire la pre-elaborazione e la post-elaborazione. Introducono anche ND Manager, un'architettura ad albero che sostituisce il sistema di garbage collection in Java per fornire una raccolta di memoria economica. I relatori menzionano ulteriori sviluppi, come il supporto del server ARM, l'esecuzione di ONNX Runtime su dispositivi Android e l'introduzione della soluzione del motore ibrido sui dispositivi edge.
 

[FlexFlow Bootcamp 2020] Supporti front-end FlexFlow: TensorFlow Keras, PyTorch, ONNX e altro



[FlexFlow Bootcamp 2020] Supporti front-end FlexFlow: TensorFlow Keras, PyTorch, ONNX e altro

In questa sezione del video, il relatore discute l'API FlexFlow Python, che supporta TensorFlow Keras, PyTorch e ONNX. Il processo di creazione e addestramento di un modello comporta l'aggiunta di operatori al modello, la compilazione del modello, la creazione di caricatori di dati e l'inizializzazione/addestramento del modello utilizzando la funzione di adattamento o procedure di addestramento personalizzate. I relatori discutono anche del supporto per i modelli Keras e PyTorch in FlexFlow, nonché della possibilità di importare modelli preesistenti attraverso la rappresentazione intermedia ONNX. Tuttavia, è importante garantire la coerenza tra la libreria utilizzata per creare FlexFlow e quella utilizzata per creare il pacchetto python ONNX.

  • 00:00:00 In questa sezione del video, i relatori introducono il supporto front-end in FlexFlow, in particolare l'API Python. Il runtime FlexFlow si basa sul runtime Legion, che è un sistema di programma basato su attività sviluppato da ricercatori della Stanford University, NVIDIA e Los Alamos. L'API Python chiama l'API C++ tramite la libreria cffi e un sottile strato di API Python fornisce le stesse prestazioni dell'utilizzo dell'API C++. I relatori discutono quindi i passaggi per creare un modello con l'API FlexFlow Python, che prevede prima la creazione di un file di configurazione e quindi la creazione di un tensore di input in formato NCHW. Inoltre, introducono il supporto per Keras e ONNX.

  • 00:05:00 In questa sezione del video, il relatore discute il processo di creazione e addestramento di un modello utilizzando l'API FlexFlow Python, che supporta TensorFlow Keras, PyTorch e ONNX. Il relatore inizia spiegando come aggiungere operatori al modello, come l'operatore 2D di convoluzione, che prende sempre un tensore di input e restituisce un tensore di output. Il passaggio successivo consiste nel compilare il modello, che alloca i tensori e ottimizza la strategia di parallelizzazione e la fusione del modello. Quindi, vengono creati caricatori di dati e il modello viene inizializzato e addestrato utilizzando la funzione di adattamento o procedure di addestramento personalizzate. Il relatore evidenzia inoltre le somiglianze tra le API Python e C++ e presenta un elenco di operatori supportati da FlexFlow, con la possibilità di implementare nuovi operatori su richiesta. Infine, il relatore discute il supporto per i modelli Keras e PyTorch in FlexFlow, con una demo programmata per l'esercitazione pratica.

  • 00:10:00 In questa sezione, i relatori discutono dell'importazione di modelli preesistenti in FlexFlow, in particolare attraverso la rappresentazione intermedia ONNX. Il pacchetto ONNX consente di esportare i modelli da altri framework di deep learning, come PyTorch o TensorFlow, e di importarli in FlexFlow utilizzando lo stesso nome file. Tuttavia, è importante assicurarsi che la libreria utilizzata per creare FlexFlow sia la stessa utilizzata per creare il pacchetto python ONNX. Il supporto ONNX è ancora un lavoro in corso e le patch sono benvenute.
 

Apprendimento del machine learning con .NET, PyTorch e ONNX Runtime



Apprendimento del machine learning con .NET, PyTorch e ONNX Runtime

In questo video sull'apprendimento del machine learning con .NET, PyTorch e il runtime ONNX, i relatori introducono il runtime ONNX e spiegano i diversi passaggi per addestrare un modello di machine learning. Dimostrano inoltre come utilizzare il formato ONNX con .NET per il deep learning e discutono dell'importanza di comprendere gli iperparametri e il metodo di ottimizzazione per previsioni accurate del modello. I relatori mostrano anche come utilizzare il runtime ONNX per caricare un modello e fare previsioni, nonché come gestire eventuali errori potenziali con un try-block durante l'esecuzione di una sessione. Inoltre, discutono dell'uso del vettore di insicurezza per mostrare l'incertezza dell'IA nelle sue previsioni e menzionano alcuni settori in cui viene utilizzata l'IA, come il rilevamento delle frodi e i sistemi di raccomandazione.

  • 00:00:00 In questa sezione del video "Apprendimento del machine learning con .NET, PyTorch e il runtime ONNX", gli host presentano il runtime ONNX e come può essere utilizzato con .NET per il deep learning. Spiegano che una volta addestrato un modello, il passaggio successivo è inserire il file del modello nel progetto e ottenere la risposta. Usano l'esempio del riconoscimento dei numeri e mostrano un repository GitHub Py Torch con un modello di rete neurale convoluzionale. Sottolineano inoltre l'utilità di VS Code come IDE per Python, con le sue caratteristiche e funzionalità integrate.

  • 00:05:00 In questa sezione, il relatore discute di come utilizza i dati dei test per addestrare il proprio modello di apprendimento automatico e, una volta individuato il modo migliore per regolare le manopole, salva il modello e chiude l'acqua. Dimostrano un esempio di un modello che hanno addestrato con immagini di numeri da zero a nove, spiegando che ci sono dieci elementi nell'output perché le immagini sono solo da zero a nove. Sottolineano inoltre l'importanza della funzione di perdita, che misura la differenza tra il risultato previsto e il risultato effettivo, e l'accuratezza, che misura quanti risultati sono corretti o errati. Il relatore suggerisce che la scelta della forma del modello corretta, gli iperparametri come la velocità di apprendimento, la dimensione del batch e le epoche e il test su diversi set di dati sono passaggi essenziali per garantire che l'algoritmo di apprendimento automatico raggiunga un'elevata precisione.

  • 00:10:00 In questa sezione del video, i relatori discutono dell'uso del formato ONNX, descritto come "PDF per reti neurali". Dimostrano la creazione di un file ONNX e quindi mostrano come utilizzarlo all'interno di un'applicazione .NET utilizzando il runtime ONNX. Viene spiegato l'uso della variabile globale della sessione di inferenza, al fine di evitare la necessità di ricaricare il file per ogni inferenza. Viene inoltre evidenziata l'importanza di comprendere il metodo di ottimizzazione del modello e gli iperparametri. Infine, vengono discusse le differenze di dimensioni tra i modelli e come ciò influisce sulla difficoltà di fare previsioni.

  • 00:15:00 In questa sezione, il relatore spiega come utilizzare il runtime ONNX per caricare un modello e fare previsioni, in particolare nel contesto della visione artificiale. Dimostrano l'utilizzo di un esempio di disegno del numero 3 e di conversione in un'immagine di 28 x 28 pixel, seguita dalla creazione di un singolo array float e dalla media di tutti i colori sottraendo 255. L'oratore discute anche l'uso del tensore di t , un tipo di dati utilizzato dal runtime ONNX, per un'indicizzazione efficiente nella memoria e l'importanza di normalizzare l'immagine per un input corretto. Mostrano anche come creare un tensore dal valore ONNX denominato e come gestire eventuali errori potenziali con un blocco try durante l'esecuzione di una sessione.

  • 00:20:00 In questa sezione, i relatori stanno dimostrando il processo di utilizzo di PyTorch e .NET nel riconoscimento dei numeri utilizzando l'apprendimento automatico. Il sistema identifica le cifre come matrici ed è addestrato a identificare cifre specifiche utilizzando algoritmi di ottimizzazione. Il sistema non ha la capacità di dire "Non lo so" e invece darà sempre una risposta migliore, anche se potrebbe essere sbagliata se presentata con input non familiari. L'output finale è un vettore di probabilità, che viene poi trasformato in un formato leggibile dall'uomo.

  • 00:25:00 In questa sezione, il relatore discute su come utilizzare un vettore di insicurezza per mostrare l'incertezza dell'IA nelle sue previsioni. Il relatore osserva che questa funzione è disponibile solo se è stato addestrato in un tale set di dati sull'incertezza. Il relatore chiarisce quindi la differenza tra le fasi di addestramento e inferenza nell'apprendimento automatico e come sono separate in ML.NET. Il relatore menziona anche che il formato ONNX può essere utilizzato nelle applicazioni .NET e che di solito viene utilizzato per set di dati più complessi come i modelli di reti neurali. Infine, il relatore afferma che l'intelligenza artificiale è attualmente utilizzata in vari settori come il rilevamento delle frodi e i sistemi di raccomandazione.
 

Come leggere e scrivere un modello ONNX in ML.NET



Come leggere e scrivere un modello ONNX in ML.NET

Il video inizia introducendo ONNX, un formato aperto creato da Microsoft e Facebook che consente lo scambio di modelli di machine learning tra diversi framework. Il relatore spiega come ML.NET, una libreria di machine learning open source e multipiattaforma, supporta i modelli ONNX. Il video passa quindi a mostrare come creare ed esportare un modello ML.NET in un file ONNX, usando il pacchetto ONNX Runtime. Una volta creato il modello ONNX, il video spiega come usarlo per fare previsioni su nuovi dati in ML.NET. Nel complesso, il video fornisce una guida completa su come usare i modelli ONNX con ML.NET per le applicazioni di machine learning.

 

Integrazione dei modelli ML di scikit-learn con ML.NET utilizzando ONNX - Gruppo utenti ML.NET pratico 18/02/2022



Integrazione dei modelli ML di scikit-learn con ML.NET utilizzando ONNX - Gruppo utenti ML.NET pratico 18/02/2022

In questo video, il relatore discute l'integrazione dei modelli di machine learning Scikit-learn con l'ecosistema .NET utilizzando ONNX. Usano il punteggio principale nel campo del marketing digitale come esempio pratico di come costruire, distribuire e testare modelli di apprendimento automatico per i sistemi client. Il relatore spiega il processo di valutazione dei lead e sottolinea l'importanza di creare uno strumento automatizzato che massimizzi l'efficienza dei team di marketing e vendita. Il relatore discute la sfida dell'implementazione di modelli di machine learning per i sistemi client e presenta ONNX come soluzione. Forniscono una panoramica degli strumenti, dei pacchetti e delle tecniche utilizzati per integrare i modelli ML di Scikit-learn con ML.NET utilizzando ONNX. Il relatore dimostra come creare e serializzare un modello di regressione logistica, convertirlo in formato ONNX ed eseguire il modello ONNX, prima di integrarlo con l'ecosistema .NET usando Funzioni di Azure. Nel complesso, questo video funge da guida pratica per gli sviluppatori che desiderano integrare i modelli ML di Scikit-learn con l'ecosistema .NET utilizzando ONNX.

In questa sessione pratica del gruppo di utenti ML.NET, il relatore dimostra l'uso del formato ONNX per creare un modello ONNX di punteggio principale che può essere incorporato nell'ecosistema Dot Net. L'implementazione può essere utilizzata in parallelo con ML.NET, consentendo l'esecuzione di modelli ONNX utilizzando il runtime ONNX mentre si esegue l'apprendimento automatico utilizzando ML.NET. Il relatore condivide un repository GitHub che contiene le tecniche utilizzate, le librerie e le istruzioni dettagliate per la creazione del modello ONNX. L'uso del formato ONNX consente un motore di runtime multipiattaforma e aiuta a colmare il divario tra data scientist e sviluppatori di applicazioni. Il valore della sessione risiede nell'implementazione pratica di un sistema di proof of concept, che può essere utilizzato con altri algoritmi.

  • 00:00:00 In questa sezione, il relatore introduce l'argomento dell'integrazione dei modelli di apprendimento automatico Scikit-learn nell'ecosistema .NET e mostra un esempio pratico di come farlo. Discutono anche dell'Open Neural Network Exchange Format (ONNX) e di come aiuta a distribuire i modelli all'interno dell'ecosistema .NET. Il relatore presenta il progetto del proprio team di lead scoring nel campo del marketing digitale, utilizzando la propria conoscenza del dominio aziendale per sviluppare uno strumento complementare che automatizzi il processo di lead scoring. Forniscono una breve panoramica del processo di punteggio principale e sottolineano l'importanza di costruire un sistema che sia attivo e funzionante alla fine della giornata.

  • 00:05:00 In questa sezione, il relatore spiega il processo di conversione dei lead e la necessità dell'apprendimento automatico per ottimizzare il punteggio e il processo di generazione dei lead. Il relatore sottolinea l'importanza dei big data generati dai team di marketing e vendita digitali e la necessità di un formato strutturato predeterminato per i dati. Utilizzando l'apprendimento automatico, possono adottare un approccio supervisionato per recuperare i dati storici e migliorare il processo di conversione dei lead. Lo strumento automatizzato mira a massimizzare l'efficienza dei team di marketing e vendita fornendo approfondimenti dai dati, come l'identificazione delle caratteristiche più importanti e la messa a punto della strategia di marketing per generare più lead. Il prototipo prevede il recupero di dati da diverse fonti e l'implementazione di tecniche tradizionali di data science come la pulizia dei dati, l'analisi esplorativa dei dati e la preparazione dei dati prima di applicare il modello di apprendimento automatico.

  • 00:10:00 In questa sezione del video, il relatore discute il processo di generazione di informazioni sui dati e costruzione di modelli di apprendimento automatico, nonché la sfida di implementare questi modelli per essere utilizzati da clienti e aziende. Introducono ONNX (Open Neural Network Exchange) come possibile soluzione a questa sfida di implementazione. ONNX è un formato di file che rappresenta i modelli sotto forma di grafici ed è indipendente dal framework, il che significa che può essere condiviso tra diversi strumenti e framework di machine learning. Il runtime ONNX è un set di API per l'integrazione dei modelli negli ambienti di destinazione ed è multipiattaforma e ad alte prestazioni. Il relatore fornisce collegamenti al sito Web ONNX e GitHub per ulteriori informazioni.

  • 00:15:00 In questa sezione, il relatore discute la sfida dell'integrazione dei modelli di machine learning nei sistemi client dopo che sono stati sviluppati utilizzando strumenti di data science come Python. Raccomandano di utilizzare ONNX come formato unificato per i modelli e dimostrano come importare, leggere, creare, distribuire e testare il modello in un ecosistema .NET. Il relatore menziona anche un set di dati sul punteggio principale disponibile pubblicamente che può essere utilizzato per costruire un prototipo per il marketing basato sui dati. Discutono tecniche come la pulizia dei dati, l'analisi esplorativa dei dati e l'apprendimento automatico supervisionato, inclusa la regressione e la classificazione per gli scenari di punteggio principale. L'obiettivo è massimizzare l'efficienza per i team di marketing e vendita e contribuire a migliorare le prestazioni concentrandosi sui clienti più potenziali.

  • 00:20:00 In questa sezione del video, il relatore fornisce una panoramica degli strumenti e dei pacchetti utilizzati per integrare i modelli ML di scikit-learn con ML.NET utilizzando ONNX. Dicono che stanno usando la distribuzione Anaconda per l'elaborazione Python, il notebook Jupyter per costruire i modelli con la libreria scikit-learn basata su Python e .NET versione 6 con ONNX versione 1.9 e ONNX runtime versione 181. L'oratore esamina brevemente il set di dati stanno utilizzando e le tecniche che hanno implementato per il data wrangling, l'analisi esplorativa dei dati e le metriche di valutazione delle prestazioni. Dicono anche di aver costruito un modello logistico con una precisione superiore all'82% utilizzando la regressione logistica per scopi di classificazione utilizzando l'algoritmo Lipliner.

  • 00:25:00 In questa sezione, il relatore discute il processo di costruzione di un modello di regressione logistica per prevedere il punteggio principale e quindi serializzarlo utilizzando la libreria pickle in Python per salvarlo come file pkl. Successivamente, il presentatore carica il file pkl per testare il modello e il risultato mostra una precisione di 0,76 sul set di test. Il relatore mostra quindi come convertire il modello da scikit-learn al formato ONNX, necessario per la distribuzione del modello nell'ecosistema Microsoft.NET. Questa sezione può fungere da guida pratica su come integrare i modelli di apprendimento automatico scikit-learn con ML.NET tramite ONNX.

  • 00:30:00 In questa sezione, il relatore discute il processo di integrazione dei modelli ML scikit-learn con ML.NET utilizzando ONNX. Suggeriscono di controllare l'elenco degli algoritmi supportati dai convertitori ONNX di ML.NET prima di implementare qualsiasi apprendimento automatico e dimostrano come importare i convertitori supportati da SK2ONNX. Definiscono quindi il percorso per memorizzare il modello e il numero di caratteristiche, sottolineando l'importanza dello schema nella denominazione degli input e convertendoli in tipo di tensore di flusso. Infine, mostrano come costruire il modello ONNX utilizzando la funzione convert_sklearn, utilizzando il modello e i tipi iniziali precedentemente definiti.

  • 00:35:00 In questa sezione, il relatore mostra come salvare un modello di machine learning scikit-learn basato su Python in formato ONNX e come eseguire il modello ONNX utilizzando la sessione di inferenza del runtime ONNX. Il nome di input del modello ONNX è identificato e i nomi di output della firma non sono di interesse per questa dimostrazione. Inoltre, utilizzando il metodo predict_proba, vengono estratte le probabilità di essere o meno convertite e utilizzate come indicatori e pesi specifici dello scenario per il modello di punteggio principale.

  • 00:40:00 In questa sezione, il relatore inizia creando una soluzione vuota in Visual Studio 2022 per l'integrazione di un modello ML scikit-learn, in particolare un modello di regressione logistica, con l'ecosistema .NET tramite ONNX. L'oratore crea quindi una funzione di Azure nella soluzione e ottiene il codice boilerplate per implementarla con .NET 6 come trigger HTTP. Usano Insomnia per creare una nuova richiesta con funzionalità di input in formato JSON, che verrà analizzata e utilizzata per l'integrazione del sistema. Il relatore installa il pacchetto di runtime Microsoft ML ONNX da NuGet e crea una classe per spiegare il set di funzionalità di input. L'oratore utilizza quindi frammenti di codice per accelerare il processo di integrazione.

  • 00:45:00 In questa sezione, il relatore discute come recuperare e deserializzare il corpo della richiesta da un'API utilizzando il convertitore JSON, al fine di inviarlo come input a un modello ML. Creano un oggetto della classe del parametro LSLead Scoring Model e gli assegnano valori dal corpo della richiesta deserializzato. Spiegano anche l'importanza di implementare il tensore di input e convertire i dati di input in un oggetto TensorFlow del tensore, in modo che possa essere incorporato nella sessione di inferenza. Infine, creano una sessione di inferenza utilizzando il runtime ONNX e recuperano l'output della sessione per eseguire il modello ML.

  • 00:50:00 In questa sezione, il relatore tenta di mostrare come integrare i modelli ML scikit-learn con ML.NET utilizzando ONNX, ma incontra difficoltà tecniche con Visual Studio. Dopo aver tentato di risolvere il problema, il relatore ricorre alla visualizzazione dei frammenti di codice e discute i pacchetti necessari e i tensori di input necessari per l'integrazione. Nonostante le battute d'arresto, il presentatore è in grado di fornire un collegamento alla funzione e al set di funzionalità di input utilizzato nella demo affinché gli spettatori possano accedervi e provarli da soli.

  • 00:55:00 In questa sezione, il relatore mostra come utilizzare ONNX per integrare i modelli di apprendimento automatico scikit-learn con ML.NET. Per prima cosa mostrano come scartare l'output delle probabilità dall'implementazione della probabilità di previsione e convertirle in un dizionario di valori long e float che rappresentano le probabilità di essere o meno convertite. Quindi usano queste probabilità per ottenere un punteggio principale per essere convertito e non essere convertito, che visualizzano in un messaggio Insomnia. Infine, usano un taccuino Jupyter per mostrare come un record del set di test viene inviato al modello e recuperare il corrispondente valore di output di uno, indicando che è probabile che l'individuo venga convertito.

  • 01:00:00 In questa sezione, il relatore dimostra come l'uso del formato ONNX (Open Neural Network Exchange) consenta la creazione di un modello ONNX di lead scoring che può essere implementato come parte di un altro framework. Il presentatore mostra che questo può essere fatto utilizzando il framework di targeting TensorFlow, Keras e Dot Net. Il presentatore mostra anche che, sulla base del modello ONNX risultante, sono stati in grado di incorporare questo formato di file nell'ecosistema Dot Net e successivamente creare una soluzione semplice in grado di eseguire la sessione e recuperare i risultati. Discutono anche di come l'utilizzo del formato ONNX consenta un motore di runtime multipiattaforma e aiuti a colmare il divario tra data scientist e sviluppatori di applicazioni. Il relatore condivide un repository di codice su GitHub che include un documento notebook e un'area di lavoro necessari per iniziare a integrare i modelli ONNX all'interno dell'ecosistema Dot Net.

  • 01:05:00 In questa sezione, il relatore condivide un repository GitHub che contiene le tecniche utilizzate, le librerie e le istruzioni passo-passo per la creazione del modello ONNX, con la parte più importante che è l'incorporazione di pacchetti runtime ONNX e ONNX . Il relatore sottolinea inoltre che l'implementazione può essere utilizzata in parallelo con ML.NET, consentendo l'esecuzione di modelli ONNX utilizzando il runtime ONNX mentre si esegue l'apprendimento automatico utilizzando ML.NET. Infine, il relatore ringrazia i partecipanti per la loro pazienza e il loro tempo e osserva che il valore della sessione risiede nell'implementazione pratica di un sistema di proof of concept, che può essere utilizzato con altri algoritmi.
 

Modelli di machine learning con ONNX e .NET | .NET Conf 2022



Modelli di machine learning con ONNX e .NET | .NET Conf 2022

Il video "Machine learning models with ONNX and .NET" di .NET Conf 2022 introduce gli spettatori ai concetti di intelligenza artificiale e machine learning, inclusa la differenza tra deep learning e programmazione tradizionale. I relatori forniscono una panoramica di Azure Machine Learning, PyTorch e ONNX e dimostrano come creare una pipeline usando Azure Machine Learning per addestrare modelli di machine learning con ONNX e .NET. Spiegano inoltre come integrare un modello di machine learning in un'applicazione .NET Maui e discutono delle tecniche per ridurre le dimensioni dei modelli ONNX per i dispositivi mobili. La sezione termina introducendo il prossimo oratore, Rory, che parlerà di accessibilità.

  • 00:00:00 In questa sezione del video, Beatriz e Henk introducono l'intelligenza artificiale e l'apprendimento automatico e la differenza tra i due. Spiegano che l'apprendimento automatico è un sottoinsieme dell'intelligenza artificiale e ha la capacità di apprendere dai dati senza essere esplicitamente programmato con un algoritmo. Invece, produce un modello basato sui dati forniti, che possono quindi essere utilizzati per fare previsioni o decisioni.

  • 00:05:00 In questa sezione, il relatore spiega la differenza tra le fasi di addestramento e previsione dell'apprendimento automatico. La fase di previsione funziona come la programmazione tradizionale in cui viene fornito un input a un modello o algoritmo, produce una risposta o una previsione e consente di risolvere problemi complessi difficili da risolvere con la programmazione tradizionale. L'oratore parla anche di deep learning, che è un sottoinsieme dell'apprendimento automatico basato su reti neurali artificiali ispirate al cervello. La demo che il relatore presenta nel video utilizza la visione artificiale, un campo dell'intelligenza artificiale che addestra i computer a interpretare e comprendere il mondo visivo, che include la classificazione, il rilevamento di oggetti e la segmentazione delle immagini. Infine, il relatore discute il concetto di transfer learning, in cui un modello addestrato per un'attività viene utilizzato come punto di partenza per un'attività diversa, risparmiando tempo nell'addestramento del modello.

  • 00:10:00 In questa sezione, i relatori forniscono una panoramica dei due framework che utilizzeranno per il loro modello di machine learning: PyTorch e ONNX. PyTorch è un framework di deep learning open source che i relatori preferiscono per questa demo, mentre ONNX è un formato aperto creato per rappresentare modelli di machine learning che consente agli sviluppatori di intelligenza artificiale di utilizzare modelli in una varietà di framework. Spiegano che ONNX consente loro di utilizzare PyTorch per creare il proprio modello e quindi salvarlo in ONNX, rendendo possibile la lettura di quel modello dall'interno di .NET MAUI. Introducono inoltre Azure Machine Learning, che include un set di servizi cloud che abilitano carichi di lavoro collaborativi di machine learning, insieme ai suoi elementi chiave: esperimenti, datastore, ambienti e gestione dei modelli. Spiegano che la gestione dei modelli è la chiave della loro storia perché addestreranno il loro modello in PyTorch e lo registreranno nella gestione dei modelli in modo che altri possano verificarlo e utilizzarlo nel software di loro scelta. Forniscono inoltre una panoramica delle pipeline di machine learning, che sono flussi di lavoro di passaggi che possono utilizzare origini dati, set di dati ed essere eseguiti su destinazioni di calcolo.

  • 00:15:00 In questa sezione, il relatore illustra come creare una pipeline usando Azure Machine Learning Designer per addestrare modelli di machine learning con ONNX e .NET. Il primo passaggio consiste nell'esaminare i dati, che vengono archiviati nell'archiviazione BLOB. Successivamente, creano una nuova pipeline utilizzando il designer, che consente loro di trascinare e rilasciare i componenti nell'area di disegno. I componenti selezionati includono il modello PyTorch, il convertitore ONNX e il trainer del modello. Una volta definiti i componenti, il relatore esegue la pipeline sul proprio calcolo di Azure Machine Learning chiamato BumbleBee. Dimostrano le caratteristiche della definizione del componente e il codice per il file di training.

  • 00:20:00 In questa sezione, il relatore mostra come utilizzare ONNX e .NET per creare un modello di machine learning e integrarlo in un'applicazione .NET Maui. Il modello è stato addestrato usando Azure Machine Learning con Python e PyTorch e convertito in formato ONNX. Il modello è stato quindi registrato in Model Management e utilizzato in un'applicazione .NET. Il relatore spiega l'importanza di consentire ai data scientist di lavorare con il loro linguaggio preferito e agli sviluppatori di creare applicazioni nel loro. Tutti i codici di esempio utilizzati nella presentazione sono disponibili nel collegamento fornito, così come altre risorse per saperne di più sull'apprendimento automatico e sul ruolo dello sviluppatore di intelligenza artificiale.

  • 00:25:00 In questa sezione del video, i relatori discutono delle dimensioni dei file dei modelli ONNX e delle tecniche utilizzate per renderli più piccoli e funzionare meglio sui dispositivi mobili. Sottolineano che esiste un'enorme area di apprendimento automatico dedicata alla riduzione delle dimensioni dei modelli, anche se ciò significa sacrificare alcune prestazioni. Menzionano anche un progetto chiamato Seeing AI, che utilizza diversi modelli di intelligenza artificiale in un'app mobile, e suggeriscono agli spettatori di provarlo da soli. Infine, i relatori presentano Rory come il prossimo relatore che discuterà dell'accessibilità.
 

Su .NET Live - Rendere operativi i modelli ML con ONNX, C# .... e Pokemon!



Su .NET Live - Rendere operativi i modelli ML con ONNX, C# .... e Pokemon!

In questo video On.NET Live, gli host discutono dell'operazionalizzazione dei modelli di machine learning con ONNX e invitano Cassie Kozyrkov come ospite speciale. Kozyrkov sottolinea l'importanza del tutoraggio e discute l'utilizzo di ONNX come un modo per colmare il divario tra data scientist e ingegneri del software. La conversazione copre vari argomenti, dalla creazione di un modello di machine learning usando l'elaborazione del linguaggio naturale e l'importanza della trasformazione dei dati al test con dati invisibili e alla distribuzione del modello tramite Funzioni di Azure. I relatori discutono anche di Azure Machine Learning e delle risorse disponibili per coloro che sono interessati a esplorare ONNX e i modelli di machine learning in modo più ampio.

Il video On.NET Live discute l'operatività dei modelli ML con ONNX, C# e (per divertimento) Pokemon. Il primo relatore parla di ONNX, un formato di apprendimento automatico che consente di salvare e caricare i modelli in diversi framework e di come rendere operativi i modelli utilizzando .NET. Il secondo relatore discute l'utilizzo di ML.NET per creare un classificatore di immagini Pokemon e mostra come può essere reso operativo per la distribuzione. Nel complesso, il video offre un'ottima panoramica dell'operazionalizzazione dei modelli di machine learning con ONNX e C#.

  • 00:00:00 In questa sezione del video, i presentatori presentano un'ospite speciale, Cassie, che parlerà dell'apprendimento automatico con Onnx e forse anche con i Pokémon. La conversazione include anche annunci sulle conferenze imminenti, come .NET Conf e Start Dev Change, che è stata organizzata da Cassie e dal team per aiutare le persone ad apprendere nuove competenze di sviluppo e potenziare chi cambia carriera. La conferenza ha coperto vari campi tecnici con l'obiettivo di aiutare le persone a trovare la loro passione e perseguire un cambiamento di carriera.

  • 00:05:00 In questa sezione, Cassie Kozyrkov parla dell'importanza del tutoraggio e della necessità per le persone di impegnarsi in iniziative come Start Dev Change, specialmente durante questi periodi in cui le persone stanno lottando a causa della pandemia. Discute quindi di ONNX, il formato aperto per salvare i modelli di machine learning e distribuirli in ambienti diversi. Cassie spiega che ONNX rende più facile collegare il mondo tra ciò che stanno facendo i data scientist e ciò che stanno facendo gli ingegneri del software, specialmente nei casi in cui c'è una disconnessione tra i reparti. Con ONNX, i modelli possono essere trasferiti al lato DevOps, che può distribuirli nel modo più adatto al progetto e possono essere utilizzati in diverse applicazioni, tra cui C#, C++ e Python.

  • 00:10:00 In questa sezione, il relatore descrive la costruzione di un modello di apprendimento automatico utilizzando l'elaborazione del linguaggio naturale per prendere i dati dalle descrizioni dei vini e utilizzarli per prevedere la varietà, il valore in punti e la fascia di prezzo del vino. Citano l'utilizzo di un'enorme libreria di dati da maghi del vino e la costruzione del modello con caratteristiche diverse. Il modello viene creato con Python e sottoposto a training all'interno di Jupyter Notebooks. Il relatore spiega anche come Pandas viene utilizzato per manipolare i dati e mostra una nuvola di parole per dimostrare le parole più comuni nel set di dati.

  • 00:15:00 In questa sezione, il relatore discute diversi approcci all'apprendimento automatico e come scegliere quello appropriato per una determinata attività. Spiegano la differenza tra l'apprendimento automatico classico e l'apprendimento profondo, con l'apprendimento profondo che richiede più livelli e reti neurali. Il relatore consiglia di iniziare con scikit-learn, una classica libreria di apprendimento automatico, e di sperimentare diversi algoritmi per vedere cosa funziona meglio. Discutono inoltre dell'importanza della trasformazione dei dati e della tokenizzazione durante l'elaborazione dei dati di testo e su come bilanciare l'accuratezza del modello con le dimensioni del modello.

  • 00:20:00 In questa sezione, il relatore discute l'elaborazione dei dati richiesta per l'apprendimento automatico prima dell'addestramento effettivo del modello, come la pulizia dei dati e l'estrazione delle caratteristiche. Sottolineano l'importanza dei test con dati invisibili e mettono in guardia dal fare affidamento esclusivamente sulla precisione, poiché i risultati possono differire quando si applica il modello ai dati di produzione del mondo reale. Il relatore dimostra anche come impostare una pipeline di dati e utilizzare un modello di regressione logistica per creare un modello di machine learning, prima di passare alla fase di distribuzione.

  • 00:25:00 In questa sezione, i relatori discutono il modello di elaborazione del linguaggio naturale utilizzato e l'algoritmo CountVectorizer utilizzato per esso, che fa parte della libreria scikit-learn. La pipeline mostrata nel video include il CountVectorizer e il modello di regressione logistica. Gli autori spiegano come esportare il modello utilizzando il runtime ONNX e salvarlo come file ONNX. Proseguono discutendo delle migliori prestazioni del runtime, che tiene conto dell'hardware su cui viene distribuito, offrendogli un vantaggio significativo in termini di velocità.

  • 00:30:00 In questa sezione, i relatori discutono l'implementazione del modello e il processo di inferenza. Dicono che la distribuzione di un modello implica la considerazione dell'architettura e dei progetti appropriati per una determinata situazione, che può variare dall'utilizzo dell'apprendimento automatico di Azure alla risorsa contenitore o alle offerte senza server come la funzione di Azure. Il modello e il codice devono essere caricati nel cloud e, in questo caso particolare, il modello viene archiviato nell'archivio BLOB e quindi utilizzato dalla funzione. I relatori toccano anche l'importanza della memorizzazione nella cache dei dati per velocizzare il processo di inferenza e spiegano come funzionano il dizionario e la sessione di inferenza per eseguire il modello nella funzione. Sebbene sia necessario comprendere il tipo di dati, non è necessario comprendere come è stato creato il modello per eseguirlo correttamente.

  • 00:35:00 no. In questa sezione, il relatore discute il processo di operativizzazione dei modelli di machine learning con ONNX e come ciò può essere fatto senza l'aiuto di un data scientist. Sottolineano l'importanza di comprendere il formato di input e creare il tensore e spiegano anche il processo di fusione dei risultati del modello nel formato desiderato. Il relatore menziona la necessità di semplificare i livelli richiesti per arrivare all'output del modello e come i dati possono essere puliti e raggruppati per ottenere risultati migliori. Toccano anche la possibilità di raccogliere metriche e feedback per riqualificare il modello.

  • 00:40:00 In questa sezione, i relatori discutono dell'importanza dei test e della comprensione di come funziona un modello di machine learning per fare previsioni. Portano l'idea di creare test unitari e incorporare test automatizzati nel normale processo di sviluppo. Inoltre, citano gli strumenti disponibili in Azure Machine Learning per l'interpretazione del modello, che possono aiutare a identificare potenziali problemi con le previsioni del modello. Infine, riguardano la distribuzione del modello all'interno di un trigger HTTP tramite l'estensione di Visual Studio Code.

  • 00:45:00 In questa sezione, i relatori discutono di un divertente gioco di degustazione di vini creato utilizzando l'apprendimento automatico e distribuito in Azure. Condividono il collegamento al sito Web e parlano di come il modello è stato addestrato utilizzando le descrizioni dei sommelier di Winemag e di come hanno usato le funzioni di Azure per distribuire il modello in Azure. Discutono anche degli usi più ampi dell'apprendimento automatico di Azure, inclusi gli strumenti per il cloud computing, l'accelerazione GPU e il controllo delle versioni dei modelli, rendendolo ideale per l'apprendimento automatico aziendale. Nonostante ciò, potrebbero ancora esserci momenti in cui la distribuzione a un endpoint non è necessaria e l'apprendimento automatico di Azure consente questa semplicità.

  • 00:50:00 In questa sezione, il relatore discute le varie caratteristiche e capacità di Azure Machine Learning, che va oltre la semplice creazione di un modello e il suo utilizzo tramite endpoint. Evidenziano il workbench di sperimentazione, il controllo delle versioni e il calcolo dei modelli e i plug-in DevOps che consentono la collaborazione tra data scientist e sviluppatori nella creazione e distribuzione di modelli di machine learning. Menzionano anche la natura in continua evoluzione dello strumento e raccomandano di rivisitarlo se gli utenti non lo guardano da un po'. Il relatore fornisce collegamenti al proprio repository GitHub e post di blog per coloro che sono interessati a saperne di più sull'uso di ONNX con C# e sulla distribuzione tramite Funzioni di Azure.

  • 00:55:00 In questa sezione, i relatori discutono di varie risorse disponibili per coloro che sono interessati ad esplorare ONNX e i modelli di machine learning in generale. Raccomandano di dare un'occhiata al tutorial e ai notebook di esempio forniti da ONNX, oltre a esplorare il loro codice open source su Github. Inoltre, discutono brevemente dell'utilizzo di strumenti come Custom Vision per creare modelli di visione artificiale senza la necessità di un codice esteso. Infine, scherzano sulla creazione di un modello di rilevamento dei Pokemon in futuro e consigliano di controllare .NET Conf in programma a novembre per ulteriori annunci di machine learning.
 

Machine Learning Community Standup - Deep Learning con PyTorch ONNX



Machine Learning Community Standup - Deep Learning con PyTorch e ONNX

Il video "Machine Learning Community Standup - Deep Learning with PyTorch & ONNX" copre vari argomenti relativi al machine learning, PyTorch e ONNX. Una sezione copre l'overfitting e come prevenirlo nelle reti neurali utilizzando l'abbandono e la convalida incrociata. Gli host evidenziano anche vari progetti di machine learning basati sulla community e i loro prossimi eventi sull'utilizzo di .NET con machine learning. Il video introduce anche PyTorch, una popolare libreria di machine learning utilizzata per la visione artificiale e l'elaborazione del linguaggio naturale, con vari moduli integrati come la visione della torcia e le trasformazioni. I relatori spiegano il formato ONNX per rappresentare i modelli di machine learning e il suo runtime per eseguire l'inferenza e l'addestramento in più lingue. L'esercitazione illustra anche come utilizzare i modelli predefiniti nello zoo dei modelli di PyTorch e copre il debug e la gestione dei pacchetti e degli ambienti Python utilizzando Jupyter Notebook e Anaconda. Inoltre, l'esercitazione copre i dettagli dell'addestramento e dell'esportazione di un modello PyTorch utilizzando ONNX, che può essere utilizzato con il runtime ONNX per migliorare le prestazioni dei modelli.

Il video tratta anche vari argomenti relativi al machine learning e al deep learning. I relatori parlano dell'uso di SkiaSharp per l'elaborazione delle immagini in Xamarin e dei limiti dei modelli su dispositivo a causa delle loro dimensioni, ma notano i vantaggi di avere modelli su dispositivo. Suggeriscono inoltre varie risorse per l'apprendimento della teoria dell'apprendimento automatico come la classe Andrew Ng Coursera e una classe di apprendimento automatico applicato che fornisce informazioni di alto livello sull'utilizzo di strumenti e librerie per creare modelli di apprendimento automatico. Viene anche menzionata l'importanza di avere un obiettivo quando si apprende l'apprendimento automatico e si incorpora l'apprendimento nel proprio lavoro. Infine, l'oratore accenna ai contenuti imminenti che potrebbero interessare il pubblico.

  • 00:00:00 In questa sezione, gli host presentano il loro ospite, Cassie Breviu, senior program manager di Microsoft nel team di runtime ONNX, che parlerà di PyTorch e ONNX. Ricapitolano brevemente l'argomento del flusso precedente, che riguardava l'utilizzo di .NET con librerie come PyTorch. Prima di approfondire l'argomento principale, gli host introducono un nuovo segmento in cui parlano dei concetti di machine learning, a partire dall'abbandono. Il dropout è un metodo per prevenire l'overfitting nelle reti neurali, che si ottiene eliminando casualmente alcuni nodi durante l'addestramento.

  • 00:05:00 In questa sezione del video, i presentatori discutono dell'overfitting e di come l'uso del dropout e della convalida incrociata può aiutare a risolvere il problema nei modelli di machine learning. Dicono che ottenere una precisione del 100% su un set di allenamento non è sempre una buona cosa e può portare a scarse prestazioni su dati reali. Fanno un'analogia con lo studio per un test e la memorizzazione delle risposte senza comprendere i concetti alla base. Gli host passano quindi ai collegamenti della community e menzionano diversi progetti e presentazioni all'interno della community, tra cui la creazione di soluzioni di machine learning serverless, applicazioni di analisi del sentiment, l'utilizzo di AutoML e Model Builder e l'addestramento di un modello di classificazione delle immagini tramite Azure. Questi progetti mirano ad aiutare gli utenti a creare e distribuire soluzioni di intelligenza artificiale in modo più efficiente.

  • 00:10:00 In questa sezione, il relatore parla di un tutorial su come utilizzare Azure per addestrare modelli di classificazione delle immagini, nonché di una dimostrazione dell'utilizzo del runtime ONNX e del rilevamento di oggetti con il modello YOLO v5. Menzionano anche diversi eventi imminenti sull'apprendimento automatico e .NET, tra cui l'evento Let's Learn .NET Focus on Machine Learning, in cui i partecipanti esamineranno un modulo di apprendimento in uscita alla fine di questo mese. Discutono quindi della nuova funzionalità di Visual Studio che consente l'uso di notebook, simili ai notebook Jupiter, e di come ciò consente agli utenti di eseguire il reverse engineering da un'interfaccia utente a basso codice alla codifica, all'apprendimento automatico e all'apprendimento approfondito. Infine, esprimono la speranza che i taccuini diventino il formato standard per le guide per l'utente e gli esempi, consentendo agli utenti di scaricare i file del taccuino per eseguire celle di codice e imparare a utilizzare un'API invece di leggere pagine wiki o altri file markdown.

  • 00:15:00 In questa sezione, i relatori discutono vari aggiornamenti e miglioramenti apportati a Microsoft Learn e ML.NET. Menzionano il supporto del notebook interattivo a cui è possibile accedere tramite l'interfaccia utente Web, rendendo più semplice per coloro che non sanno come configurare gli ambienti locali Python. Evidenziano anche la libreria Torch Sharp, che consente agli utenti di creare reti neurali personalizzate e integrarle strettamente con il runtime ONNX, migliorando l'esperienza di consumo di modelli di deep learning. Inoltre, c'è un focus sull'intelligenza artificiale etica e responsabile all'interno di ML.NET, con piani per il riconoscimento del nome, l'input dinamico dei dati e la previsione dell'output e delle serie temporali, tra le altre cose. Nel complesso, i relatori sottolineano l'importanza del feedback degli utenti e li incoraggiano a fornire suggerimenti per miglioramenti.

  • 00:20:00 In questa sezione del video, il relatore discute i modi in cui il flusso di sviluppo può cambiare durante la creazione di modelli di machine learning, in particolare in termini di diversi strumenti e librerie utilizzati. Confrontano la programmazione tradizionale con l'apprendimento automatico, spiegando che con quest'ultimo i dati vengono inseriti in un algoritmo per produrre un modello, che viene quindi utilizzato per l'inferenza. Il relatore prosegue poi presentando PyTorch, una libreria di apprendimento automatico open source e i suoi vari componenti, tra cui la funzione di rete neurale e le utilità dei dati. Toccano anche altre librerie come TensorFlow e scikit-learn, nonché strumenti come i notebook Jupyter e VS Code.

  • 00:25:00 In questa sezione, il relatore fornisce una panoramica di PyTorch, una popolare libreria di apprendimento automatico comunemente utilizzata nella visione artificiale e nell'elaborazione del linguaggio naturale. La libreria include diversi moduli come la torcia per la visione artificiale, l'audio della torcia per i dati audio e il testo della torcia per l'elaborazione del linguaggio naturale. Poiché i dati sono la spina dorsale per l'apprendimento automatico, i moduli forniscono anche funzionalità di pre-elaborazione come set di dati, caricatori di dati e trasformazioni per preparare i dati per l'addestramento da parte di un modello. Il relatore consiglia di utilizzare un tutorial interattivo su PyTorch per saperne di più sulla libreria e sulle sue funzionalità. Introducono inoltre ONNX, un formato aperto creato per rappresentare i modelli di machine learning, e il runtime ONNX, uno strumento di distribuzione multipiattaforma che consente l'inferenza e l'addestramento in più lingue.

  • 00:30:00 In questa sezione, i relatori discutono dell'uso dei modelli ONNX in Blazor, con Cassie che ammette di non averlo ancora provato. Parlano anche di come convertire i modelli nel formato ONNX utilizzando librerie come PyTorch, Scikit-learn o TensorFlow. L'utilizzo dei modelli ONNX è semplice, in quanto è sufficiente importare la libreria di runtime ONNX, creare una sessione di inferenza e passare i dati di input per ottenere un risultato. La difficoltà deriva dalla manipolazione dei dati in diversi linguaggi, poiché Python è considerato potente in questo senso rispetto ad altri linguaggi. I relatori menzionano anche lo zoo modello, che ha modelli predefiniti che possono essere utilizzati per l'inferenza con codice di esempio disponibile per aiutare.

  • 00:35:00 In questa sezione, il relatore discute come utilizzare i modelli predefiniti nello zoo dei modelli di PyTorch, con particolare attenzione alla segmentazione degli oggetti utilizzando fast rcnn, un tipo di rete neurale convoluzionale (CNN). Il relatore tocca anche brevemente come lavorare con i tensori e manipolarli usando NumPy, osservando che PyTorch fornisce un taccuino interattivo per imparare a manipolare i tensori in modo efficiente. Inoltre, il relatore osserva che i set di dati di PyTorch sono ottenuti utilizzando `torchvision.datasets`, che li scarica da un repository open source.

  • 00:40:00 In questa sezione del video, il relatore discute la natura open source di PyTorch, consentendo l'accesso al codice e alle diverse posizioni di archiviazione dei blob che vengono utilizzate. Evidenziano come la documentazione di PyTorch elenchi tutti i set di dati disponibili a cui è possibile accedere, con i set di dati che sono solo un involucro attorno a diversi set di dati open source. Il relatore evidenzia le implicazioni legali dell'utilizzo di set di dati open source e cosa è consentito estrarre dalla fonte e cosa non dovrebbe essere ospitato. Il video illustra anche i set di dati e i caricatori di dati, i dati di test per la convalida e la creazione di set di dati personalizzati. Infine, toccano brevemente le trasformazioni e la loro importanza nella manipolazione dei dati per trasformarli in tensori ed elaborarli attraverso l'algoritmo.

  • 00:45:00 In questa sezione, il relatore parla degli strumenti che usa per gestire i pacchetti e gli ambienti Python. Mette in evidenza Anaconda, uno strumento che ama e che ha aggiunto al suo terminale Windows dove può attivare e utilizzare rapidamente diversi pacchetti preconfigurati per diverse librerie di machine learning. Continua mostrando come utilizza Jupyter Notebooks in VS Code, che offre più strumenti, Intellisense e la possibilità di utilizzare un computer cloud per eseguire modelli che richiedono una GPU più grande. Infine, sottolinea che per coloro che preferiscono l'ambiente .NET, l'esperienza Jupiter Notebook è installabile direttamente, grazie all'esecuzione di Anaconda.

  • 00:50:00 In questa sezione, il relatore discute l'esperienza di Jupyter Notebook con PyTorch in Azure Machine Learning Studio, dove gli utenti possono installare tutti i pacchetti necessari e usare lo strumento che preferiscono. Il relatore illustra brevemente la guida introduttiva per PyTorch, disponibile in Azure Machine Learning Studio e nel sito Web di PyTorch, quindi sposta la discussione su ONNX. Senza approfondire troppo, il relatore fornisce una breve panoramica dell'architettura del modello, della funzione di perdita e dell'ottimizzatore necessari per addestrare un modello. L'oratore fa anche una breve menzione di Copilot e della sua capacità di scrivere commenti per gli utenti.

  • 00:55:00 In questa sezione, il relatore spiega come addestrare ed esportare un modello di deep learning PyTorch utilizzando ONNX. Per addestrare il modello, gli utenti devono impostare il numero di epoche e i dati di convalida, assicurandosi che siano diversi dai dati di test per evitare l'overfitting. L'oratore mostra un grafico della perdita del modello in ogni epoca durante il ciclo di ogni batch e, una volta completato l'addestramento, il modello può essere esportato in formato ONNX utilizzando una funzione che invia un tensore al dispositivo. Il modello esportato può essere utilizzato per eseguire l'inferenza utilizzando il runtime ONNX con tensori di input e ottimizzazioni del grafico ottimizzate per prestazioni migliori. Il relatore dimostra anche un supporto Xamarin di prossima uscita per il runtime ONNX.

  • 01:00:00 In questa sezione, i relatori discutono dell'utilizzo di SkiaSharp per l'elaborazione delle immagini in Xamarin e di come viene utilizzato il runtime ONNX per elaborare i dati. Citano i limiti dell'utilizzo di modelli su dispositivo a causa delle loro dimensioni, ma notano i vantaggi di avere modelli su dispositivo. I relatori toccano anche brevemente l'architettura di Xamarin e il modo in cui crea impalcature. La discussione si conclude con una menzione del desiderio di una maggiore collaborazione tra gli sviluppatori C# e il mondo dell'intelligenza artificiale e di come chiunque abbia domande sull'apprendimento automatico o sull'apprendimento approfondito possa contattare Cassidy Williams su Twitter o l'handle Twitter del runtime ONNX per le risposte.

  • 01:05:00 In questa sezione, i relatori discutono delle risorse per coloro che sono interessati all'apprendimento della teoria dell'apprendimento automatico. Suggeriscono di seguire un corso di coursera, come quello tenuto da Andrew Ng, che approfondisce il funzionamento dietro le quinte dei modelli di deep learning. Danno l'avvertenza che ci sono due modi per avvicinarsi all'apprendimento automatico: il metodo applicato e il metodo teorico. Altre risorse includono un corso di apprendimento automatico applicato su Coursera, che fornisce informazioni di alto livello sull'utilizzo di strumenti e librerie per creare modelli di apprendimento automatico, e il percorso di apprendimento PyTorch, che è più approfondito e copre parte della matematica. Inoltre, i relatori menzionano un hackathon per ML.Net che si terrà nelle prossime settimane.

  • 01:10:00 In questa sezione, il relatore discute l'importanza di avere un obiettivo quando si impara a conoscere il machine learning e il deep learning. Ci sono molte risorse gratuite disponibili online, ma può essere complicato decidere da dove iniziare. L'oratore suggerisce di fissare un obiettivo, come addestrare un modello di visione artificiale e trovare risorse in linea con tale obiettivo. Può anche essere utile incorporare l'apprendimento nel proprio lavoro, ad esempio utilizzando hackathon o sprint di progetto per provare nuove cose. L'oratore afferma anche che è importante continuare a spingere attraverso le parti difficili e non smettere fino a quando l'obiettivo non viene raggiunto. Infine, l'oratore accenna ai contenuti imminenti che potrebbero interessare il pubblico.
 
GitHub - ptiszai/Object-Detection-yolov7-ML.NET-onnx: Yolov7 ONNX model process with NET 7.0 ML.NET
GitHub - ptiszai/Object-Detection-yolov7-ML.NET-onnx: Yolov7 ONNX model process with NET 7.0 ML.NET
  • ptiszai
  • github.com
Windows 10 64-bit NVIDIA Geforce GTX 960 2 Gbyte RAM Microsoft Visual Studio Community 2022 CUDA Toolkit v11.8: c:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\ Installation Nuget Package : - Yolov5Net, Version="1.0.9 - Microsoft.ML.OnnxRuntime.Gpu, Version="1.13.1" - Microsoft.ML.CpuMath, Version="2.0.0" - Emgu.CV Version="4.6.0.5131...