Descripción general de TensorBoard

TensorBoard es un marco de visualización de tensorflow para comprender e inspeccionar el flujo del algoritmo de aprendizaje automático.

La evaluación del modelo de aprendizaje automático puede realizarse mediante muchas métricas, como pérdida, precisión, gráfico del modelo y muchas más. El rendimiento del algoritmo de aprendizaje automático depende de la selección del modelo y los hiperparámetros alimentados en el algoritmo. Los experimentos se realizan cambiando los valores de esos parámetros.

Los modelos de aprendizaje profundo son como una caja negra, es difícil encontrar el procesamiento que tiene lugar dentro de ella. Es importante tener una idea para construir el modelo. Con la ayuda de la visualización, puede saber qué parámetros modificar en qué cantidad obtener la mejora en el rendimiento del modelo. Entonces TensorBoard es una herramienta importante para visualizar cada época durante la fase de entrenamiento del modelo.

Instalación

Para instalar el tensorboard usando pip, ejecute el siguiente comando:

pip install tensorboard

Alternativamente, se puede instalar usando el comando conda,

Conda install tensorboard

Uso

Usando el tensorboard con el modelo Keras:

Keras es una biblioteca de código abierto para modelos de aprendizaje profundo. Es una biblioteca de alto nivel que se puede ejecutar en la parte superior de tensorflow, theano, etc.

Para instalar el tensorflow y la biblioteca Keras usando pip:

pip install tensorflow pip install Keras

Tomemos un ejemplo simple de clasificación usando el conjunto de datos MNIST. MNIST es un conjunto de datos numéricos en inglés que contiene imágenes de números del 0 al 9. Está disponible con la biblioteca Keras.

  • Importe el flujo de tensor de la biblioteca ya que usaremos Keras con el backend de tensorflow.

import tensorflow as tf

  • Primero, cargue el conjunto de datos MNIST de Keras en el conjunto de datos de entrenamiento y prueba.

mnist = tf.keras.datasets.mnist

  • El modelo secuencial se crea usando,

tf.keras.models.Sequential

  • Para entrenar el modelo se utiliza Model.fit (). Los registros se pueden crear y almacenar usando,

tf.keras.callback.TensorBoard

  • Para habilitar la computación del histograma,

histogram_freq=1.

Está apagado por defecto.

El código para la clasificación discutida anteriormente del conjunto de datos MNIST es el siguiente:

# 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 el tensorboard en el servidor local, vaya a la ubicación del directorio donde está instalado el tensorflow y luego ejecute el siguiente comando:

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

  • Escalares

Los escalares muestran cambios con cada época. La figura anterior muestra el gráfico de precisión y pérdida después de cada época. Epoch_acc y epoch_loss son precisión de entrenamiento y pérdida de entrenamiento. Mientras que epoch_val_acc y epoch_val_loss son la precisión y la pérdida de datos de validación.

Las líneas naranjas más claras muestran precisión o pérdida exactas y la más oscura representa valores suavizados. El suavizado ayuda a visualizar la tendencia general en los datos.

  • Gráficos

La página Graph le ayuda a visualizar el gráfico de su modelo. Esto le ayuda a verificar si el modelo está construido correctamente o no.

Para visualizar el gráfico, necesitamos crear una sesión y luego el objeto TensorFLow FileWriter. Para crear el objeto escritor, necesitamos pasar la ruta donde se almacena el resumen y sess.graph como argumento.

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

tf.placeholder () y tf.Variable () se usa para marcadores de posición y variables en el código de tensorflow.

Esto muestra la visualización gráfica del modelo que hemos construido. Todos los rectángulos redondeados son espacios de nombres. Y los óvalos muestran las operaciones matemáticas.

Las constantes se muestran como pequeños círculos. Para reducir el desorden en el gráfico, el tensorboard hace algunas simplificaciones usando óvalos punteados o rectángulos redondeados con líneas punteadas. Estos son los nodos que están vinculados a muchos otros nodos o a todos los nodos. Por lo tanto, se mantienen punteados en el gráfico y sus detalles se pueden ver en la esquina superior derecha. En la esquina superior derecha, se proporciona un enlace a degradados, Descensos de degradado o nodos de inicio.

Para saber la cantidad de tensores que entran y salen de cada nodo, puede ver los bordes en el gráfico. Los bordes del gráfico describen el número de tensores que fluyen en el gráfico. Esto ayuda a identificar las dimensiones de entrada y salida de cada nodo. Esto ayuda a depurar cualquier problema.

  • Distribuciones e Histogramas

Esto muestra las distribuciones de tensor con el tiempo, también podemos ver pesos y sesgos. Esto muestra el progreso de las entradas y salidas a lo largo del tiempo para cada época. Hay dos opciones de visualización:

Desplazamiento y superposición.

La vista Offset de los histogramas será la siguiente:

La vista de superposición del histograma es:

La página Distribución muestra las distribuciones estadísticas. El gráfico muestra las desviaciones medias y estándar.

Beneficios

  • TensorBoard ayuda a visualizar el aprendizaje escribiendo resúmenes del modelo como escalares, histogramas o imágenes. Esto, a su vez, ayuda a mejorar la precisión del modelo y depurar fácilmente.
  • El procesamiento de aprendizaje profundo es una cosa de caja negra y el tensorboard ayuda a comprender el procesamiento que tiene lugar en la caja negra con la ayuda de gráficos e histogramas.

Conclusión - TensorBoard

TensorBoards proporciona visualización para el modelo de ingresos profundos que está capacitado y ayuda a comprenderlos. Se puede usar con TensorFlow y Keras ambos. Principalmente proporciona la visualización del comportamiento de escalares, métricas con la ayuda de histogramas y modelo de gráfico en su conjunto.

Artículos recomendados

Esta es una guía de TensorBoard. Aquí discutimos la instalación y el uso de Tensboard usándolo con el modelo Keras con Beneficios. También puede echar un vistazo a los siguientes artículos para obtener más información:

  1. Introducción a Tensorflow
  2. Cómo instalar TensorFlow
  3. ¿Qué es TensorFlow?
  4. Zona de juegos TensorFlow
  5. Conceptos básicos de Tensorflow

Categoría: