top of page

Tutorial Pratico Tensorflow , TensorBoard e Python, per capire come funzionano le reti neurali

Diciamoci la verità, capire cosa accade durante la fase di apprendimento automatico è complicato. Ci sono innumerevoli parametri, iperparametri, variabili, layer, etc.. disponibili e molto da monitorare. Fortunatamente, c'è TensorBoard, che semplifica il processo.

Quando si sviluppano modelli di apprendimento automatico, ci sono molti fattori: quante epoche per l'addestramento, la metrica di perdita o persino la struttura del modello.


Ora non vogliamo dirti che grazie a TensorBoard aumenterai la precisione dei tuoi modelli del 10% o 30%, ma ti assicuriamo che riuscirai a capire esattamente cosa porta all'errore il tuo modello per poi sistemare i tuoi dati.

Questo articolo discuterà alcune funzionalità di TensorBoard e come puoi configurare TensorBoard per il tuo prossimo progetto di machine learning o deep learning.

In particolare, l'attenzione sarà focalizzata sull'utilizzo di TensorBoard con modelli basati su TensorFlow e Keras.

Per determine una configurazione ottimale del modello, è necessario eseguire esperimenti. E come tutti i data scientist sanno, è necessario monitorare e valutare questi esperimenti in modo efficace. Fortunatamente, TensorBoard ha molte funzionalità integrate che puoi utilizzare per capire rapidamente cosa sta succedendo all'interno del tuo modello.


Come Configuare TensorBoard sul tuo Pc

La configurazione di TensorBoard è un processo semplice. Con solo poche righe di codice, puoi tenere traccia delle metriche chiave del tuo modello di machine learning.

Se vuoi seguirci passo passo, la prima cosa da fare è aprire un notebook e caricare l'estensione Tensorboard, con 1 semplicissima riga di codice :


%load_ext tensorboard

Caricata l'estensione TensorBoard successivamente, avrai bisogno di alcuni dati. Qui sto usando il set di dati MNIST integrato in TensorFlow. I dati vengono rimodellati per consentire l'uso di livelli convoluzionali 2D.


Carica il set di dati MNIST da TensorFlow
Carica il set di dati MNIST da TensorFlow

Dopo che i dati sono stati preparati, è necessario creare il modello. Qui ho esagerato un po' e ho parametrizzato ogni variabile. Questa scelta viene fatta per cambiare rapidamente diversi aspetti del modello senza troppi problemi. Questa struttura evita anche di avere valori in cui non è chiaro cosa sta cambiando il valore.

La struttura è semplice. Ma questa struttura di base mostra una varietà di livelli diversi, che puoi analizzare in TensorBoard. Il modello contiene uno strato convoluzionale 2D seguito da uno strato di pooling, uno strato dropout, un appiattimento dell'output e uno strato denso. C'è anche un adeguamento al tasso di apprendimento. A differenza dell'impostazione di un tasso di apprendimento fisso, lo scheduler rende il tasso di apprendimento flessibile e aiuta con la convergenza.

Creazione del modello e definizioni dei parametri
Creazione del modello e definizioni dei parametri

Per aggiungere la funzionalità TensorBoard al modello TensorBoard esistente basato su Keras, è necessario aggiungere un callback durante la fase di addestramento del modello di adattamento.

Il calcolo dell'istogramma dovrebbe essere abilitato per tenere traccia dei progressi in modo efficace, e questo viene fatto impostando il parametro historgram_freq su 1. La funzione di callback richiede una directory di log per memorizzare i risultati dell'addestramento del modello. Pertanto, è utile includere alcuni ordini strutturati nei registri per riferimento futuro. L'ora corrente viene utilizzata qui.

Compila e adatta il modello, imposta la richiamata TensorBoard
Compila e adatta il modello, imposta la richiamata TensorBoard

Una volta che il modello è stato creato, compilato e adattato, i registri dovrebbero essere compressi. Pieno di tutti i dettagli del tuo modello durante l'allenamento. Pronto per essere analizzato. Per visualizzare i risultati del processo di formazione all'interno di TensorBoard, non resta che eseguire l'estensione.

Ultimo Passaggio mostrare Tensorboard
Ultimo Passaggio mostrare Tensorboard

Componenti di TensorBoard

TensorBoard è suddiviso in diversi componenti. Questi componenti consentono di tenere traccia di diverse metriche come accuratezza, errore quadratico medio o perdita di registro. Consentono inoltre la visualizzazione del modello come grafico e molto altro ancora. Sto mostrando le schede scalari, grafici, distribuzioni, istogrammi e serie temporali in questo post. Ma un elenco delle altre visualizzazioni disponibili si trova nel menu a discesa inattivo. TensorBoard ha anche alcune opzioni di stile. Ho usato la modalità oscura per alcune delle immagini qui.

Valori Scalari

Gli scalari sono la prima scheda che vedrai all'apertura di TensorBoard. L'attenzione qui è sulle prestazioni del modello in più epoche. Qui vengono mostrati sia la funzione di perdita dei modelli che tutte le metriche che hai monitorato. Una caratteristica essenziale di questa scheda è la funzione di levigatura. Quando si ha a che fare con molte epoche o con un modello precario, la tendenza generale può andare persa. Pertanto, vuoi assicurarti che il tuo modello stia migliorando durante l'allenamento e non ristagni. Aumentando il livellamento, è possibile visualizzare le tendenze complessive del modello durante il processo di addestramento.

La scheda scalari è fondamentale per identificare quando un modello è overfitting. Ad esempio, quando la tua metrica di allenamento continua a migliorare ma non c'è un aumento nel grafico di convalida, potresti essere in overfitting sul set di convalida.


Scheda Scalari TensorBoard
Scheda Scalari TensorBoard


Grafici

La scheda dei grafici ti consente di visualizzare la struttura del modello che hai creato. In sostanza, mostra cosa sta succedendo dietro le quinte. Questi dettagli sono utili quando è necessario condividere la struttura dei grafici con altri. Inoltre, è disponibile la possibilità di caricare o scaricare grafici. Oltre alla struttura del modello di base, il grafico mostra anche come vengono utilizzate le diverse metriche e l'ottimizzatore.

Qui ho selezionato il nodo sequenziale con il grafico. Una volta selezionato, viene mostrata la struttura dei modelli. I dettagli sono visibili all'interno del riquadro rosso nell'immagine sottostante.


Scheda Grafici TensorBoard
Scheda Grafici TensorBoard


Distribuzioni e istogrammi

Le schede distribuzioni e istogrammi sono piuttosto simili. Tuttavia, consentono di visualizzare le stesse informazioni attraverso visualizzazioni diverse. La scheda delle distribuzioni offre una buona panoramica delle modifiche dei pesi del modello nel tempo. Questa prospettiva serve come indicatore iniziale per vedere se qualcosa è andato storto. La visualizzazione degli istogrammi fornisce una suddivisione più dettagliata dei valori esatti appresi dal modello. Queste due visualizzazioni vengono utilizzate per determinare quando il modello si basa eccessivamente su un piccolo insieme di pesi. O se i pesi convergono su molte epoche.

Scheda Distribuzioni TensorBoard
Scheda Distribuzioni TensorBoard

Scheda Istogramma TensorBoard
Scheda Istogramma TensorBoard


Serie temporali

L'ultima scheda mostrata qui in TensorBoard è la scheda delle serie temporali. Questa vista è abbastanza simile alla vista scalare. Tuttavia, una distinzione sono le osservazioni della metrica di destinazione per ogni iterazione dell'addestramento anziché per ogni epoca. L'osservazione del training del modello in questo modo è molto più granulare. Questo tipo di analisi è migliore quando il modello non converge e l'andamento delle epoche non rivela alcuna risposta.


Scheda Serie temporali TensorBoard
Scheda Serie temporali TensorBoard


Conclusioni

TensorBoard è uno strumento potente. Attraverso diversi componenti e visualizzazioni, puoi analizzare rapidamente i tuoi modelli di machine learning e deep learning.

Lo strumento è facile da configurare e fornisce preziose informazioni su come addestrare meglio il tuo modello.

Qui ti ho mostrato solo un esempio di ciò che è possibile con TensorBoard. Sentiti libero di copiare il codice ed esplorare lo strumento da solo.


PCR (5).gif
PCR (4).gif
PCR.gif
PCR.gif
PCR.gif
PCR.gif
PCR (5).gif
3.gif
Vediamo se riesci a cliccarmi ! Nascondo una Sorpresa... (2).png

Ciao 

🤗 Articoli consigliati dalla nostra
Intelligenza Artificiale in base ai tuoi interessi

Correlazione Alta

Correlazione Media

Correlazione Bassa

Iscriviti

VUOI DIVENTARE UN MEMBRO DI INTELLIGENZA ARTIFICIALE ITALIA GRATUITAMENTE E TRARNE I SEGUENTI BENEFICI?

Corsi Gratis

più di 150 lezioni online

Dataset Gratis

più di 150o dataset

Ebook Gratis

più di 10 libri da leggere

Editor Gratis

un editor python online

Progetti Gratis

più di 25 progetti python

App Gratis

4 servizi web con I.A.

Unisciti Ora a oltre
1.000.000
di lettori e appassionanti d'I.A.

Tutto ciò che riguarda l'intelligenza Artificiale, in unico posto, in italiano e gratis.

MEGLIO DI COSI' NON SI PUO' FARE

Dopo l'iscrizione riceverai diversi Regali

VUOI SCRIVERE ARTICOLI INSIEME A NOI.

Grazie

bottom of page