TensorBoard

TensorBoard es un conjunto de herramientas de visualización para depurar, optimizar y comprender TensorFlow, PyTorch, Hugging Face Transformers y otros programas de aprendizaje automático.

Uso de TensorBoard

Iniciar TensorBoard en Azure Databricks no es diferente de iniciarlo en un cuaderno de Jupyter Notebook en el equipo local.

  1. Cargue el comando magic %tensorboard y defina el directorio de registro.

    %load_ext tensorboard
    experiment_log_dir = <log-directory>
    
  2. Invoque el comando mágico %tensorboard.

    %tensorboard --logdir $experiment_log_dir
    

    El servidor TensorBoard se inicia y muestra la interfaz de usuario insertable en el cuaderno. También proporciona un vínculo para abrir TensorBoard en una nueva pestaña.

    En la captura de pantalla se muestra la interfaz de usuario de TensorBoard iniciada en un directorio de registro rellenado.

    Interfaz de usuario de TensorBoard iniciada en el directorio de registro rellenado

También puede iniciar TensorBoard mediante el módulo de cuadernos de TensorBoard directamente.

from tensorboard import notebook
notebook.start("--logdir {}".format(experiment_log_dir))

Registros y directorios de TensorBoard

TensorBoard visualiza los programas de aprendizaje automático mediante la lectura de los registros generados por las devoluciones de llamada y las funciones de TensorBoard en TensorBoard o PyTorch. Para generar registros para otras bibliotecas de aprendizaje automático, puede escribir registros directamente mediante escritores de archivos de TensorFlow (consulte Módulo: tf.summary para TensorFlow 2.x y consulte Módulo: tf.compat.v1.summary para la API anterior en TensorFlow 1.x).

Para asegurarse de que los registros de experimentos se almacenan de forma confiable, Databricks recomienda escribir registros en el almacenamiento en la nube en lugar de en el sistema de archivos del clúster efímero. Para cada experimento, inicie TensorBoard en un directorio único. Para cada ejecución del código de aprendizaje automático del experimento que genera registros, establezca la devolución de llamada TensorBoard o el sistema de archivos para escribir en un subdirectorio del directorio del experimento. De este modo, los datos de la interfaz de usuario de TensorBoard se separan en ejecuciones.

Lea la documentación oficial de TensorBoard para empezar a usar TensorBoard para registrar información del programa de aprendizaje automático.

Administración de procesos de TensorBoard

Los procesos de TensorBoard iniciados en Azure Databricks Notebook no finalizan cuando se desasocia el cuaderno o se reinicia REPL (por ejemplo, cuando se borra el estado del cuaderno). Para terminar manualmente un proceso de TensorBoard, envíele una señal de terminación mediante %sh kill -15 pid. Los procesos de TensorBoard que se han eliminado incorrectamente podríab dañar notebook.list().

Para enumerar los servidores de TensorBoard que se ejecutan actualmente en el clúster, con sus directorios de registro e IDs de proceso correspondientes, ejecute notebook.list() desde el módulo del cuaderno de TensorBoard.

Problemas conocidos

  • La interfaz de usuario insertada de TensorBoard está dentro de un iframe. Las características de seguridad del explorador impiden que los vínculos externos dentro de la interfaz de usuario funcionen a menos que abra el vínculo en una nueva pestaña.
  • La opción --window_title de TensorBoard se invalida en Azure Databricks.
  • De forma predeterminada, TensorBoard examina un intervalo de puertos para seleccionar un puerto para escuchar. Si hay demasiados procesos de TensorBoard en ejecución en el clúster, es posible que todos los puertos del intervalo de puertos no estén disponibles. Puede evitar esta limitación especificando un número de puerto con el argumento --port. El puerto especificado debe estar entre 6006 y 6106.
  • Para que los vínculos de descarga funcionen, debe abrir TensorBoard en una pestaña.
  • Cuando se usa TensorBoard 1.15.0, la pestaña Proyector está en blanco. Como solución alternativa, para visitar directamente la página Proyector, puede reemplazar #projector en la dirección URL por data/plugin/projector/projector_binary.html.
  • TensorBoard 2.4.0 tiene un problema conocido que puede afectar a la representación de TensorBoard si se actualiza.