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.
Ouvrez une fenêtre Cloud Shell.
Créez une variable pour l'ID de votre projet.
export PROJECT_ID=project-id
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
La première fois que vous exécutez cette commande dans une nouvelle VM Cloud Shell, une page
Authorize Cloud Shell
s'affiche. Cliquez surAuthorize
en bas de la page pour permettre àgcloud
d'effectuer des appels d'API GCP avec vos identifiants.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.
Lancez une VM Compute Engine et Cloud TPU à l'aide de la commande
ctpu up
.$ ctpu up --project=${PROJECT_ID} \ --zone=us-central1-b \ --tf-version=2.3.1 \ --name=tpu-quickstart
La configuration que vous avez spécifiée apparaît. Saisissez y pour approuver ou n pour annuler.
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 deusername@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 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)$ export DATA_DIR=$STORAGE_BUCKET/data (vm)$ export PYTHONPATH="$PYTHONPATH:/usr/share/models"
Entraîner le modèle sur Cloud TPU
Accédez au répertoire où le modèle est stocké :
(vm)$ cd /usr/share/models/official/vision/image_classification
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 :
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.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 --project=${PROJECT_ID} \ --zone=us-central1-b \ --name=tpu-quickstart
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 --project=${PROJECT_ID} \ --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: --
Exécutez
gsutil
comme indiqué, en remplaçantbucket-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. |
Tarif | 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. |