Guía de inicio rápido

Descripción general: Aprende a usar Cloud TPU para entrenar MNIST, un conjunto de datos canónico de dígitos escritos a mano que a menudo se usa para probar nuevos enfoques de aprendizaje automático.

Este tema está dirigido a usuarios nuevos de Cloud TPU. Para explorar Cloud TPU de forma más detallada, ejecuta una de nuestras colaboraciones. También puedes ver uno de los numerosos ejemplos de la sección Instructivos.


Para obtener orientación paso a paso directamente sobre esta tarea directamente en el editor de Cloud Shell, haz clic en Guiarme:

GUIARME


En las siguientes secciones, se explican los mismos pasos que cuando se hace clic en Guiarme.

Antes de comenzar

Antes de comenzar este instructivo, verifica que tu proyecto de Google Cloud esté configurado correctamente. Para obtener más información, consulta Configura una cuenta y un proyecto de Cloud TPU.

En este instructivo, se usan los siguientes componentes facturables de Google Cloud:

  • Compute Engine
  • Cloud TPU
  • Cloud Storage

Usa la calculadora de precios para generar una estimación de los costos según el uso previsto. Los usuarios nuevos de Google Cloud pueden ser elegibles para obtener una prueba gratuita.

En esta sección se proporciona información sobre cómo configurar el almacenamiento de Cloud Storage y una VM de Compute Engine.

  1. Abre una ventana de Cloud Shell.

    Abrir Cloud Shell

  2. Crea una variable para el ID de tu proyecto.

    export PROJECT_ID=project-id
    
  3. Configura la herramienta de línea de comandos gcloud para usar el proyecto en el que deseas crear Cloud TPU.

    gcloud config set project $PROJECT_ID
    

    La primera vez que ejecutes este comando en una VM de Cloud Shell nueva, se mostrará la página Authorize Cloud Shell. Haz clic en Authorize en la parte inferior de la página para permitir que gcloud realice llamadas a la API de GCP con tus credenciales.

  4. Crea un bucket de Cloud Storage con el siguiente comando:

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

    Este bucket de Cloud Storage almacena los datos que usas para entrenar tu modelo y los resultados del entrenamiento.

  5. Inicia una VM de Compute Engine y Cloud TPU con el comando gcloud.

    $ 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
    

    Descripciones de las marcas de comandos

    name
    El nombre de la Cloud TPU que se creará.
    zone
    La zona en la que planeas crear tu Cloud TPU.
    tf-version
    La versión de TensorFlow que instala el comando gcloud en tu VM.
    machine-type
    El tipo de máquina de la VM de Compute Engine que se creará.
    accelerator-type
    El tipo de Cloud TPU que se creará.

    Para obtener más información sobre el comando gcloud, consulta la referencia de gcloud.

  6. Cuando el comando gcloud compute tpus execution-groups termine de ejecutarse, verifica que el indicador de shell haya cambiado de username@projectname a username@vm-name. Este cambio indica que accediste a tu VM de Compute Engine.

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

    Mientras sigues estas instrucciones, ejecuta cada comando que empiece con (vm)$ en la ventana de sesión de tu VM.

Ejecuta el modelo de TPU MNIST

El código fuente del modelo de TPU MNIST también está disponible en GitHub.

Configura variables de entorno

Crea las siguientes variables: Reemplaza bucket-name por el nombre de tu depósito:

(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"

Entrena el modelo en Cloud TPU

  1. Ve al directorio en el que se almacena el modelo:

    (vm)$ cd /usr/share/models/official/vision/image_classification
    
  2. Ejecuta la secuencia de comandos de entrenamiento de MNIST:

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

La secuencia de comandos de entrenamiento se ejecuta en menos de 5 minutos en una Cloud TPU v3-8 y muestra un resultado similar al siguiente:

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}

Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.

  1. Desconéctate de la instancia de Compute Engine, si aún no lo hiciste:

    (vm)$ exit
    

    El mensaje ahora debería mostrar username@projectname, que indica que estás en Cloud Shell.

  2. Borra los recursos de Cloud TPU y Compute Engine.

    $ gcloud compute tpus execution-groups delete mnist-tutorial \
      --zone=us-central1-b
    
  3. Ejecuta gcloud compute tpus execution-groups list para verificar que los recursos se hayan borrado. La eliminación puede tomar varios minutos. Una respuesta como la que se muestra a continuación indica que tus instancias se borraron de forma correcta.

    $ gcloud compute tpus execution-groups list --zone=us-central1-b
    
    NAME             STATUS
    
  4. Borra tu bucket de Cloud Storage con gsutil como se muestra a continuación. Reemplaza bucket-name por el nombre del bucket de Cloud Storage.

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

¿Qué sigue?

En esta guía de inicio rápido, se proporcionó una breve introducción al trabajo con Cloud TPU. En este punto, tienes la base para realizar las acciones siguientes:

  • Obtener más información sobre Cloud TPU
  • Configurar Cloud TPU para tus propias aplicaciones

Más información

MNIST en Keras Prueba a usar Cloud TPU con la ejecución del modelo MNIST en un entorno colab.
Descripción general del producto Revisa las características y los beneficios clave de Cloud TPU.
Cloud Tensor Processing Unit (TPU) Obtén más información sobre Cloud TPU, sus capacidades y sus ventajas.
Precios Revisa la información de precios para Cloud TPU.

Configuración

Elige un servicio de TPU Aprende sobre las diferentes opciones para trabajar con Cloud TPU, como Compute Engine, Google Kubernetes Engine o AI Platform.
Tipos y zonas de TPU Consulta qué tipos de TPU están disponibles en cada zona.
Versiones de TPU Consulta las diferentes versiones de TPU y aprende a seleccionar la más adecuada para tu aplicación.