TensorBoard

O TensorBoard é um conjunto de ferramentas de visualização para depurar, otimizar e compreender o TensorFlow, o PyTorch, o Hugging Face Transformers e outros programas de machine learning.

Utilizar o TensorBoard

Iniciar o TensorBoard no Azure Databricks não é diferente de o iniciar num bloco de notas do Jupyter no seu computador local.

  1. Carregue o %tensorboard comando magic e defina o diretório de registos.

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

    %tensorboard --logdir $experiment_log_dir
    

    O servidor TensorBoard inicia e apresenta a interface de utilizador inline no bloco de notas. Também fornece uma ligação para abrir o TensorBoard num novo separador.

    A captura de ecrã seguinte mostra a IU do TensorBoard iniciada num diretório de registo preenchido.

    IU do TensorBoard iniciada no diretório de registos preenchido

Também pode iniciar o TensorBoard com o módulo de bloco de notas do TensorBoard diretamente.

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

Registos e diretórios do TensorBoard

O TensorBoard visualiza os programas de machine learning ao ler registos gerados por chamadas de retorno e funções do TensorBoard no TensorBoard ou no PyTorch. Para gerar registos para outras bibliotecas de machine learning, pode escrever diretamente registos com os escritores de ficheiros do TensorFlow (consulte Módulo: tf.summary para TensorFlow 2.x e consulte Módulo: tf.compat.v1.summary para a API mais antiga no TensorFlow 1.x ).

Para se certificar de que os registos de experimentação estão armazenados de forma fiável, o Databricks recomenda que escreva registos no armazenamento na cloud e não no sistema de ficheiros de cluster efémero. Para cada experimentação, inicie o TensorBoard num diretório exclusivo. Para cada execução do seu código de machine learning na experimentação que gera registos, defina a chamada de retorno do TensorBoard ou o escritor de ficheiros para escrever num subdiretório do diretório de experimentação. Desta forma, os dados na IU do TensorBoard são separados em execuções.

Leia a documentação oficial do TensorBoard para começar a utilizar o TensorBoard para registar informações do seu programa de machine learning.

Gerir processos do TensorBoard

Os processos do TensorBoard iniciados no bloco de notas do Azure Databricks não são terminados quando o bloco de notas é desanexado ou o REPL é reiniciado (por exemplo, quando limpa o estado do bloco de notas). Para eliminar manualmente um processo tensorBoard, envie-lhe um sinal de terminação com %sh kill -15 pid. Os processos do TensorBoard eliminados incorretamente podem danificar notebook.list().

Para listar os servidores TensorBoard atualmente em execução no cluster, com os respetivos diretórios de registo e IDs de processo correspondentes, execute notebook.list() a partir do módulo do bloco de notas TensorBoard.

Problemas conhecidos

  • A IU do TensorBoard inline está dentro de um iframe. As funcionalidades de segurança do browser impedem que as ligações externas na IU funcionem, a menos que abra a ligação num novo separador.
  • A --window_title opção do TensorBoard é substituída no Azure Databricks.
  • Por predefinição, o TensorBoard analisa um intervalo de portas para selecionar uma porta para escutar. Se existirem demasiados processos do TensorBoard em execução no cluster, todas as portas no intervalo de portas poderão estar indisponíveis. Pode contornar esta limitação ao especificar um número de porta com o --port argumento . A porta especificada deve estar entre 6006 e 6106.
  • Para transferir ligações para o trabalho, tem de abrir o TensorBoard num separador.
  • Ao utilizar o TensorBoard 1.15.0, o separador Projetor está em branco. Como solução, para visitar diretamente a página do projetor, pode substituir #projector no URL por data/plugin/projector/projector_binary.html.
  • O TensorBoard 2.4.0 tem um problema conhecido que pode afetar a composição do TensorBoard se for atualizado.