Guia de início rápido do TensorFlow para VM do Cloud TPU

Visão geral: este guia de início rápido apresenta uma breve introdução de como trabalhar com a Cloud TPU. Neste guia de início rápido, usaremos o Cloud TPU para treinar o ResNet.

Antes de começar

Configurar um projeto do GCP

Faça login na sua Conta do Google. Se você ainda não tiver uma, inscreva-se em uma nova conta. No Console do Google Cloud, selecione ou crie um projeto do Cloud na página do seletor de projetos. Verifique se o faturamento está ativado no projeto. Defina o código do projeto usando gcloud no Cloud Shell. O ID do projeto é o nome do projeto mostrado no Console do Cloud.

$ gcloud config set project project-id

Ativar a API Cloud TPU

Ative a API Cloud TPU usando o seguinte comando gcloud no Cloud Shell. Também é possível ativá-lo no Console do Google Cloud.

$ gcloud services enable tpu.googleapis.com

Configurar o comando gcloud

Execute os comandos a seguir para configurar gcloud para usar o projeto do GCP e instalar componentes necessários para a visualização da VM do TPU.

$ gcloud config set account your-email-account
$ gcloud config set project project-id

Crie uma VM do Cloud TPU com gcloud

$ gcloud alpha compute tpus tpu-vm create tpu-name \
  --zone=europe-west4-a \
  --accelerator-type=v3-8 \
  --version=v2-alpha

Campos obrigatórios

zone
A zona em que você planeja criar a Cloud TPU.
accelerator-type
O tipo do Cloud TPU a ser criado.
version
A versão do ambiente de execução do Cloud TPU.

Conecte-se à VM do Cloud TPU

$ gcloud alpha compute tpus tpu-vm ssh tpu-name --zone europe-west4-a --project project-id

Campos obrigatórios

tpu_name
O nome da VM da TPU a que você está se conectando.
zone
A zona em que você está criando o Cloud TPU. Atualmente europe-west4-a e us-central1-a são compatíveis.
project-id
O ID do projeto do GCP.

Instalar o TensorFlow na VM do Cloud TPU

(vm)$ git clone https://github.com/tensorflow/models.git
(vm)$ pip3 install -r models/official/requirements.txt

Verificação do sistema

Execute um teste simples que use a biblioteca libtpu diretamente para carregar um buffer na TPU e realizar uma computação simples. Esse comando só é compatível com TPUs de dispositivo único.

$ /usr/share/tpu/libtpu_client

Você verá esta resposta:

------ Going to Query Version ------
TPU Driver Version: 0.0.0-dev
------ Going to Open a TPU Driver ------
------ Going to Query for System Information ------
------ Going to Compile a TPU program ------
------ Going to Load a TPU program ------
------ Going to Allocate a TPU Buffer ------
------ Going to Allocate a TPU Buffer ------
------ Going to Allocate a TPU Buffer ------
------ Going to Transfer To Device ------
------ Going to Transfer To Device ------
------ Going to Execute a TPU program ------
------ Going to Transfer From Device ------
------ Going to Unload a TPU program ------
------ Going to Deallocate a TPU Buffer ------
------ Going to Deallocate a TPU Buffer ------
------ Going to Deallocate a TPU Buffer ------
sum:
3 3 3 3 3 3 3 3 3 3 [...]

Executar um exemplo simples usando o tensorflow

Este exemplo executa um cálculo simples em uma TPU.

$ python3 /usr/share/tpu/tensorflow/simple_example.py

Treinar o Resnet em uma única TPU

$ export PYTHONPATH=/usr/share/tpu/tensorflow/resnet50_keras
$ python3 /usr/share/tpu/tensorflow/resnet50_keras/resnet50_single_tpu.py

Limpeza

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste guia de início rápido, siga estas etapas:

  1. Desconecte-se da instância do Compute Engine, caso ainda não tenha feito isso:

    (vm)$ exit
    

    Agora, o prompt será username@projectname, mostrando que você está no Cloud Shell.

  2. Exclua o Cloud TPU.

    $ gcloud alpha compute tpus tpu-vm delete tpu_name \
      --zone=europe-west4-a
    
  3. Execute gcloud alpha compute tpus tpu-vm list para verificar se os recursos foram excluídos. A exclusão pode levar vários minutos. Uma resposta como esta indica que suas instâncias foram excluídas com sucesso.

    $ gcloud alpha compute tpus tpu-vm list --zone=europe-west4-a
    
    NAME             STATUS
    

A seguir

Leia mais sobre VMs do Cloud TPU: