Panoramica di TensorBoard

TensorBoard è un framework di visualizzazione di tensorflow per la comprensione e l'ispezione del flusso dell'algoritmo di machine learning.

La valutazione del modello di apprendimento automatico può essere effettuata mediante molte metriche quali perdita, precisione, grafico del modello e molte altre. Le prestazioni dell'algoritmo di apprendimento automatico dipendono dalla selezione del modello e dagli iperparametri inseriti nell'algoritmo. Gli esperimenti vengono eseguiti modificando i valori di tali parametri.

I modelli di apprendimento profondo sono proprio come una scatola nera, è difficile trovare l'elaborazione all'interno di esso. È importante ottenere informazioni dettagliate per creare il modello. Con l'aiuto della visualizzazione, è possibile sapere quali parametri modificare in base all'importo per ottenere il miglioramento delle prestazioni del modello. Quindi TensorBoard è uno strumento importante per visualizzare ogni epoca durante la fase di addestramento del modello.

Installazione

Per installare il tensorboard usando pip, eseguire il comando seguente:

pip install tensorboard

In alternativa, può essere installato utilizzando il comando conda,

Conda install tensorboard

uso

Utilizzando tensorboard con il modello Keras:

Keras è una libreria open source per modelli di apprendimento profondo. È una libreria di alto livello che può essere eseguita in cima a tensorflow, theano, ecc.

Per installare la libreria tensorflow e Keras usando pip:

pip install tensorflow pip install Keras

Facciamo un semplice esempio di classificazione usando il set di dati MNIST. MNIST è un set di dati numerici inglesi che contiene immagini di numeri da 0-9. È disponibile con la libreria Keras.

  • Importa la libreria tensorflow poiché useremo Keras con il backend tensorflow.

import tensorflow as tf

  • Prima di caricare il set di dati MNIST da Keras nel set di dati di training e test.

mnist = tf.keras.datasets.mnist

  • Il modello sequenziale viene creato utilizzando,

tf.keras.models.Sequential

  • Per addestrare il modello viene utilizzato Model.fit (). I log possono essere creati e archiviati utilizzando,

tf.keras.callback.TensorBoard

  • Per abilitare il calcolo dell'istogramma,

histogram_freq=1.

È spento per impostazione predefinita.

Il codice per la suddetta classificazione del set di dati MNIST è il seguente:

# Simple NN to classify handwritten digits from MNIST dataset
import tensorflow as tf
import datetime
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0
def create_model(): return tf.keras.models.Sequential(( tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(512, activation='relu'), tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
))
model = create_model() model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=('accuracy'))
log_dir="logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir=log_dir, histogram_freq=1)
model.fit(x=x_train, y=y_train, epochs=5, validation_data=(x_test, y_test),
callbacks=(tensorboard_callback))

Per avviare la tensorboard sul server locale, selezionare il percorso della directory in cui è installato tensorflow, quindi eseguire il comando seguente:

tensorboard --logdir=/path/to/logs/files

  • scalari

Gli scalari mostrano cambiamenti ad ogni epoca. La figura sopra mostra il grafico dell'accuratezza e della perdita dopo ogni epoca. Epoch_acc e epoch_loss sono accuratezza e perdita di allenamento. Considerando che epoch_val_acc e epoch_val_loss sono l'accuratezza e la perdita dei dati di validazione.

Le linee arancioni più chiare mostrano la precisione o la perdita esatta e quella più scura rappresenta i valori smussati. Il livellamento aiuta a visualizzare l'andamento generale dei dati.

  • grafici

La pagina Grafico ti aiuta a visualizzare il grafico del tuo modello. Questo ti aiuta a verificare se il modello è stato creato correttamente o meno.

Per visualizzare il grafico, è necessario creare una sessione e quindi l'oggetto FileWriter TensorFLow. Per creare l'oggetto writer, è necessario passare il percorso in cui è archiviato il riepilogo e sess.graph come argomento.

writer = tf.summary.FileWriter(STORE_PATH, sess.graph)

tf.placeholder () e tf.Variable () viene utilizzato per segnaposto e variabili nel codice tensorflow.

Questo mostra la visualizzazione grafica del modello che abbiamo creato. Tutti i rettangoli arrotondati sono spazi dei nomi. E gli ovali mostrano le operazioni matematiche.

Le costanti vengono visualizzate come piccoli cerchi. Per ridurre il disordine nel grafico, la tavola tensoriale esegue alcune semplificazioni utilizzando ovali o rettangoli arrotondati con linee tratteggiate. Questi sono i nodi collegati a molti altri nodi o a tutti i nodi. Quindi sono mantenuti come punteggiati nel grafico e i loro dettagli possono essere visti nell'angolo in alto a destra. Nell'angolo in alto a destra, viene fornito il collegamento ai gradienti, alle pendenze del gradiente o ai nodi init.

Per conoscere il numero di tensori che entrano e escono da ciascun nodo, puoi vedere i bordi nel grafico. I bordi del grafico descrivono il numero di tensori che scorrono nel grafico. Questo aiuta a identificare le dimensioni di input e output da ciascun nodo. Questo aiuta nel debug di qualsiasi problema.

  • Distribuzioni ed istogrammi

Questo mostra le distribuzioni dei tensori con il tempo e possiamo vedere pesi e distorsioni. Questo mostra l'avanzamento degli ingressi e delle uscite nel tempo per ogni epoca. Esistono due opzioni di visualizzazione:

Offset e overlay.

La vista Offset degli istogrammi sarà la seguente:

La vista Overlay dell'istogramma è:

La pagina di distribuzione mostra le distribuzioni statistiche. Il grafico mostra la media e le deviazioni standard.

Benefici

  • TensorBoard aiuta a visualizzare l'apprendimento scrivendo riepiloghi del modello come scalari, istogrammi o immagini. Questo, a sua volta, aiuta a migliorare l'accuratezza del modello e a eseguire facilmente il debug.
  • L'elaborazione dell'apprendimento profondo è una cosa a scatola nera e il tensorboard aiuta a comprendere l'elaborazione che si svolge nella scatola nera con l'aiuto di grafici e istogrammi.

Conclusione - TensorBoard

TensorBoards fornisce la visualizzazione per il modello di guadagno profondo che viene addestrato e aiuta a capirli. Può essere utilizzato con TensorFlow e Keras entrambi. Fornisce principalmente la visualizzazione del comportamento di scalari, metriche con l'aiuto di istogrammi e grafico del modello nel suo insieme.

Articoli consigliati

Questa è una guida a TensorBoard. Qui discutiamo l'installazione e l'uso di Tensboard utilizzandolo con il modello Keras con vantaggi. Puoi anche dare un'occhiata ai seguenti articoli per saperne di più -

  1. Introduzione a Tensorflow
  2. Come installare TensorFlow
  3. Che cos'è TensorFlow?
  4. Parco giochi TensorFlow
  5. Nozioni di base di Tensorflow

Categoria: