Compartilhar via


TensorBoard

O TensorBoard é um conjunto de ferramentas de visualização para depuração, otimização e compreensão do TensorFlow, PyTorch, Hugging Face Transformers e outros programas de aprendizado de máquina.

Usar o TensorBoard

Iniciar o TensorBoard no Azure Databricks não é diferente de iniciá-lo em um notebook Jupyter no computador local.

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

    %load_ext tensorboard
    experiment_log_dir = <log-directory>
    
  2. Invoque o comando magic %tensorboard.

    %tensorboard --logdir $experiment_log_dir
    

    O servidor do TensorBoard é iniciado e exibe a interface do usuário embutida no notebook. Ele também fornece um link para abrir o TensorBoard em uma nova guia.

    A captura de tela a seguir mostra a interface do usuário do TensorBoard iniciada em um diretório de log populado.

    IU do TensorBoard iniciada no diretório de log preenchido

Você também pode iniciar o TensorBoard usando diretamente o módulo de notebook do TensorBoard.

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

Logs e diretórios do TensorBoard

O TensorBoard visualiza seus programas de aprendizado de máquina lendo os logs gerados por retornos de chamada e funções do TensorBoard no TensorBoard ou PyTorch. Para gerar logs para outras bibliotecas de aprendizado de máquina, você pode gravar logs diretamente usando os gravadores de arquivos do TensorFlow (consulte Módulo: tf.summary para TensorFlow 2.x e Módulo: tf.compat.v1.summary para a API mais antiga no TensorFlow 1.x ).

Para garantir que os logs do seu experimento sejam armazenados de forma confiável, o Azure Databricks recomenda gravar os logs no armazenamento em nuvem em vez de no sistema de arquivos de cluster efêmero. Para cada experimento, inicie o TensorBoard em um diretório exclusivo. Para cada execução do seu código de aprendizado de máquina no experimento que gere logs, defina o retorno de chamada ou o gravador de arquivo do TensorBoard para gravar em um subdiretório do diretório do experimento. Dessa forma, os dados na interface do usuário do TensorBoard serão separados em execuções.

Leia a documentação oficial do TensorBoard para começar a usá-lo para registrar informações para seu programa de aprendizado de máquina.

Gerenciar processos do TensorBoard

Os processos do TensorBoard iniciados no notebook do Azure Databricks não são encerrados quando o notebook é desconectado ou o REPL é reiniciado (por exemplo, quando você limpa o estado do notebook). Para encerrar manualmente um processo do TensorBoard, envie um sinal de encerramento usando %sh kill -15 pid. Encerrar incorretamente processos do TensorBoard pode corromper notebook.list().

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

Problemas conhecidos

  • A interface do usuário embutida no TensorBoard está dentro de um iframe. Os recursos de segurança do navegador impedem que os links externos na interface do usuário funcionem, a menos que você abra o link em uma nova guia.
  • A opção --window_title do TensorBoard é substituída no Azure Databricks.
  • Por padrão, o TensorBoard examina um intervalo de portas para selecionar uma porta a ser escutada. Se houver muitos processos do TensorBoard em execução no cluster, todas as portas no intervalo de portas poderão estar indisponíveis. Você pode resolver essa limitação especificando o número da porta com o argumento --port. A porta especificada deve estar entre 6006 e 6106.
  • Para que os links de download funcionem, abra o TensorBoard em uma guia.
  • Ao usar o TensorBoard 1.15.0, a guia Projetor fica em branco. Como alternativa, para visitar a página do projetor diretamente, você pode substituir #projector na URL por data/plugin/projector/projector_binary.html.
  • O TensorBoard 2.4.0 tem um problema conhecido que pode afetar a renderização do TensorBoard se atualizado.
  • Se você estiver registrando em log dados relacionados ao TensorBoard em volumes DBFS ou UC, poderá receber um erro como No dashboards are active for the current data set. Para superar esse erro, é aconselhável chamar writer.flush() e writer.close() depois de usar writer para registrar dados. Isso garante que todos os dados registrados em log sejam gravados corretamente e disponíveis para renderização do TensorBoard.