Neste documento, descrevemos como configurar e executar o TensorBoard 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 do 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:
Abra um segundo Cloud Shell para capturar dados de criação de perfil e para inicializar o TensorBoard.
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 octpu 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)...
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.
-
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. - Selecione o tipo de visualizador de rastros que você quer usar: visualizador de rastros estático ou visualizador de rastros em streaming.
- Execute um dos seguintes procedimentos:
- No segundo Cloud Shell, execute o comando a seguir do TensorBoard:
- 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.
- 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.
- 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}
-
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. - Execute o comando do TensorBoard a seguir:
- 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.
-
Para capturar a saída do visualizador de rastros em streaming, execute o comando
capture_tpu_profile
a seguir no segundo Cloud Shell:
visualizador de rastros estático
(vm)$ tensorboard --logdir=${MODEL_DIR} &
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.
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.
(vm)$ tensorboard --logdir=${MODEL_DIR} --master_tpu_unsecure_channel=tpu-ip-address &
(vm)$ capture_tpu_profile --tpu=tpu-name --logdir=${MODEL_DIR}
Isso iniciará a captura de dados de perfil, que serão exibidos no TensorBoard.