Ce tutoriel explique comment entraîner le modèle ResNet-50 sur un appareil Cloud TPU avec PyTorch. La même procédure peut s'appliquer à d'autres modèles de classification d'image optimisés pour TPU, qui utilisent PyTorch et l'ensemble de données ImageNet.
Le modèle utilisé dans ce tutoriel est basé sur l'article Deep Residual Learning for Image Recognition (Deep learning résiduel pour la reconnaissance d'images), qui présente l'architecture de réseau résiduel (ResNet). Le tutoriel emploie la variante à 50 couches, ResNet-50, et illustre l'entraînement du modèle à l'aide de PyTorch/XLA.
Objectifs
- Préparer l'ensemble de données
- Exécuter la tâche d'entraînement
- Vérifier les résultats
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
- Compute Engine
- Cloud TPU
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Avant de commencer
Avant de commencer ce tutoriel, vérifiez que votre projet Google Cloud est correctement configuré.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
Ce tutoriel utilise des composants facturables de Google Cloud. Consultez la grille tarifaire de Cloud TPU pour estimer vos coûts. Veillez à nettoyer les ressources que vous avez créées vous les avez terminés pour éviter des frais inutiles.
Créer une VM TPU
Ouvrez une fenêtre Cloud Shell.
Créer une VM TPU
gcloud compute tpus tpu-vm create your-tpu-name \ --accelerator-type=v4-8 \ --version=tpu-ubuntu2204-base \ --zone=us-central2-b \ --project=your-project
Connectez-vous à votre VM TPU à l'aide de SSH:
gcloud compute tpus tpu-vm ssh your-tpu-name --zone=us-central2-b
Installez PyTorch/XLA sur votre VM TPU:
(vm)$ pip install torch~=2.4.0 torch_xla[tpu]~=2.4.0 torchvision -f https://storage.googleapis.com/libtpu-releases/index.html
Cloner le dépôt GitHub PyTorch/XLA
(vm)$ git clone --depth=1 --branch r2.4 https://github.com/pytorch/xla.git
Exécuter le script d'entraînement avec des données factices
(vm) $ PJRT_DEVICE=TPU python3 xla/test/test_train_mp_imagenet.py --fake_data --batch_size=256 --num_epochs=1
Si vous pouvez entraîner le modèle à l'aide de données fictives, vous pouvez essayer
des données réelles, comme ImageNet. Pour obtenir des instructions sur le téléchargement d'ImageNet, consultez
Télécharger ImageNet Dans la commande du script d'entraînement,
L'option --datadir
spécifie l'emplacement de l'ensemble de données sur lequel effectuer l'entraînement.
La commande suivante suppose que l'ensemble de données ImageNet se trouve dans ~/imagenet
.
(vm) $ PJRT_DEVICE=TPU python3 xla/test/test_train_mp_imagenet.py --datadir=~/imagenet --batch_size=256 --num_epochs=1
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.
Déconnectez-vous de la VM TPU:
(vm) $ exit
Votre invite devrait maintenant être
username@projectname
, indiquant que vous êtes dans Cloud Shell.Supprimez votre VM TPU.
$ gcloud compute tpus tpu-vm delete resnet50-tutorial \ --zone=us-central2-b
Étape suivante
- Entraîner des modèles de diffusion avec Pytorch
- Résoudre les problèmes liés à PyTorch sur les TPU
- Documentation Pytorch/XLA