Como configurar o TensorBoard

Neste documento, descrevemos como configurar e executar o TensorBoard (em inglês) para visualizar e analisar o desempenho do programa no Cloud TPU.

Visão geral

No TensorBoard, há um conjunto de ferramentas projetadas para apresentar visualmente os dados do TensorFlow. Quando o TensorBoard é usado para monitoramento, é possível identificar gargalos no processamento e receber sugestões para melhorar o desempenho.

Pré-requisitos

As instruções a seguir requerem que você tenha configurado o Cloud TPU no Cloud Shell e esteja pronto para executar o aplicativo de treinamento.

Se você não tiver um modelo pronto para treinar, comece com o tutorial MNIST.

Instalar o criador de perfil do Cloud TPU

Instale a versão atual do cloud-tpu-profiler 2.3.0 na VM em que você está executando o modelo para criar o script capture-tpu-profile.

Executar o TensorBoard

Quando você executou ctpu up para criar a VM do Compute Engine e o Cloud TPU, a ferramenta configurou automaticamente o encaminhamento de porta para o ambiente do Cloud Shell para disponibilizar o TensorBoard. É preciso executar o TensorBoard em um novo Cloud Shell, não no shell em que está sendo executado seu aplicativo de treinamento.

Siga estas etapas para executar o TensorBoard em um Cloud Shell separado:

  1. Abra um segundo Cloud Shell para capturar dados de criação de perfil e para inicializar o TensorBoard.

  2. No segundo Cloud Shell, execute ctpu up para definir algumas variáveis de ambiente necessárias no novo shell:

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

    Observe que o argumento --zone é necessário para que o ctpu up encontre corretamente a VM do Compute Engine.

    Com isso, será retornada uma saída semelhante a esta:

    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. No segundo Cloud Shell, crie variáveis de ambiente para o bucket do Cloud Storage e o diretório de modelos. A variável do diretório de modelos (MODEL_DIR) tem o nome do diretório do GCP em que os checkpoints, os resumos e a saída do TensorBoard são armazenados durante o treinamento do modelo: Por exemplo, MODEL_DIR=${STORAGE_BUCKET}/model.

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

Executar o modelo, capturar a resposta do monitoramento e exibi-la no TensorBoard

Há duas maneiras de ver as informações do rastro do TensorBoard, com o visualizador de rastros estático ou o visualizador de rastros em streaming. O visualizador de rastros está limitado a um milhão de eventos por Cloud TPU. Se for preciso acessar mais eventos, use o visualizador de rastros em streaming. Ambas as configurações são mostradas abaixo.

  1. No primeiro Cloud Shell, execute o aplicativo de treinamento de modelos do TensorFlow. Por exemplo, se você estiver usando o modelo MNIST, execute mnist_tpu.py como descrito no tutorial MNIST.
  2. Selecione o tipo de visualizador de rastros que você quer usar: visualizador de rastros estático ou visualizador de rastros em streaming.
  3. Execute um dos seguintes procedimentos:
  4. visualizador de rastros estático

    1. No segundo Cloud Shell, execute o comando a seguir do TensorBoard:
    2. (vm)$ tensorboard --logdir=${MODEL_DIR} &
      
    3. Na barra do canto superior direito do Cloud Shell, clique no botão Web preview e abra a porta 8080 para ver a saída do TensorBoard. A interface do usuário do TensorBoard aparecerá no seu navegador como uma guia.
    4. Siga um dos procedimentos a seguir para capturar o perfil.
    • Se você estiver executando o TensorBoard 1.15 ou superior, clique no link PROFILE na parte superior da IU do TensorBoard. Em seguida, clique no botão CAPTURE PROFILE na parte superior da janela do TensorBoard.
    • Aparecerá um menu de dados em que é possível especificar como capturar a saída da TPU: por endereço IP ou nome da TPU.

      Insira o endereço IP ou o nome da TPU para começar a capturar dados de rastros exibidos no TensorBoard. Consulte o guia Ferramentas do Cloud TPU para saber mais sobre como alterar os valores padrão de operações do conjunto de dados referente ao traço e duração da criação de perfil.

    • Para capturar um perfil a partir da linha de comando em vez de usar o botão CAPTURE PROFILE, execute o seguinte comando no segundo Cloud Shell:
      (vm)$ capture_tpu_profile --tpu=tpu-name --logdir=${MODEL_DIR}
      

    visualizador de rastros em streaming

    Para o leitor de traces por streaming, copie o endereço IP do seu host de TPU do Console do Google Cloud antes de executar o comando TensorBoard.

    1. Na barra lateral de navegação do Console do Cloud, selecione Compute Engine > TPUs e copie o endereço IP interno referente ao Cloud TPU. Este é o valor que você especifica para o --master_tpu_unsecure_channel no comando do TensorBoard.
    2. Execute o comando do TensorBoard a seguir:
    3. (vm)$ tensorboard --logdir=${MODEL_DIR} --master_tpu_unsecure_channel=tpu-ip-address &
      
    4. Na barra do canto superior direito do Cloud Shell, clique no botão Web preview e abra a porta 8080 para ver a saída do TensorBoard. A interface do usuário do TensorBoard aparecerá no seu navegador como uma guia.
    5. Para capturar a saída do visualizador de rastros em streaming, execute o comando capture_tpu_profile a seguir no segundo Cloud Shell:
    6. (vm)$ capture_tpu_profile --tpu=tpu-name --logdir=${MODEL_DIR}
      

      Isso iniciará a captura de dados de perfil, que serão exibidos no TensorBoard.

A seguir