Tutorial do TensorBoard: Visualização do gráfico do TensorFlow [exemplo]

O que é TensorBoard?

TensorBoard é a interface usada para visualizar o gráfico e outras ferramentas para entender, depurar e otimizar o modelo. É uma ferramenta que fornece medições e visualizações para o fluxo de trabalho de aprendizado de máquina. Ajuda a rastrear métricas como perda e precisão, visualização de gráfico de modelo, incorporação de projeto em espaços de dimensões inferiores, etc.

Visualização do gráfico do TensorFlow usando o exemplo do Tensorboard

A imagem abaixo vem do gráfico do TensorBoard que você vai gerar neste tutorial do TensorBoard. É o painel principal:

Visualização de gráfico do TensorFlow

Na imagem abaixo, você pode ver o painel de visualização do gráfico do TensorBoard. O painel contém diferentes guias, que estão vinculadas ao nível de informação que você adiciona ao executar o modelo.

Gráficos do TensorBoard

  • Escalares : Mostra diferentes informações úteis durante o treinamento do modelo
  • Gráficos : Mostre o modelo
  • Histograma : Exibe pesos com um histograma
  • Distribuição : Mostra a distribuição do peso
  • Projetor : Mostrar análise de componentes principais e algoritmo T-SNE. A técnica usa para redução de dimensionalidade

Durante este tutorial do TensorBoard, você treinará um modelo simples de aprendizado profundo. Você aprenderá como funciona em um tutorial futuro.

Se você olhar para o gráfico, você pode entender como o modelo funciona.

  1. Coloque os dados na fila para o modelo: envie uma quantidade de dados igual ao tamanho do lote para o modelo, ou seja, número de feed de dados após cada iteração
  2. Alimente os dados para os tensores
  3. Treine o modelo
  4. Exibe o número de lotes durante o treinamento. Salve o modelo no disco.

A ideia básica por trás do tensorboard é que a rede neural pode ser algo conhecido como uma caixa preta e precisamos de uma ferramenta para inspecionar o que está dentro dessa caixa. Você pode imaginar o tensorboard como uma lanterna para começar a mergulhar na rede neural.

Ajuda a entender as dependências entre as operações, como os pesos são calculados, exibe a função de perda e muitas outras informações úteis. Quando você reúne todas essas informações, tem uma ótima ferramenta para depurar e descobrir como melhorar o modelo.

Para dar uma ideia de como o gráfico do TensorBoard pode ser útil, observe a imagem abaixo:

Uma rede neural decide como conectar os diferentes 'neurônios' e quantas camadas antes que o modelo possa prever um resultado. Depois de definir a arquitetura, você não só precisa treinar o modelo, mas também uma métrica para calcular a precisão da previsão. Esta métrica é conhecida como função de perda. O objetivo é minimizar a função de perda. Em outras palavras, significa que o modelo está cometendo menos erros. Todos os algoritmos de aprendizado de máquina repetirão muitas vezes os cálculos até que a perda alcance uma linha mais plana. Para minimizar esta função de perda, você precisa definir um taxa de Aprendizagem. Isto é a velocidade que você deseja que o modelo aprenda. Se você definir uma taxa de aprendizado muito alta, o modelo não terá tempo para aprender nada. Este é o caso da imagem à esquerda. A linha está se movendo para cima e para baixo, o que significa que o modelo prevê com pura suposição o resultado. A imagem à direita mostra que a perda está diminuindo ao longo da iteração até que a curva se achatou, o que significa que o modelo encontrou uma solução.

O TensorBoard é uma ótima ferramenta para visualizar essas métricas e destacar possíveis problemas. A rede neural pode levar de horas a semanas antes de encontrar uma solução. O TensorBoard atualiza as métricas com muita frequência. Nesse caso, você não precisa esperar até o final para ver se o modelo treina corretamente. Você pode abrir o TensorBoard, verificar como está indo o treinamento e fazer as alterações adequadas, se necessário.

Como usar o TensorBoard?

Neste tutorial, você aprenderá como abrir o TensorBoard a partir do terminal para MacOS e da linha de comando TensorBoard para Windows.

O código será explicado em um tutorial futuro, o foco aqui está no TensorBoard.

Primeiro, você precisa importar as bibliotecas que usará durante o treinamento

## Import the library import tensorflow as tf import numpy as np

Você cria os dados. É uma matriz de 10.000 linhas e 5 colunas

X_train = (np.random.sample((10000,5))) y_train = (np.random.sample((10000,1))) X_train.shape

Saída

(10000, 5)

Os códigos abaixo transformam os dados e criam o modelo.

Observe que a taxa de aprendizagem é igual a 0,1. Se você alterar essa taxa para um valor mais alto, o modelo não encontrará uma solução. Isso é o que aconteceu no lado esquerdo da imagem acima.

Durante a maioria dos tutoriais do TensorFlow, você usará o estimador TensorFlow. Esta é a TensorFlow API que contém todos os cálculos matemáticos.

Para criar os arquivos de log, você precisa especificar o caminho. Isso é feito com o argumento model_dir.

No exemplo do TensorBoard abaixo, você armazena o modelo dentro do diretório de trabalho, ou seja, onde armazena o notebook ou o arquivo Python. Dentro desse caminho, o TensorFlow criará uma pasta chamada train com um nome de pasta filho linreg.

feature_columns = [ tf.feature_column.numeric_column('x', shape=X_train.shape[1:])] DNN_reg = tf.estimator.DNNRegressor(feature_columns=feature_columns, # Indicate where to store the log file model_dir='train/linreg', hidden_units=[500, 300], optimizer=tf.train.ProximalAdagradOptimizer( learning_rate=0.1, l1_regularization_strength=0.001 ) )

Saída

INFO:tensorflow:Using default config. INFO:tensorflow:Using config: {'_model_dir': 'train/linreg', '_tf_random_seed': None, '_save_summary_steps': 100, '_save_checkpoints_steps': None, '_save_checkpoints_secs': 600, '_session_config': None, '_keep_checkpoint_max': 5, '_keep_checkpoint_every_n_hours': 10000, '_log_step_count_steps': 100, '_train_distribute': None, '_service': None, '_cluster_spec': , '_task_type': 'worker', '_task_id': 0, '_global_id_in_cluster': 0, '_master': '', '_evaluation_master': '', '_is_chief': True, '_num_ps_replicas': 0, '_num_worker_replicas': 1}

A última etapa deste exemplo de gráfico de visualização do TensorFlow consiste em treinar o modelo. Durante o treinamento, o TensorFlow grava informações no diretório do modelo.

# Train the estimator train_input = tf.estimator.inputs.numpy_input_fn( x={'x': X_train}, y=y_train, shuffle=False,num_epochs=None) DNN_reg.train(train_input,steps=3000) 

Saída

 INFO:tensorflow:Calling model_fn. INFO:tensorflow:Done calling model_fn. INFO:tensorflow:Create CheckpointSaverHook. INFO:tensorflow:Graph was finalized. INFO:tensorflow:Running local_init_op. INFO:tensorflow:Done running local_init_op. INFO:tensorflow:Saving checkpoints for 1 into train/linreg/model.ckpt. INFO:tensorflow:loss = 40.060104, step = 1 INFO:tensorflow:global_step/sec: 197.061 INFO:tensorflow:loss = 10.62989, step = 101 (0.508 sec) INFO:tensorflow:global_step/sec: 172.487 INFO:tensorflow:loss = 11.255318, step = 201 (0.584 sec) INFO:tensorflow:global_step/sec: 193.295 INFO:tensorflow:loss = 10.604872, step = 301 (0.513 sec) INFO:tensorflow:global_step/sec: 175.378 INFO:tensorflow:loss = 10.090343, step = 401 (0.572 sec) INFO:tensorflow:global_step/sec: 209.737 INFO:tensorflow:loss = 10.057928, step = 501 (0.476 sec) INFO:tensorflow:global_step/sec: 171.646 INFO:tensorflow:loss = 10.460144, step = 601 (0.583 sec) INFO:tensorflow:global_step/sec: 192.269 INFO:tensorflow:loss = 10.529617, step = 701 (0.519 sec) INFO:tensorflow:global_step/sec: 198.264 INFO:tensorflow:loss = 9.100082, step = 801 (0.504 sec) INFO:tensorflow:global_step/sec: 226.842 INFO:tensorflow:loss = 10.485607, step = 901 (0.441 sec) INFO:tensorflow:global_step/sec: 152.929 INFO:tensorflow:loss = 10.052481, step = 1001 (0.655 sec) INFO:tensorflow:global_step/sec: 166.745 INFO:tensorflow:loss = 11.320213, step = 1101 (0.600 sec) INFO:tensorflow:global_step/sec: 161.854 INFO:tensorflow:loss = 9.603306, step = 1201 (0.619 sec) INFO:tensorflow:global_step/sec: 179.074 INFO:tensorflow:loss = 11.110269, step = 1301 (0.556 sec) INFO:tensorflow:global_step/sec: 202.776 INFO:tensorflow:loss = 11.929443, step = 1401 (0.494 sec) INFO:tensorflow:global_step/sec: 144.161 INFO:tensorflow:loss = 11.951693, step = 1501 (0.694 sec) INFO:tensorflow:global_step/sec: 154.144 INFO:tensorflow:loss = 8.620987, step = 1601 (0.649 sec) INFO:tensorflow:global_step/sec: 151.094 INFO:tensorflow:loss = 10.666125, step = 1701 (0.663 sec) INFO:tensorflow:global_step/sec: 193.644 INFO:tensorflow:loss = 11.0349865, step = 1801 (0.516 sec) INFO:tensorflow:global_step/sec: 189.707 INFO:tensorflow:loss = 9.860596, step = 1901 (0.526 sec) INFO:tensorflow:global_step/sec: 176.423 INFO:tensorflow:loss = 10.695, step = 2001 (0.567 sec) INFO:tensorflow:global_step/sec: 213.066 INFO:tensorflow:loss = 10.426752, step = 2101 (0.471 sec) INFO:tensorflow:global_step/sec: 220.975 INFO:tensorflow:loss = 10.594796, step = 2201 (0.452 sec) INFO:tensorflow:global_step/sec: 219.289 INFO:tensorflow:loss = 10.4212265, step = 2301 (0.456 sec) INFO:tensorflow:global_step/sec: 215.123 INFO:tensorflow:loss = 9.668612, step = 2401 (0.465 sec) INFO:tensorflow:global_step/sec: 175.65 INFO:tensorflow:loss = 10.009649, step = 2501 (0.569 sec) INFO:tensorflow:global_step/sec: 206.962 INFO:tensorflow:loss = 10.477722, step = 2601 (0.483 sec) INFO:tensorflow:global_step/sec: 229.627 INFO:tensorflow:loss = 9.877638, step = 2701 (0.435 sec) INFO:tensorflow:global_step/sec: 195.792 INFO:tensorflow:loss = 10.274586, step = 2801 (0.512 sec) INFO:tensorflow:global_step/sec: 176.803 INFO:tensorflow:loss = 10.061047, step = 2901 (0.566 sec) INFO:tensorflow:Saving checkpoints for 3000 into train/linreg/model.ckpt. INFO:tensorflow:Loss for final step: 10.73032. 

Para usuário MacOS

Para usuário do Windows

Você pode ver essas informações no PyTorch TensorBoard.

Agora que você gravou os eventos de registro, pode abrir o Tensorboard. O Tensorboard Keras é executado na porta 6006 (o Jupyter é executado na porta 8888). Você pode usar o Terminal para usuário MacOs ou prompt do Anaconda para usuário Windows.

Para usuário MacOS

# Different for you cd /Users/Guru99/tuto_TF source activate hello-tf!

O bloco de notas é armazenado no caminho / Users / Guru99 / tuto_TF

Para usuários do Windows

cd C:UsersAdminAnaconda3 activate hello-tf

O bloco de notas é armazenado no caminho C: Usuários Admin Anaconda3

Para iniciar o Tensorboard, você pode usar este código

Para usuário MacOS

tensorboard --logdir=./train/linreg

Para usuários do Windows

tensorboard --logdir=.	rainlinreg

O Tensorboard está localizado neste URL: http: // localhost: 6006

Ele também pode estar localizado no seguinte local.

Copie e cole o URL em seu navegador favorito. Você deveria ver isto:

Observe que aprenderemos a ler o gráfico no tutorial dedicado ao aprendizado profundo .

Se você vir algo assim:

Isso significa que o Tensorboard não pode encontrar o arquivo de registro. Certifique-se de apontar o cd para o caminho correto ou verifique se o evento de log foi criado. Caso contrário, execute novamente o código.

Se você deseja fechar o TensorBoard, pressione CTRL + C

Hat Dica: Verifique o prompt do anaconda para o diretório de trabalho atual,

O arquivo de log deve ser criado em C: Usuários Admin

Resumo:

O TensorBoard é uma ótima ferramenta para visualizar seu modelo. Além disso, várias métricas são exibidas durante o treinamento, como perda, acurácia ou pesos.

Para ativar o Tensorboard, você precisa definir o caminho do seu arquivo:

cd /Users/Guru99/tuto_TF 

Ative o ambiente do Tensorflow

activate hello-tf 

Lançamento Tensorboard

tensorboard --logdir=.+ PATH