Tutorial de TensorBoard: visualización de gráficos de TensorFlow [Ejemplo]

¿Qué es TensorBoard?

TensorTablero es la interfaz utilizada para visualizar el gráfico y otras herramientas para comprender, depurar y optimizar el modelo. Es una herramienta que proporciona mediciones y visualizaciones para el flujo de trabajo de aprendizaje automático. Ayuda a realizar un seguimiento de métricas como pérdida y precisión, visualización de gráficos de modelos, incrustación de proyectos en espacios de dimensiones inferiores, etc.

Visualización de gráficos de TensorFlow usando el ejemplo de Tensorboard

La siguiente imagen proviene del gráfico de TensorBoard que generará en este tutorial de TensorBoard. Es el panel principal:

Visualización de gráficos de TensorFlow
Visualización de gráficos de TensorFlow

En la imagen a continuación, puede ver el panel de visualización de gráficos de TensorBoard. El panel contiene diferentes pestañas, que están vinculadas al nivel de información que agrega cuando ejecuta el modelo.

Gráficos de tablero tensor

Gráficos de tablero tensor
  • Escalares: Muestra diferente información útil durante el entrenamiento del modelo.
  • Gráficos: Mostrar el modelo
  • Histograma: Muestra pesos con un histograma
  • Distribuidores: Muestra la distribución del peso.
  • Proyector: Mostrar análisis de componentes principales y algoritmo T-SNE. La técnica utilizada para la reducción de dimensionalidad.

Durante este tutorial de TensorBoard, entrenará un modelo simple de aprendizaje profundo. Aprenderá cómo funciona en un tutorial futuro.

Si observa el gráfico, podrá comprender cómo funciona el modelo.

  1. Poner en cola los datos en el modelo: enviar una cantidad de datos igual al tamaño del lote en el modelo, es decir, el número de fuentes de datos después de cada iteración.
  2. Alimentar los datos a los tensores.
  3. Entrenar a la modelo
  4. Muestra el número de lotes durante la capacitación. Guarde el modelo en el disco.

Visualización de gráficos de TensorFlow usando el ejemplo de Tensorboard

La idea básica detrás de Tensorboard es que la red neuronal puede ser algo conocido como una caja negra y necesitamos una herramienta para inspeccionar lo que hay dentro de esta caja. Puedes imaginar a Tensorboard como una linterna para comenzar a sumergirte en la red neuronal.

Ayuda a comprender las dependencias entre operaciones, cómo se calculan los pesos, muestra la función de pérdida y mucha otra información útil. Cuando reúnes toda esta información, tienes una gran herramienta para depurar y encontrar cómo mejorar el modelo.

Para darle una idea de lo útil que puede ser el gráfico TensorBoard, mire la siguiente imagen:

Gráficos de tablero tensor
Gráfico de TensorBoard

Una red neuronal decide cómo conectar las diferentes "neuronas" y cuántas capas antes de que el modelo pueda predecir un resultado. Una vez que haya definido la arquitectura, no solo necesita entrenar el modelo, sino también una métrica para calcular la precisión de la predicción. Esta métrica se conoce como función de pérdida. El objetivo es minimizar la función de pérdida. En otras palabras, significa que el modelo comete menos errores. Todos los algoritmos de aprendizaje automático repetirán los cálculos muchas veces hasta que la pérdida alcance una línea más plana. Para minimizar esta función de pérdida, es necesario definir una tasa de aprendizaje. Es la velocidad que desea que aprenda el modelo. Si establece una tasa de aprendizaje demasiado alta, el modelo no tiene tiempo para aprender nada. Este es el caso de la imagen de la izquierda. La línea se mueve hacia arriba y hacia abajo, lo que significa que el modelo predice el resultado con pura conjetura. La imagen de la derecha muestra que la pérdida disminuye a lo largo de la iteración hasta que la curva se aplana, lo que significa que el modelo encontró una solución.

TensorBoard es una gran herramienta para visualizar dichas métricas y destacar posibles problemas. La red neuronal puede tardar horas o semanas antes de encontrar una solución. TensorBoard actualiza las métricas con mucha frecuencia. En este caso, no es necesario esperar hasta el final para ver si el modelo se entrena correctamente. Puede abrir TensorBoard para verificar cómo va el entrenamiento y realizar los cambios correspondientes si es necesario.

¿Cómo utilizar TensorBoard?

En este tutorial, aprenderá cómo abrir TensorBoard desde la terminal para MacOS y la línea de comandos de TensorBoard para Windows.

El código se explicará en un tutorial futuro, el enfoque aquí está en TensorBoard.

Primero, debe importar las bibliotecas que utilizará durante la capacitación.

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

Tú creas los datos. Es una matriz de 10000 filas y 5 columnas.

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

Salida

(10000, 5)

Los códigos siguientes transforman los datos y crean el modelo.

Tenga en cuenta que la tasa de aprendizaje es igual a 0.1. Si cambia esta tasa a un valor más alto, el modelo no encontrará una solución. Esto es lo que sucedió en el lado izquierdo de la imagen de arriba.

Durante la mayor parte de la Tutoriales de TensorFlow, utilizará el estimador TensorFlow. Esta es la API de TensorFlow que contiene todos los cálculos matemáticos.

Para crear los archivos de registro, debe especificar la ruta. Esto se hace con el argumento model_dir.

En el siguiente ejemplo de TensorBoard, almacena el modelo dentro del directorio de trabajo, es decir, donde almacena el cuaderno o el archivo Python. Dentro de esta ruta, TensorFlow creará una carpeta llamada train con un nombre de carpeta secundaria 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    
      )
)

Salida

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': <tensorflow.python.training.server_lib.ClusterSpec object at 0x1818e63828>, '_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}

El último paso de este ejemplo de gráfico de visualización de TensorFlow consiste en entrenar el modelo. Durante el entrenamiento, TensorFlow escribe información en el directorio del 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)

Salida

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.

<tensorflow.python.estimator.canned.dnn.DNNRegressor at 0x1818e63630>

Para usuarios de MacOS

Tutorial de TensorBoard para usuarios de MacOS

Para Windows usuario

Tutorial de TensorBoard para Windows Usuario

Puedes ver esta información en elPyTorch Tablero tensor.

Ahora que tiene escritos los eventos de registro, puede abrir Tensorboard. Tensorboard Keras se ejecuta en el puerto 6006 (Jupyter se ejecuta en el puerto 8888). Puede utilizar la Terminal para usuarios de MacOs o el indicador de Anaconda para Windows .

Para usuarios de MacOS

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

El cuaderno se almacena en la ruta /Users/Guru99/tuto_TF

Para Windows usuarios

cd C:\Users\Admin\Anaconda3
activate hello-tf

El cuaderno se almacena en la ruta C:\Users\Admin\Anaconda3

Para iniciar Tensorboard, puedes usar este código

Para usuarios de MacOS

tensorboard --logdir=./train/linreg

Para Windows usuarios

tensorboard --logdir=.\train\linreg

Tensorboard se encuentra en esta URL: http://localhost:6006

También podría estar ubicado en la siguiente ubicación.

Usar tablero tensor

Copie y pegue la URL en su navegador favorito. Deberías ver esto:

Tenga en cuenta que aprenderemos a leer el gráfico en el tutorial dedicado al deep learning.

Usar tablero tensor

Si ves algo como esto:

Usar tablero tensor

Significa que Tensorboard no puede encontrar el archivo de registro. Asegúrate de apuntar el cd a la ruta correcta o vuelve a verificar si se creó el evento de registro. Si no es así, vuelve a ejecutar el código.

Si desea cerrar TensorBoard presione CTRL+C

Consejo: consulte el indicador de anaconda para conocer el directorio de trabajo actual,

Usar tablero tensor

El archivo de registro debe crearse en C:\Users\Admin

Resum

TensorBoard es una excelente herramienta para visualizar tu modelo. Además, se muestran muchas métricas durante el entrenamiento, como la pérdida, la precisión o los pesos.

Para activar Tensorboard, debe establecer la ruta de su archivo:

cd /Users/Guru99/tuto_TF

Activar el entorno de Tensorflow

activate hello-tf

Lanzar tablero tensor

tensorboard --logdir=.+ PATH