Partilhar 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.

Utilizar o TensorBoard

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

  1. Carregue o comando mágico %tensorboard e defina o seu diretório de log.

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

    %tensorboard --logdir $experiment_log_dir
    

    O servidor TensorBoard inicia e exibe a interface do usuário embutida no notebook. Fornece também um link para abrir o TensorBoard num novo separador.

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

    Interface do usuário do TensorBoard iniciada no diretório de log preenchido

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

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

Registos e diretórios do TensorBoard

O TensorBoard visualiza seus programas de aprendizado de máquina lendo 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 gravadores de arquivos 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 garantir que os seus registos de experimento sejam armazenados de forma fiável, a Databricks recomenda gravar os registos no armazenamento em nuvem em vez de no sistema de ficheiros efémero do cluster. Para cada experimento, inicie o TensorBoard em um diretório exclusivo. Para cada execução do código de aprendizagem automática no experimento que gera logs, configure o callback do TensorBoard ou o gravador de ficheiros para escrever em um subdiretório do diretório do experimento. Dessa forma, os dados na interface do usuário do TensorBoard são separados em execuções.

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

Gerir os processos do TensorBoard

Os processos do TensorBoard iniciados no bloco de anotações do Azure Databricks não são encerrados quando o bloco de anotações é desanexado ou o REPL é reiniciado (por exemplo, quando você limpa o estado do bloco de anotações). Para matar manualmente um processo TensorBoard, envie-lhe um sinal de terminação usando %sh kill -15 pid. Processos do TensorBoard mortos indevidamente podem corromper notebook.list().

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

Problemas conhecidos

  • A UI do TensorBoard integrada está dentro de um iframe. Os recursos de segurança do navegador impedem que links externos na interface do usuário funcionem, a menos que você abra o link em uma nova guia.
  • A --window_title opção do TensorBoard é substituída no Azure Databricks.
  • Por padrão, o TensorBoard verifica um intervalo de portas para selecionar uma porta para ouvir. Se houver muitos processos TensorBoard em execução no cluster, todas as portas no intervalo de portas podem estar indisponíveis. Você pode contornar essa limitação especificando um número de porta com o --port argumento. A porta especificada deve estar entre 6006 e 6106.
  • Para que os links de download funcionem, deves abrir o TensorBoard num separador.
  • Ao usar o TensorBoard 1.15.0, a guia Projetor está em branco. Como solução alternativa, para visitar a página do projetor diretamente, você 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 renderização do TensorBoard se for atualizado.
  • Se você estiver registrando 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 ligar writer.flush() e writer.close() depois de usar o writer para registrar dados. Isso garante que todos os dados registrados sejam gravados corretamente e estejam disponíveis para o TensorBoard renderizar.