Configura TensorBoard

En este documento, se describe cómo configurar y ejecutar TensorBoard para visualizar y analizar el rendimiento del programa en Cloud TPU.

Descripción general

TensorBoard ofrece un paquete de herramientas diseñadas para presentar los datos de TensorFlow de forma visual. Cuando se lo utiliza en la supervisión, TensorBoard puede servir para identificar cuellos de botella en el procesamiento y sugerir formas de mejorar el rendimiento.

Requisitos previos

En las siguientes instrucciones, se da por sentado que ya configuraste tu Cloud TPU en Cloud Shell y estás listo para ejecutar la aplicación de entrenamiento.

Si no cuentas con un modelo listo para el entrenamiento, puedes comenzar con el instructivo de MNIST.

Instala el generador de perfiles de Cloud TPU

Instala la versión actual de cloud-tpu-profiler 2.3.0 en la VM en la que ejecutas el modelo para crear la secuencia de comandos capture-tpu-profile.

Ejecuta TensorBoard

Cuando ejecutaste ctpu up durante la creación de tu VM de Compute Engine y Cloud TPU, la herramienta configuró de forma automática la redirección de puertos para el entorno de Cloud Shell a fin de que TensorBoard esté disponible. Debes ejecutar Tensorboard en un Cloud Shell nuevo, no el shell que está ejecutando tu aplicación de entrenamiento.

Sigue estos pasos para ejecutar Tensorboard en un Cloud Shell separado:

  1. Abre un segundo Cloud Shell para registrar datos de perfil e iniciar TensorBoard.

  2. En el segundo Cloud Shell, ejecuta ctpu up para configurar algunas variables de entorno necesarias en el nuevo shell:

    $ ctpu up --name=tpu-name --zone=your-zone
    

    Ten en cuenta que el argumento --zone es necesario para que ctpu up encuentre tu VM de Compute Engine de forma correcta.

    Se debería mostrar un resultado similar al siguiente:

    2018/08/02 12:53:12 VM already running.
    2018/08/02 12:53:12 TPU already running.
    About to ssh (with port forwarding enabled -- see docs for details)...
    

  3. En el segundo Cloud Shell, crea variables de entorno para el directorio de modelo y el depósito de Cloud Storage. La variable del directorio de modelo (MODEL_DIR) contiene el nombre del directorio de GCP en el que se almacenan los puntos de control, los resúmenes y los resultados de TensorBoard durante el entrenamiento del modelo. Por ejemplo, MODEL_DIR=${STORAGE_BUCKET}/model

    (vm)$ export STORAGE_BUCKET=gs://your-bucket-name
    (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/model-directory
    

Ejecuta el modelo, registra los resultados de supervisión y muéstralos en TensorBoard

Hay dos maneras de ver la información de seguimiento de TensorBoard: el visualizador de seguimiento estático o el visualizador de seguimiento de transmisión. El visualizador de seguimiento estático tiene un límite de 1 millón de eventos por cada Cloud TPU. Si necesitas acceder a más eventos, usa el visualizador de seguimiento de transmisión. Ambas configuraciones se muestran a continuación.

  1. En el primer Cloud Shell, ejecuta tu aplicación de entrenamiento del modelo de TensorFlow. Por ejemplo, si usas el modelo MNIST, ejecuta mnist_tpu.py como se describe en el instructivo de MNIST.
  2. Selecciona el tipo de visualizador de seguimiento que deseas usar: visualizador de seguimiento estático o visualizador de seguimiento de transmisión.
  3. Realiza uno de los siguientes procedimientos:
  4. lector de seguimiento estático

    1. En el segundo Cloud Shell, ejecuta el siguiente comando de TensorBoard:
    2. (vm)$ tensorboard --logdir=${MODEL_DIR} &
      
    3. En la parte superior derecha de la barra de Cloud Shell, haz clic en el botón Vista previa de la Web y abre el puerto 8080 para ver el resultado de TensorBoard. La IU de TensorBoard aparecerá como una pestaña en el navegador.
    4. Realiza una de las siguientes acciones para registrar el perfil.
    • Si ejecutas TensorBoard 1.15 o una versión posterior, haz clic en el vínculo PROFILE en la parte superior de la IU de TensorBoard. Luego, haz clic en el botón CAPTURE PROFILE en la parte superior de la ventana de TensorBoard.
    • Aparece un menú de detalles en el que puedes especificar cómo registrar el resultado de TPU: por dirección IP o nombre de TPU.

      Ingresa la dirección IP o el nombre de TPU para comenzar a registrar los datos de seguimiento que luego se mostrarán en TensorBoard. Consulta la guía de herramientas de Cloud TPU a fin de obtener más información sobre cómo cambiar las opciones predeterminadas para los valores de las ops del conjunto de datos de la duración y el seguimiento del perfil.

    • Para registrar un perfil desde la línea de comandos en lugar de usar el botón REGISTRAR PERFIL, en el segundo Cloud Shell, ejecuta el siguiente comando:
      (vm)$ capture_tpu_profile --tpu=tpu-name --logdir=${MODEL_DIR}
      

    lector de seguimiento de transmisión

    Para ejecutar el visualizador de seguimiento de transmisión, copia la dirección IP del host de TPU desde Google Cloud Console antes de ejecutar el comando de TensorBoard.

    1. En la barra lateral de navegación de Cloud Console, selecciona Compute Engine > TPU y copia la dirección IP interna para tu Cloud TPU. Este es el valor que especificas para el --master_tpu_unsecure_channel en el comando de TensorBoard.
    2. Ejecuta el siguiente comando de TensorBoard:
    3. (vm)$ tensorboard --logdir=${MODEL_DIR} --master_tpu_unsecure_channel=tpu-ip-address &
      
    4. En la parte superior derecha de la barra de Cloud Shell, haz clic en el botón Vista previa de la Web y abre el puerto 8080 para ver el resultado de TensorBoard. La IU de TensorBoard aparecerá como una pestaña en el navegador.
    5. Para capturar el resultado del visualizador de seguimiento de transmisión, ejecuta el siguiente comando capture_tpu_profile en el segundo Cloud Shell:
    6. (vm)$ capture_tpu_profile --tpu=tpu-name --logdir=${MODEL_DIR}
      

      De este modo, se comenzarán a registrar datos de perfil, que se mostrarán en TensorBoard.

Qué sigue