ResNet-50 auf Cloud TPU mit PyTorch trainieren

In dieser Anleitung erfahren Sie, wie Sie das ResNet-50-Modell auf einem Cloud TPU-Gerät mit PyTorch trainieren. Sie können dasselbe Muster auf andere TPU-optimierte Bildklassifikationsmodelle anwenden, die PyTorch und das ImageNet-Dataset verwenden.

Das Modell in dieser Anleitung basiert auf dem Framework Deep Residual Learning for Image Recognition, in dem erstmalig die Residualnetzwerkarchitektur (ResNet-Architektur) eingeführt wurde. In der Anleitung wird die 50-Layer-Variante ResNet-50 verwendet und das Training des Modells mit PyTorch/XLA veranschaulicht.

Ziele

  • Bereiten Sie das Dataset vor.
  • Trainingsjob ausführen
  • Ausgabeergebnisse überprüfen

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

  • Compute Engine
  • Cloud TPU

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.

Neuen Nutzern von Google Cloud steht möglicherweise eine kostenlose Testversion zur Verfügung.

Hinweis

Bevor Sie mit dieser Anleitung beginnen, prüfen Sie, ob Ihr Google Cloud Projekt richtig eingerichtet ist.

  1. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. In dieser Schritt-für-Schritt-Anleitung werden kostenpflichtige Komponenten von Google Cloudverwendet. Anhand der Seite mit den Cloud TPU-Preisen können Sie Ihre Kosten abschätzen. Denken Sie daran, nicht mehr benötigte Ressourcen zu bereinigen, um unnötige Kosten zu vermeiden.

TPU-VM erstellen

  1. Öffnen Sie eine Cloud Shell oder ein Terminalfenster.

    Cloud Shell öffnen

  2. Definieren Sie Umgebungsvariablen für Google Cloud CLI-Befehlsparameter:

    export PROJECT_ID=your-project-id
    export TPU_NAME=your-tpu-name
    export ZONE=us-central1-b
    export ACCELERATOR_TYPE=v6e-8
    export RUNTIME_VERSION=v2-alpha-tpuv6e

    Beschreibungen von Umgebungsvariablen

    • PROJECT_ID: Ihre Google Cloud Projekt-ID. Verwenden Sie ein vorhandenes Projekt oder erstellen Sie ein neues Projekt.
    • TPU_NAME: Der Name der TPU.
    • ZONE: Die Zone, in der die TPU-VM erstellt werden soll. Weitere Informationen zu unterstützten Zonen finden Sie unter TPU-Regionen und ‑Zonen.
    • ACCELERATOR_TYPE: Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu den unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
    • RUNTIME_VERSION: Die Cloud TPU-Softwareversion.

  3. TPU-VM erstellen

     gcloud compute tpus tpu-vm create $TPU_NAME \
     --accelerator-type=$ACCELERATOR_TYPE \
     --version=$RUNTIME_VERSION \
     --zone=$ZONE \
     --project=$PROJECT_ID
    
  4. Stellen Sie eine SSH-Verbindung zu Ihrer TPU-VM her.

     gcloud compute tpus tpu-vm ssh  $TPU_NAME --zone=$ZONE
    

PyTorch/XLA auf der TPU-VM installieren

  1. Erstellen Sie eine Datei mit dem Namen requirements.txt und fügen Sie ihr Folgendes hinzu:

    --find-links https://storage.googleapis.com/libtpu-releases/index.html
    --find-links https://storage.googleapis.com/libtpu-wheels/index.html
    torch~=2.6.0
    torch_xla[tpu]~=2.6.0
    torchvision
    ray[default]==2.40.0
    
  2. Installieren Sie die Abhängigkeiten:

    pip install -r requirements.txt
    
  3. Klonen Sie das PyTorch/XLA-GitHub-Repository.

    git clone --depth=1 https://github.com/pytorch/xla.git
    
  4. Führen Sie das Trainings-Script mit fiktiven Daten aus.

    PJRT_DEVICE=TPU python3 xla/test/test_train_mp_imagenet.py \
    --fake_data \
    --batch_size=256 \
    --num_epochs=1
    

Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, können Sie entweder das Projekt löschen, das die Ressourcen enthält, oder das Projekt beibehalten und die einzelnen Ressourcen löschen.

  1. Trennen Sie die Verbindung zur TPU-VM:

    exit
    
  2. Löschen Sie Ihre TPU-VM.

    gcloud compute tpus tpu-vm delete $TPU_NAME \
        --zone=$ZONE
    

Nächste Schritte