Configura Cloud TPU en GKE

En esta página, se presenta una guía rápida para configurar Cloud TPU con Google Kubernetes Engine. Si buscas una explicación detallada, sigue el instructivo que muestra cómo entrenar el modelo ResNet-50 de TensorFlow con Cloud TPU y GKE.

¿Por qué usar GKE?

GKE ofrece clústeres de Kubernetes como un servicio administrado.

  • Configuración y administración más sencillas: Cuando usas Cloud TPU, necesitas una VM de Compute Engine a fin de ejecutar la carga de trabajo y un bloque de enrutamiento entre dominios sin clases (CIDR) para Cloud TPU. GKE configura y administra la VM y el bloque de CIDR por ti.

  • Costo optimizado: GKE escala tus VM y nodos de Cloud TPU de forma automática según las cargas de trabajo y el tráfico. Solo pagas por Cloud TPU y la VM cuando ejecutas las cargas de trabajos en ellas.

  • Uso flexible: Un cambio en una línea de la especificación del pod es suficiente para solicitar un acelerador de hardware diferente (CPU, GPU o TPU):

    kind: Pod
    spec:
      containers:
      - name: example-container
        resources:
          limits:
            cloud-tpus.google.com/v2: 8
            # See the line above for TPU, or below for CPU / GPU.
            # cpu: 2
            # nvidia.com/gpu: 1
    
  • Escalabilidad: GKE proporciona la API de Deployment que puede escalar con facilidad a cientos de pods y nodos de Cloud TPU.

  • Tolerancia a errores: La API de trabajo de GKE, junto con el mecanismo de punto de control de TensorFlow, proporcionan la semántica de ejecución completa. Tus trabajos de entrenamiento se volverán a ejecutar automáticamente con la última lectura del estado del punto de control si se producen fallas en las instancias de VM o en los nodos de Cloud TPU.

Requisitos y limitaciones

Ten en cuenta la información que figura a continuación cuando definas la configuración:

  • Debes usar GKE versión 1.13.4-gke.5 o superior. Para especificar la versión, agrega el parámetro --cluster-version al comando gcloud container clusters create, como se describe a continuación. Consulta más información acerca de la versión en la documentación del SDK.
  • Debes usar TensorFlow 1.13 o posterior. Debes especificar la versión de TensorFlow que usa tu Cloud TPU en las especificaciones de tu pod de Kubernetes, como se describe a continuación.
  • Debes crear el clúster de GKE y los grupos de nodos en una zona donde tu Cloud TPU esté disponible. También debes crear los depósitos de Cloud Storage para alojar tus modelos y datos de entrenamiento en la misma región que el clúster de GKE. Las zonas siguientes están disponibles:

    EE.UU.

    Tipo de TPU (v2) Núcleos de TPU v2 Memoria total de TPU Región o zona
    v2-8 8 64 GiB us-central1-b
    us-central1-c
    us-central1-f
    v2-32 32 256 GiB us-central1-a
    v2-128 128 1 TiB us-central1-a
    v2-256 256 2 TiB us-central1-a
    v2-512 512 4 TiB us-central1-a
    Tipo de TPU (v3) Núcleos de TPU v3 Memoria total de TPU Zonas disponibles
    v3-8 8 128 GiB us-central1-a
    us-central1-b
    us-central1-f

    Europa

    Tipo de TPU (v2) Núcleos de TPU v2 Memoria total de TPU Región o zona
    v2-8 8 64 GiB europe-west4-a
    v2-32 32 256 GiB europe-west4-a
    v2-128 128 1 TiB europe-west4-a
    v2-256 256 2 TiB europe-west4-a
    v2-512 512 4 TiB europe-west4-a
    Tipo de TPU (v3) Núcleos de TPU v3 Memoria total de TPU Zonas disponibles
    v3-8 8 128 GiB europe-west4-a
    v3-32 32 512 GiB europe-west4-a
    v3-64 64 1 TiB europe-west4-a
    v3-128 128 2 TiB europe-west4-a
    v3-256 256 4 TiB europe-west4-a
    v3-512 512 8 TiB europe-west4-a
    v3-1024 1,024 16 TiB europe-west4-a
    v3-2048 2,048 32 TiB europe-west4-a

    Asia-Pacífico

    Tipo de TPU (v2) Núcleos de TPU v2 Memoria total de TPU Región o zona
    v2-8 8 64 GiB asia-east1-c
  • Cada contenedor puede solicitar, como máximo, una Cloud TPU. Sin embargo, varios contenedores de un pod pueden solicitar una Cloud TPU cada uno.
  • El escalador automático del clúster es compatible con Cloud TPU en GKE 1.11.4-gke.12 y versiones posteriores.

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. En la página de selección de proyectos de Cloud Console, selecciona o crea un proyecto de Cloud.

    Ir a la página Selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Obtén información sobre cómo confirmar que tienes habilitada la facturación para tu proyecto.

  4. Cuando usas Cloud TPU con GKE, tu proyecto usa componentes facturables de Google Cloud. Consulta los precios de Cloud TPU y los precios de GKE a fin de calcular los costos, y sigue las instrucciones para limpiar los recursos una vez que termines de usarlos.

  5. Habilita las siguientes API en Cloud Console:

Crea un depósito de Cloud Storage

Necesitas un depósito de Cloud Storage para almacenar los resultados del entrenamiento del modelo de aprendizaje automático.

  1. Ve a la página de Cloud Storage en Cloud Console.

    Ir a la página de Cloud Storage

  2. Crea un depósito nuevo y especifica las siguientes opciones:

    • Un nombre único de tu elección
    • Clase de almacenamiento predeterminada: Standard
    • Ubicación: us-central1

    La ubicación del depósito debe estar en la misma región que el recurso TPU aprovisionado en el clúster de GKE.

Autoriza el acceso de Cloud TPU a tu depósito de Cloud Storage

Necesitas otorgar a la Cloud TPU acceso de lectura y escritura a los objetos de Cloud Storage. Para hacerlo, debes otorgar el acceso requerido a la cuenta de servicio que usa la Cloud TPU. Sigue esta guía para otorgar acceso a tu depósito de almacenamiento.

Crea un clúster de GKE compatible con Cloud TPU

Puedes habilitar la compatibilidad con Cloud TPU en un clúster de GKE existente o crear un clúster con Cloud Console o la herramienta de línea de comandos de gcloud. Selecciona una opción a continuación para ver las instrucciones correspondientes:

Console

Sigue estas instrucciones para crear un clúster de GKE compatible con Cloud TPU:

  1. Ve a la página de GKE en Cloud Console.

    Ir a la página de GKE

  2. Haz clic en Crear clúster.

  3. Especifica un Nombre para tu clúster. El nombre debe ser único dentro del proyecto y la zona.

  4. En Tipo de ubicación, selecciona zonal y, luego, la zona deseada en la que planeas usar un recurso de Cloud TPU. Por ejemplo, selecciona la zona us-central1-b.

    Cloud TPU está disponible en las siguientes zonas:

    EE.UU.

    Tipo de TPU (v2) Núcleos de TPU v2 Memoria total de TPU Región o zona
    v2-8 8 64 GiB us-central1-b
    us-central1-c
    us-central1-f
    v2-32 32 256 GiB us-central1-a
    v2-128 128 1 TiB us-central1-a
    v2-256 256 2 TiB us-central1-a
    v2-512 512 4 TiB us-central1-a
    Tipo de TPU (v3) Núcleos de TPU v3 Memoria total de TPU Zonas disponibles
    v3-8 8 128 GiB us-central1-a
    us-central1-b
    us-central1-f

    Europa

    Tipo de TPU (v2) Núcleos de TPU v2 Memoria total de TPU Región o zona
    v2-8 8 64 GiB europe-west4-a
    v2-32 32 256 GiB europe-west4-a
    v2-128 128 1 TiB europe-west4-a
    v2-256 256 2 TiB europe-west4-a
    v2-512 512 4 TiB europe-west4-a
    Tipo de TPU (v3) Núcleos de TPU v3 Memoria total de TPU Zonas disponibles
    v3-8 8 128 GiB europe-west4-a
    v3-32 32 512 GiB europe-west4-a
    v3-64 64 1 TiB europe-west4-a
    v3-128 128 2 TiB europe-west4-a
    v3-256 256 4 TiB europe-west4-a
    v3-512 512 8 TiB europe-west4-a
    v3-1024 1,024 16 TiB europe-west4-a
    v3-2048 2,048 32 TiB europe-west4-a

    Asia-Pacífico

    Tipo de TPU (v2) Núcleos de TPU v2 Memoria total de TPU Región o zona
    v2-8 8 64 GiB asia-east1-c
  5. Asegúrate de que la Versión principal esté configurada como 1.13.4-gke.5 o una versión posterior a fin de que sea compatible con Cloud TPU.

  6. En el panel de navegación, en el grupo de nodos que deseas configurar, haz clic en Seguridad.

  7. Selecciona Permitir el acceso total a todas las API de Cloud. Esto garantiza que todos los nodos del clúster tengan acceso a tu depósito de Cloud Storage. El clúster y el depósito de almacenamiento deben estar en el mismo proyecto para que esto funcione. Ten en cuenta que los pods heredan, de forma predeterminada, los alcances de los nodos en los que se implementan. Si deseas limitar el acceso según el pod, consulta la guía de GKE para autenticar con cuentas de servicio.

  8. En el panel de navegación, en Clúster, haz clic en Herramientas de redes.

  9. Selecciona Habilitar el enrutamiento de tráfico nativo de VPC (usa IP de alias), es posible que debas crear una red de VPC si no existe una para el proyecto actual.

  10. En el panel de navegación, en Clúster, haz clic en Funciones.

  11. Selecciona Habilitar Cloud TPU.

  12. Configura las opciones restantes para tu clúster según desees. Puedes dejar las opciones en sus valores predeterminados.

  13. Haga clic en Crear.

  14. Conéctate al clúster. Para ello, selecciona tu clúster en la página de clústeres de Kubernetes en Console y haz clic en el botón Conectar. Se mostrará el comando de gcloud a fin de que se ejecute en Cloud Shell para la conexión.

gcloud

Sigue las instrucciones a continuación para configurar tu entorno y crear un clúster de GKE compatible con Cloud TPU mediante la herramienta de línea de comandos de gcloud:

  1. Instala los componentes de gcloud necesarios para ejecutar GKE con Cloud TPU:

    $ gcloud components install
  2. Especifica tu proyecto de Google Cloud:

    $ gcloud config set project YOUR-CLOUD-PROJECT
    

    En el ejemplo de código anterior, YOUR-CLOUD-PROJECT es el nombre de tu proyecto de Google Cloud.

  3. Especifica la zona en la que planeas usar un recurso de Cloud TPU. En este ejemplo, usa la zona us-central1-b:

    $ gcloud config set compute/zone us-central1-b
    

    Cloud TPU está disponible en las siguientes zonas:

    EE.UU.

    Tipo de TPU (v2) Núcleos de TPU v2 Memoria total de TPU Región o zona
    v2-8 8 64 GiB us-central1-b
    us-central1-c
    us-central1-f
    v2-32 32 256 GiB us-central1-a
    v2-128 128 1 TiB us-central1-a
    v2-256 256 2 TiB us-central1-a
    v2-512 512 4 TiB us-central1-a
    Tipo de TPU (v3) Núcleos de TPU v3 Memoria total de TPU Zonas disponibles
    v3-8 8 128 GiB us-central1-a
    us-central1-b
    us-central1-f

    Europa

    Tipo de TPU (v2) Núcleos de TPU v2 Memoria total de TPU Región o zona
    v2-8 8 64 GiB europe-west4-a
    v2-32 32 256 GiB europe-west4-a
    v2-128 128 1 TiB europe-west4-a
    v2-256 256 2 TiB europe-west4-a
    v2-512 512 4 TiB europe-west4-a
    Tipo de TPU (v3) Núcleos de TPU v3 Memoria total de TPU Zonas disponibles
    v3-8 8 128 GiB europe-west4-a
    v3-32 32 512 GiB europe-west4-a
    v3-64 64 1 TiB europe-west4-a
    v3-128 128 2 TiB europe-west4-a
    v3-256 256 4 TiB europe-west4-a
    v3-512 512 8 TiB europe-west4-a
    v3-1024 1,024 16 TiB europe-west4-a
    v3-2048 2,048 32 TiB europe-west4-a

    Asia-Pacífico

    Tipo de TPU (v2) Núcleos de TPU v2 Memoria total de TPU Región o zona
    v2-8 8 64 GiB asia-east1-c
  4. Usa el comando gcloud container clusters create para crear un clúster en GKE compatible con Cloud TPU. En el comando siguiente, reemplaza YOUR-CLUSTER por el nombre de clúster que desees:

    $ gcloud container clusters create YOUR-CLUSTER \
      --cluster-version=1.16 \
      --scopes=cloud-platform \
      --enable-ip-alias \
      --enable-tpu
    

    En el comando anterior:

    • --cluster-version=1.16 indica que el clúster usará la última versión de Kubernetes 1.16. Debes usar la versión 1.13.4-gke.5 o una posterior.
    • --scopes=cloud-platform garantiza que todos los nodos del clúster tengan acceso a tu depósito de Cloud Storage en el proyecto de Google Cloud definido anteriormente como YOUR-CLOUD-PROJECT. El clúster y el depósito de almacenamiento deben estar en el mismo proyecto para que esto funcione. Ten en cuenta que los pods heredan, de forma predeterminada, los alcances de los nodos en los que se implementan. Por lo tanto, --scopes=cloud-platform otorga a todos los pods que se ejecutan en el clúster el alcance cloud-platform. Si quieres limitar el acceso según el pod, consulta la guía de GKE para autenticar con cuentas de servicio.
    • --enable-ip-alias indica que el clúster usa rangos de IP de alias. Esto es necesario para usar Cloud TPU en GKE.
    • --enable-tpu indica que el clúster debe ser compatible con Cloud TPU.
    • --tpu-ipv4-cidr (opcional, no especificado antes) indica la ubicación del rango de CIDR que se puede usar para Cloud TPU. IP_RANGE puede tener la forma de IP/20, como 10.100.0.0/20. Si no especificas esta marca, se asignará de forma automática un rango CIDR de tamaño /20.

Crea y organiza tu modelo en contenedores en la imagen de Docker

Puedes usar un modelo oficial de TPU con contenedores en imágenes de Docker o crear y organizar tu propio modelo en contenedores.

  • Usa los modelos oficiales de TensorFlow

    Los modelos oficiales más recientes de TensorFlow están disponibles en GitHub y como un paquete pip. Para los modelos que toman la marca --tpu, agrega --tpu=$(KUBE_GOOGLE_CLOUD_TPU_ENDPOINTS) al comando en la especificación de tu pod.

  • Crea tus propios modelos

    Si deseas crear tu propio modelo para ejecutar Cloud TPU en GKE, puedes usar Cloud TPU en TensorFlow con tf.distribute.cluster_resolver.TPUClusterResolver y tf.distribute.experimental.TPUStrategy de la manera siguiente:

    # The tpu_names, zone, and project may be omitted in TPUClusterResolver
    # as GKE automatically uses the Cloud TPU created for your
    # job when your runs.
    
    tpu_cluster_resolver = tf.distribute.cluster_resolver.TPUClusterResolver()
    tf.config.experimental_connect_to_cluster(tpu_cluster_resolver)
    tf.tpu.experimental.initialize_tpu_system(tpu_cluster_resolver)
    strategy = tf.distribute.experimental.TPUStrategy(tpu_cluster_resolver)
    with strategy.scope():
        ...
    
    

    Para obtener más información, consulta la documentación de TensorFlow sobre cómo usar los Cloud TPU en TensorFlow.

Puedes usar gcloud builds submit -t gcr.io/... para compilar una imagen de Docker y enviarla a Google Container Registry.

Solicita una Cloud TPU en las especificaciones de tu pod de Kubernetes

En las especificaciones de tu pod:

  • Usa la notación de pod siguiente para especificar la versión de TensorFlow que usan los nodos de Cloud TPU:

    tf-version.cloud-tpus.google.com: "x.y"
    

    Donde x.y es la versión de TensorFlow compatible con Cloud TPU. Debes usar TensorFlow 1.13 o una versión superior. Todas las instancias de Cloud TPU que se crean para un pod deben usar la misma versión de TensorFlow. Debes compilar tus modelos en tus contenedores con la misma versión de TensorFlow. Consulta las versiones compatibles.

  • Especifica el recurso de Cloud TPU en la sección limits en el campo resource en la especificación de contenedor.

    Ten en cuenta que la unidad del recurso de Cloud TPU es la cantidad de núcleos de Cloud TPU. En la tabla siguiente, se enumeran todas las solicitudes de recursos válidas.

    Si el recurso que quieres usar es un pod de Cloud TPU, debes solicitar cuota, ya que la cuota predeterminada para un pod de Cloud TPU es cero.

    Solicitud de recurso Tipo de Cloud TPU Versión de GKE requerida
    cloud-tpus.google.com/v2: 8 Un dispositivo de Cloud TPU v2 (8 núcleos) 1.10.4-gke.2 o superior
    cloud-tpus.google.com/v2: 32 Un pod de Cloud TPU v2-32 (32 núcleos) (Beta) 1.10.7-gke.6 o superior
    cloud-tpus.google.com/v2: 128 Un pod de Cloud TPU v2-128 (128 núcleos) (Beta) 1.10.7-gke.6 o superior
    cloud-tpus.google.com/v2: 256 Un pod de Cloud TPU v2-256 (256 núcleos) (Beta) 1.10.7-gke.6 o superior
    cloud-tpus.google.com/v2: 512 Un pod de Cloud TPU v2-512 (512 núcleos) (Beta) 1.10.7-gke.6 o superior
    cloud-tpus.google.com/v3: 32 Un pod de Cloud TPU v3-32 (32 núcleos) (Beta) 1.10.7-gke.6 o superior
    cloud-tpus.google.com/v3: 64 Un pod de Cloud TPU v3-64 (64 núcleos) (Beta) 1.10.7-gke.6 o superior
    cloud-tpus.google.com/v3: 128 Un pod de Cloud TPU v3-128 (128 núcleos) (Beta) 1.10.7-gke.6 o superior
    cloud-tpus.google.com/v3: 256 Un pod de Cloud TPU v3-256 (256 núcleos) (Beta) 1.10.7-gke.6 o superior
    cloud-tpus.google.com/v3: 512 Un pod de Cloud TPU v3-512 (512 núcleos) (Beta) 1.10.7-gke.6 o superior
    cloud-tpus.google.com/v3: 1,024 Un pod de Cloud TPU v3-1024 (1,024 núcleos) (Beta) 1.10.7-gke.6 o superior
    cloud-tpus.google.com/v3: 2,048 Un pod de Cloud TPU v3-2048 (2,048 núcleos) (Beta) 1.10.7-gke.6 o superior
    cloud-tpus.google.com/preemptible-v2: 8 Un dispositivo de Cloud TPU v2 interrumpible (8 núcleos) 1.10.6-gke.1 o superior
    cloud-tpus.google.com/v3: 8 Un dispositivo de Cloud TPU v3 (8 núcleos) 1.10.7-gke.6 o superior
    cloud-tpus.google.com/preemptible-v3: 8 Un dispositivo de Cloud TPU v3 interrumpible (8 núcleos) 1.10.7-gke.6 o superior

    Si deseas obtener más información acerca de cómo especificar recursos y límites en las especificaciones del pod, consulta la documentación de Kubernetes.

Por ejemplo, las especificaciones de este trabajo requieren un dispositivo de Cloud TPU v2 interrumpible con TensorFlow 2.2:

apiVersion: batch/v1
kind: Job
metadata:
  name: resnet-tpu
spec:
  template:
    metadata:
      annotations:
        # The Cloud TPUs that will be created for this Job will support
        # TensorFlow 2.2. This version MUST match the
        # TensorFlow version that your model is built on.
        tf-version.cloud-tpus.google.com: "2.2"
    spec:
      restartPolicy: Never
      containers:
      - name: resnet-tpu
        # The official TensorFlow 2.2.0 image.
        # https://hub.docker.com/r/tensorflow/tensorflow
        image: tensorflow/tensorflow:2.2.0
        command:
        - bash
        - -c
        - |
          pip install tf-models-official==2.2.0
          python3 -m official.vision.image_classification.resnet.resnet_ctl_imagenet_main \
            --tpu=$(KUBE_GOOGLE_CLOUD_TPU_ENDPOINTS) \
            --distribution_strategy=tpu \
            --steps_per_loop=500 \
            --log_steps=500 \
            --use_synthetic_data=true \
            --dtype=fp32 \
            --enable_tensorboard=true \
            --train_epochs=90 \
            --epochs_between_evals=1 \
            --batch_size=1024 \
            --model_dir=gs://<my-model-bucket>/resnet
        resources:
          limits:
            # Request a single Preemptible v2-8 Cloud TPU device to train the
            # model. A single v2-8 Cloud TPU device consists of 4 chips, each of
            # which has 2 cores, so there are 8 cores in total.
            cloud-tpus.google.com/preemptible-v2: 8

Crea el trabajo

Sigue estos pasos a fin de crear el trabajo en el clúster de GKE y para instalar kubectl:

  1. Crea las especificaciones del trabajo, example-job.yaml, incluidas las especificaciones descritas con anterioridad.

  2. Ejecuta el trabajo:

    $ kubectl create -f example-job.yaml
    job "resnet-tpu" created

    Con este comando, se crea el trabajo que programa el pod de forma automática.

  3. Verifica la programación del pod y el aprovisionamiento de los nodos Cloud TPU. Un pod que solicita nodos de Cloud TPU puede permanecer pendiente durante 5 minutos antes de ejecutarse. Verás un resultado similar al siguiente hasta que se programe el pod.

    $ kubectl get pods -w
    
    NAME               READY     STATUS    RESTARTS   AGE
    resnet-tpu-cmvlf   0/1       Pending   0          1m
    

    Después de 5 minutos, deberías ver algo como lo siguiente:

    NAME               READY     STATUS    RESTARTS   AGE
    resnet-tpu-cmvlf   1/1       Running   0          6m
    
    La vida útil de los nodos de Cloud TPU está vinculada a los pods que los solicitan. Cloud TPU se crea a demanda cuando se programa el pod y se recicla cuando este se borra.

Obtén los registros de Cloud TPU

Sigue estos pasos a fin de obtener los registros de las instancias de Cloud TPU que usan tus pods de Kubernetes.

  1. Crea especificaciones de implementación y servicio como las siguientes:

    Ir a la página de GKE

  2. Haz clic en Cargas de trabajo.

  3. Busca tu trabajo y haz clic en él.

  4. Encuentra el pod en Pods administrados y haz clic allí.

  5. Busca el contenedor en Contenedores y haz clic en Ver registros para ver los registros de Cloud TPU que usa este contenedor.

Usa TensorBoard para ver métricas y analizar el rendimiento

TensorBoard es un conjunto de herramientas diseñadas para presentar los datos de TensorFlow de forma visual. TensorBoard puede servir para identificar cuellos de botella en el procesamiento y sugerir formas de mejorar el rendimiento.

TensorFlow Profiler es un complemento de TensorBoard con el que puedes capturar un perfil de una Cloud TPU individual o un pod de Cloud TPU y verlo en TensorBoard. El selector de herramientas de Cloud TPU estará disponible en la pestaña Perfil, que aparecerá en la barra de menú después de haber capturado la información de seguimiento de un modelo de TensorFlow en ejecución. También puedes seleccionarla en el menú desplegable.

Sigue estos pasos para ejecutar TensorBoard en el clúster de GKE:

  1. Crea otro contenedor de TensorFlow para ejecutar TensorBoard y reemplaza bucket-name por el nombre de tu depósito de GCS.

    $ kubectl run tensorboard \
      --image tensorflow/tensorflow:2.2.0 \
      --port 6006 \
      -- bash -c "pip install tensorboard-plugin-profile==2.2.0 cloud-tpu-client && tensorboard --logdir=gs://bucket-name/resnet"
    
  2. Verifica que se haya programado el pod tensorboard.

    $ kubectl get pod tensorboard -w
    
    NAME          READY   STATUS    RESTARTS   AGE
    tensorboard   1/1     Running   0          50s
    
    
  3. Redirecciona al pod tensorboard:

    $ kubectl port-forward pod/tensorboard 6006
    
  4. Accede a http://localhost:6006 dentro de tu navegador.

  5. Selecciona la pestaña Perfil en el menú desplegable de TensorBoard.

  6. Selecciona el botón Capturar perfil en la pestaña Perfil.

  7. En el menú emergente, selecciona el tipo de dirección del nombre de la TPU y, luego, ingresa el nombre de la TPU. El nombre del TPU aparece en Cloud Console en la página Compute Engine > TPU con el formato siguiente:

    gke-[CLUSTER-NAME]-[CLUSTER-ID]-tpu-[TPU-ID]
    
    Por ejemplo:
    gke-demo-cluster-25cee208-tpu-4b90f4c5

  8. Selecciona el botón Capture (Capturar) cuando estés listo para comenzar a generar perfiles y espera unos segundos hasta que se complete el perfil.

  9. Actualiza el navegador para ver los datos de seguimiento en la pestaña Perfil de TensorBoard.

Para obtener más información sobre cómo capturar y interpretar perfiles, consulta la guía de generación de perfiles de TensorFlow.

Limpia

Cuando termines con Cloud TPU en GKE, limpia los recursos para evitar generar cargos adicionales en tu cuenta de Google Cloud.

Console

Borra tu clúster de GKE:

  1. Ve a la página de GKE en Cloud Console.

    Ir a la página de GKE

  2. Selecciona la casilla de verificación junto al clúster que deseas borrar.

  3. Haz clic en Borrar.

Una vez que hayas terminado de examinar los datos, borra el depósito de Cloud Storage que creaste durante este instructivo:

  1. Ve a la página de Cloud Storage en Cloud Console.

    Ir a la página de Cloud Storage

  2. Selecciona la casilla de verificación ubicada junto al depósito que deseas borrar.

  3. Haz clic en Borrar.

Consulta la guía de precios de Cloud Storage para obtener los límites de almacenamiento gratuito y otra información sobre precios.

gcloud

Si no configuraste el proyecto y la zona para esta sesión, hazlo ahora mismo. Consulta las instrucciones antes presentadas en esta guía. Luego, sigue este procedimiento de limpieza:

  1. Ejecuta el siguiente comando para borrar tu clúster de GKE y reemplazar YOUR-CLUSTER por el nombre de tu clúster y YOUR-PROJECT por el nombre de tu proyecto de Google Cloud:

    $ gcloud container clusters delete YOUR-CLUSTER --project=YOUR-PROJECT
    
  2. Cuando termines de examinar los datos, usa el comando gsutil para borrar el depósito de Cloud Storage que creaste durante este instructivo. Reemplaza YOUR-BUCKET por el nombre de tu depósito de Cloud Storage.

    $ gsutil rm -r gs://YOUR-BUCKET
    

    Consulta la guía de precios de Cloud Storage para obtener los límites de almacenamiento gratuito y otra información sobre precios.

Qué sigue

  • Sigue los pasos del instructivo para entrenar el modelo ResNet-50 de TensorFlow en Cloud TPU y GKE.
  • Ejecuta más modelos y trabajos de recuperación de conjuntos de datos mediante una de las siguientes especificaciones de trabajos: