Início rápido

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 executar o MNIST, um conjunto de dados canônico digitados à mão que é frequentemente usado para testar novas abordagens de machine learning.

Este tópico é destinado a usuários novos na Cloud TPU. Para uma exploração mais detalhada da Cloud TPU, tente executar um de nossos colabs. Também é possível ver um dos muitos exemplos na seção Tutoriais.

Antes de começar

Antes de começar o tutorial, verifique se o projeto do Google Cloud foi configurado corretamente. Para mais informações, consulte Configurar uma conta e um projeto do Cloud TPU.

Neste tutorial, há componentes faturáveis do Google Cloud, a saber:

  • Compute Engine
  • Cloud TPU
  • Cloud Storage

Use a calculadora de preços para gerar uma estimativa de custos baseada na projeção de uso. Novos usuários do Google Cloud podem estar qualificados para uma avaliação gratuita.

Nesta seção, você verá como configurar o armazenamento do Cloud Storage e uma VM do Compute Engine.

  1. Abra uma janela do Cloud Shell.

    Abrir o Cloud Shell

  2. Crie uma variável para o ID do seu projeto.

    export PROJECT_ID=project-id
    
  3. Configure a ferramenta de linha de comando gcloud para usar o projeto em que a Cloud TPU será criada.

    gcloud config set project $PROJECT_ID
    

    Na primeira vez que você executar esse comando em uma nova VM do Cloud Shell, será exibida uma página Authorize Cloud Shell. Clique em Authorize na parte inferior da página para permitir que gcloud faça chamadas de API do GCP com suas credenciais.

  4. Crie um bucket do Cloud Storage usando o seguinte comando:

    gsutil mb -p ${PROJECT_ID} -c standard -l us-central1 -b on gs://bucket-name
    

    Esse bucket do Cloud Storage armazena os dados usados para treinar o modelo e os resultados do treinamento.

  5. Use o comando gcloud para iniciar uma VM do Compute Engine e a Cloud TPU.

    $ gcloud compute tpus execution-groups create \
     --name=mnist-tutorial \
     --zone=us-central1-b \
     --tf-version=2.4.1 \
     --machine-type=n1-standard-1 \
     --accelerator-type=v3-8
    

    Descrições de sinalizações de comando

    name
    O nome da Cloud TPU a ser criada.
    zone
    A zona em que você planeja criar a Cloud TPU.
    tf-version
    A versão do Tensorflow que o comando gcloud instala na sua VM.
    machine-type
    O tipo de máquina da VM do Compute Engine a ser criado.
    accelerator-type
    O tipo da Cloud TPU a ser criada.

    Para mais informações sobre o comando gcloud, consulte a referência da gcloud.

  6. Quando o comando gcloud compute tpus execution-groups terminar a execução, verifique se o prompt do shell foi alterado de username@projectname para username@vm-name. Essa alteração mostra que você fez login na VM do Compute Engine.

    gcloud compute ssh mnist-tutorial --zone=us-central1-b
    

    Ao seguir essas instruções, execute cada comando iniciado por (vm)$ na janela de sessão da VM.

Executar o modelo de TPU do MNIST

O código-fonte do modelo de TPU do MNIST está disponível no GitHub (em inglês).

Configurar variáveis de ambiente

Crie as variáveis a seguir. Substitua bucket-name pelo nome do seu bucket:

(vm)$ export STORAGE_BUCKET=gs://bucket-name
(vm)$ export TPU_NAME=mnist-tutorial
(vm)$ export MODEL_DIR=$STORAGE_BUCKET/mnist
(vm)$ export DATA_DIR=$STORAGE_BUCKET/data
(vm)$ export PYTHONPATH="$PYTHONPATH:/usr/share/models"

Treinar o modelo no Cloud TPU

  1. Mude para o diretório que armazena o modelo:

    (vm)$ cd /usr/share/models/official/vision/image_classification
    
  2. Execute o script de treinamento do MNIST:

    (vm)$ python3 mnist_main.py \
      --tpu=$TPU_NAME \
      --model_dir=$MODEL_DIR \
      --data_dir=$DATA_DIR \
      --train_epochs=10 \
      --distribution_strategy=tpu \
      --download
    

O script de treinamento é executado em menos de cinco minutos em um Cloud TPU v3-8 e exibe uma saída semelhante a:

I1203 03:43:15.936553 140096948798912 mnist_main.py:165]
Run stats: {'loss': 0.11427700750786683, 'training_accuracy_top_1': 0.9657697677612305,
'accuracy_top_1': 0.9730902910232544, 'eval_loss': 0.08600160645114051}

Limpar

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 os recursos do Cloud TPU e do Compute Engine.

    $ gcloud compute tpus execution-groups delete mnist-tutorial \
      --zone=us-central1-b
    
  3. Execute gcloud compute tpus execution-groups 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 compute tpus execution-groups list --zone=us-central1-b
    
    NAME             STATUS
    
  4. Exclua o bucket do Cloud Storage usando gsutil, conforme mostrado abaixo. Substitua bucket-name pelo nome do bucket no Cloud Storage.

    $ gsutil rm -r gs://bucket-name
    

A seguir

Neste guia de início rápido, apresentamos uma breve introdução de como trabalhar com o Cloud TPU. Neste ponto, você tem a base para:

  • saber mais sobre a Cloud TPU;
  • configurar o Cloud TPU para seus próprios aplicativos.

Como saber mais

MNIST on Keras (em inglês) Tente usar o Cloud TPU executando o modelo MNIST em um ambiente de colab.
Visão geral do produto Avalie os principais recursos e benefícios do Cloud TPU.
Unidades de processamento de tensor do Cloud (Cloud TPUs) Leia mais sobre o Cloud TPU, seus recursos e suas vantagens.
Preço Avalie as informações de preços do Cloud TPU.

Como configurar

Como escolher um serviço de TPU Entenda as diferentes opções para trabalhar com a Cloud TPU, como o Compute Engine, o Google Kubernetes Engine ou o AI Platform.
Tipos e zonas de TPU Saiba quais tipos de TPU estão disponíveis em cada zona.
Versões de TPU Entenda as diferentes versões de TPU e saiba como selecionar o correto para seu aplicativo.