Visão geral do TensorBoard

TensorBoard é uma estrutura de visualização do tensorflow para entender e inspecionar o fluxo do algoritmo de aprendizado de máquina.

A avaliação do modelo de aprendizado de máquina pode ser feita por várias métricas, como perda, precisão, gráfico de modelo e muito mais. O desempenho do algoritmo de aprendizado de máquina depende da seleção do modelo e dos hiperparâmetros alimentados no algoritmo. As experiências são realizadas alterando os valores desses parâmetros.

Os modelos de aprendizado profundo são como uma caixa preta, é difícil encontrar o processamento dentro dela. É importante obter informações para construir o modelo. Com a ajuda da visualização, você pode saber quais parâmetros modificar em qual quantidade obter o aprimoramento no desempenho do modelo. Portanto, o TensorBoard é uma ferramenta importante para visualizar cada época durante a fase de treinamento do modelo.

Instalação

Para instalar o tensorboard usando pip, execute o seguinte comando:

pip install tensorboard

Como alternativa, ele pode ser instalado usando o comando conda,

Conda install tensorboard

Uso

Usando tensorboard com o modelo Keras:

Keras é uma biblioteca de código aberto para modelos de aprendizado profundo. É uma biblioteca de alto nível que pode ser executada no topo do tensorflow, theano, etc.

Para instalar o tensorflow e a biblioteca Keras usando pip:

pip install tensorflow pip install Keras

Vamos dar um exemplo simples de classificação usando o conjunto de dados MNIST. MNIST é um conjunto de dados numérico em inglês que contém imagens de números de 0 a 9. Está disponível na biblioteca Keras.

  • Importe a biblioteca tensorflow, pois usaremos o Keras com o back-end tensorflow.

import tensorflow as tf

  • Primeiro, carregue o conjunto de dados MNIST da Keras no conjunto de dados de treinamento e teste.

mnist = tf.keras.datasets.mnist

  • O modelo seqüencial é criado usando,

tf.keras.models.Sequential

  • Para treinar o modelo, Model.fit () é usado. Os logs podem ser criados e armazenados usando,

tf.keras.callback.TensorBoard

  • Para ativar a computação do histograma,

histogram_freq=1.

Ele está desligado por padrão.

O código para a classificação discutida acima do conjunto de dados MNIST é o seguinte:

# 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))

Para iniciar o tensorboard no servidor local, vá para o local do diretório em que o tensorflow está instalado e execute o seguinte comando:

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

  • Escalares

Os escalares mostram mudanças a cada época. A figura acima mostra o gráfico de precisão e perda após cada época. Epoch_acc e epoch_loss estão treinando precisão e perda de treinamento. Considerando que epoch_val_acc e epoch_val_loss são a precisão e a perda de dados de validação.

As linhas laranja mais claras mostram precisão ou perda exata e as mais escuras representam valores suavizados. A suavização ajuda a visualizar a tendência geral nos dados.

  • Gráficos

A página Gráfico ajuda a visualizar o gráfico do seu modelo. Isso ajuda a verificar se o modelo foi construído corretamente ou não.

Para visualizar o gráfico, precisamos criar uma sessão e, em seguida, o objeto TensorFLow FileWriter. Para criar o objeto escritor, precisamos passar o caminho em que o resumo é armazenado e sess.graph como argumento.

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

tf.placeholder () e tf.Variable () são usados ​​para espaços reservados e variáveis ​​no código do fluxo de tensão.

Isso mostra a visualização gráfica do modelo que construímos. Todos os retângulos arredondados são espaços de nomes. E ovais mostram as operações matemáticas.

As constantes são mostradas como pequenos círculos. Para reduzir a desordem no gráfico, o tensorboard faz algumas simplificações usando ovais pontilhados ou retângulos arredondados com linhas pontilhadas. Esses são os nós que estão vinculados a muitos outros nós ou a todos os nós. Portanto, eles são mantidos como pontilhados no gráfico e seus detalhes podem ser vistos no canto superior direito. No canto superior direito, é fornecida a ligação com gradientes, descidas de gradiente ou nós de inicialização.

Para saber o número de tensores entrando e saindo de cada nó, você pode ver as arestas no gráfico. As arestas do gráfico descrevem o número de tensores que fluem no gráfico. Isso ajuda a identificar as dimensões de entrada e saída de cada nó. Isso ajuda na depuração de qualquer problema.

  • Distribuições e Histogramas

Isso mostra as distribuições dos tensores com o tempo, assim podemos ver pesos e desvios. Isso mostra o progresso de entradas e saídas ao longo do tempo para cada época. Existem duas opções de visualização:

Deslocamento e sobreposição.

A visualização Offset dos histogramas será a seguinte:

A visualização Overlay do histograma é:

A página Distribuição mostra as distribuições estatísticas. O gráfico mostra a média e os desvios padrão.

Benefícios

  • O TensorBoard ajuda a visualizar o aprendizado escrevendo resumos do modelo, como escalares, histogramas ou imagens. Isso, por sua vez, ajuda a melhorar a precisão do modelo e a depurar facilmente.
  • O processamento de aprendizado profundo é uma coisa da caixa preta e o tensorboard ajuda a entender o processamento que ocorre na caixa preta com a ajuda de gráficos e histogramas.

Conclusão - TensorBoard

O TensorBoards fornece visualização para o modelo de ganhos profundos que é treinado e ajuda a entendê-los. Pode ser usado com o TensorFlow e o Keras. Ele fornece principalmente a visualização do comportamento de escalares, métricas com a ajuda de histogramas e gráfico de modelos como um todo.

Artigos recomendados

Este é um guia para o TensorBoard. Aqui discutimos a instalação e o uso do Tensboard usando-o com o modelo Keras com Benefits. Você também pode consultar os seguintes artigos para saber mais -

  1. Introdução ao Tensorflow
  2. Como instalar o TensorFlow
  3. O que é o TensorFlow?
  4. Parque infantil TensorFlow
  5. Fundamentos do Tensorflow

Categoria: