Démarrage rapide

Présentation : ce guide de démarrage rapide présente brièvement le fonctionnement de Cloud TPU. Vous allez utiliser Cloud TPU pour exécuter MNIST, un ensemble de données canonique composé de chiffres manuscrits, souvent employé pour tester de nouvelles approches de machine learning.

Cet article est destiné aux nouveaux utilisateurs de Cloud TPU. Pour explorer Cloud TPU plus en détail, suivez l'un de nos colabs. Vous pouvez également consulter l'un des nombreux exemples de la section Tutoriels.

Avant de commencer

Avant de commencer ce tutoriel, vérifiez que votre projet Google Cloud est correctement configuré. Pour plus d'informations, consultez la page Configurer un compte et un projet Cloud TPU.

Ce tutoriel utilise des composants facturables de Google Cloud, dont :

  • Instance
  • Cloud TPU
  • Cloud Storage

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Cette section fournit des informations sur la configuration de l'espace de stockage Cloud Storage et d'une VM Compute Engine.

  1. Ouvrez une fenêtre Cloud Shell.

    Ouvrir Cloud Shell

  2. Créez une variable pour l'ID de votre projet.

    export PROJECT_ID=project-id
    
  3. Configurez l'outil de ligne de commande gcloud pour utiliser le projet dans lequel vous souhaitez créer Cloud TPU.

    gcloud config set project $PROJECT_ID
    
  4. Créez un bucket Cloud Storage à l'aide de la commande suivante :

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

    Ce bucket Cloud Storage stocke les données que vous utilisez pour entraîner votre modèle, ainsi que les résultats de l'entraînement.

  5. Lancez une VM Compute Engine et Cloud TPU à l'aide de la commande ctpu up.

    $ ctpu up --zone=us-central1-b  \
    --tf-version=2.3.1 \
    --name=tpu-quickstart
    
  6. La configuration que vous avez spécifiée apparaît. Saisissez y pour approuver ou n pour annuler.

  7. Une fois l'exécution de la commande ctpu up terminée, vérifiez que l'invite de l'interface système est passée de username@project à username@tpuname. Cette modification indique que vous êtes maintenant connecté à votre VM Compute Engine.

    Si vous n'êtes pas connecté à l'instance Compute Engine, connectez-vous en exécutant la commande suivante :

    gcloud compute ssh tpu-quickstart --zone=us-central1-b
    

    À mesure que vous appliquez ces instructions, exécutez chaque commande commençant par (vm)$ dans la fenêtre de session de la VM.

Exécuter le modèle de TPU MNIST

Le code source du modèle de TPU MNIST est également disponible sur GitHub.

Configurer des variables d'environnement

Créez les variables suivantes. Remplacez bucket-name par le nom de votre bucket :

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

Entraîner le modèle sur Cloud TPU

  1. Accédez au répertoire où le modèle est stocké :

    (vm)$ cd /usr/share/models/official/vision/image_classification
    
  2. Exécutez le script d'entraînement MNIST :

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

Le script d'entraînement s'exécute en moins de 5 minutes sur un Cloud TPU v3-8 et affiche un résultat semblable à celui-ci :

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}

Nettoyer

Pour éviter que les ressources utilisées dans ce guide démarrage rapide soient facturées sur votre compte Google Cloud :

  1. Déconnectez-vous de l'instance Compute Engine, si vous ne l'avez pas déjà fait :

    (vm)$ exit
    

    Votre invite devrait maintenant être user@projectname, indiquant que vous êtes dans Cloud Shell.

  2. Dans votre environnement Cloud Shell, exécutez ctpu delete avec les options --zone que vous avez utilisées lors de la configuration de la VM Compute Engine et du Cloud TPU. Cela supprime à la fois votre VM et votre Cloud TPU.

    $ ctpu delete --zone=us-central1-b \
      --name=tpu-quickstart
    
  3. Exécutez ctpu status pour vérifier qu'il ne reste aucune instance allouée afin d'éviter des frais inutiles liés à l'utilisation des ressources TPU. La suppression peut prendre plusieurs minutes. Si vous n'avez plus d'instances allouées, une réponse de ce type s'affiche :

    $ ctpu status --zone=us-central1-b
    
       2018/04/28 16:16:23 WARNING: Setting zone to "us-central1-b"
       No instances currently exist.
           Compute Engine VM:     --
           Cloud TPU:             --
    
  4. Exécutez gsutil comme indiqué, en remplaçant bucket-name par le nom du bucket Cloud Storage que vous avez créé pour ce tutoriel :

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

Étape suivante

Ce guide de démarrage rapide vous a brièvement présenté le fonctionnement de Cloud TPU. À ce stade, vous disposez des bases pour :

  • En savoir plus sur Cloud TPU
  • Configurer Cloud TPU pour vos propres applications

En savoir plus

MNIST sur Keras Essayez d'utiliser Cloud TPU en exécutant le modèle MNIST dans un environnement colab.
Présentation du produit Passez en revue les principales caractéristiques et les avantages d Cloud TPU.
Cloud TPU (Tensor Processing Units) Obtenez plus d'informations sur Cloud TPU, ses fonctionnalités et ses avantages.
Tarifs Consultez les informations tarifaires de Cloud TPU.

Configurer

Choisir un service TPU Découvrez toutes les options permettant d'utiliser Cloud TPU, telles que Compute Engine, Google Kubernetes Engine, ou AI Platform.
Types et zones des TPU Découvrez les types de TPU disponibles dans chaque zone.
Versions de TPU Découvrez les différentes versions de TPU et découvrez comment sélectionner celle qui convient à votre application.