ResNet auf Cloud TPU trainieren (TF 2.x)


In dieser Anleitung wird gezeigt, wie Sie das Keras ResNet-Modell mit tf.distribute.TPUStrategy auf einem Cloud TPU-Gerät trainieren.

Wenn Sie mit Cloud TPU nicht vertraut sind, sollten Sie unbedingt die quickstart für Ihr Framework durchgehen, um zu erfahren, wie eine TPU und eine Compute Engine-VM erstellt werden.

Lernziele

  • Cloud Storage-Bucket zum Speichern der Dataset- und Modellausgabe erstellen
  • Bereiten Sie ein Imitaten-Dataset vor, das dem ImageNet-Dataset ähnlich ist.
  • Trainingsjob ausführen
  • Ausgabeergebnisse überprüfen

Kosten

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

  • Compute Engine
  • Cloud TPU
  • Cloud Storage

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Hinweise

Bevor Sie mit dieser Anleitung beginnen, prüfen Sie, ob Ihr Google Cloud-Projekt ordnungsgemäß eingerichtet ist.

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch 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. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  5. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  6. In dieser Anleitung werden kostenpflichtige Komponenten der Google Cloud verwendet. Rufen Sie die Seite mit den Cloud TPU-Preisen auf, um Ihre Kosten abzuschätzen. Denken Sie daran, nicht mehr benötigte Ressourcen zu bereinigen, um unnötige Kosten zu vermeiden.

Cloud TPU-Training mit Einzelgerät

Dieser Abschnitt enthält Informationen zum Einrichten von Cloud Storage-, VM- und Cloud TPU-Ressourcen für das Training mit einem Einzelgerät.

  1. Öffnen Sie ein Cloud Shell-Fenster.

    Cloud Shell öffnen

  2. Erstellen Sie eine Variable für Ihre Projekt-ID.

    $ export PROJECT_ID=project-id
    
  3. Konfigurieren Sie die Google Cloud CLI so, dass das Projekt verwendet wird, in dem Sie die Cloud TPU erstellen möchten.

    $ gcloud config set project ${PROJECT_ID}
    

    Wenn Sie diesen Befehl zum ersten Mal in einer neuen Cloud Shell-VM ausführen, wird die Seite Authorize Cloud Shell angezeigt. Klicken Sie unten auf der Seite auf Authorize, damit gcloud API-Aufrufe mit Ihren Anmeldedaten ausführen kann.

  4. Erstellen Sie ein Dienstkonto für das Cloud TPU-Projekt.

    Dienstkonten ermöglichen dem Cloud TPU-Dienst den Zugriff auf andere Google Cloud-Dienste.

    $ gcloud beta services identity create --service tpu.googleapis.com --project $PROJECT_ID
    

    Der Befehl gibt ein Cloud TPU-Dienstkonto im folgenden Format zurück:

    service-PROJECT_NUMBER@cloud-tpu.iam.gserviceaccount.com
    

  5. Erstellen Sie mit dem folgenden Befehl einen Cloud Storage-Bucket:

    $ gsutil mb -p ${PROJECT_ID} -c standard -l europe-west4 gs://bucket-name
    

    Dieser Cloud Storage-Bucket speichert die Daten, die Sie zum Trainieren Ihres Modells verwenden, und die Trainingsergebnisse. Mit dem gcloud-Befehl, der in dieser Anleitung zum Einrichten der TPU verwendet wird, werden auch Standardberechtigungen für das Cloud TPU-Dienstkonto eingerichtet, das Sie im vorherigen Schritt eingerichtet haben. Wenn Sie detailliertere Berechtigungen benötigen, können Sie die Berechtigungen auf Zugriffsebene anpassen.

  6. Dataset vorbereiten oder fake_imagenet verwenden

    ImageNet ist eine Bilddatenbank. Die Bilder in der Datenbank sind hierarchisch angeordnet, wobei jeder Knoten der Hierarchie durch Hunderte und Tausende von Bildern dargestellt wird.

    In dieser Anleitung wird eine Demoversion des vollständigen ImageNet-Datasets verwendet, die als fake_imagenet bezeichnet wird. Wenn Sie die Anleitung mit dieser Demoversionen durcharbeiten, können Sie den Speicher- und Zeitaufwand reduzieren, der normalerweise mit dem Ausführen eines Modells für die gesamte ImageNet-Datenbank verbunden ist.

    Das Dataset "fake_imagenet" befindet sich an diesem Speicherort in Cloud Storage:

    gs://cloud-tpu-test-datasets/fake_imagenet

    Das Dataset "fake_imagenet" dient nur zum Verständnis, wie eine Cloud TPU verwendet wird und wie die End-to-End-Leistung validiert wird. Die Genauigkeitszahlen und das gespeicherte Modell sind nicht aussagekräftig.

    Wenn Sie das vollständige ImageNet-Dataset verwenden möchten, lesen Sie die Informationen unter ImageNet-Dataset herunterladen, vorverarbeiten und hochladen.

  7. Starten Sie TPU-Ressourcen mit dem Befehl gcloud. Der verwendete Befehl hängt davon ab, ob Sie TPU-VMs oder TPU-Knoten verwenden. Weitere Informationen zu beiden VM-Architekturen finden Sie unter Systemarchitektur.

    TPU-VM

    $ gcloud compute tpus tpu-vm create resnet-tutorial \
    --zone=us-central2-b \
    --accelerator-type=v4-8 \
    --version=tpu-vm-tf-2.16.1-pjrt
    

    Beschreibung der Befehls-Flags

    zone
    Die Zone, in der Sie Ihre Cloud TPU erstellen möchten.
    accelerator-type
    Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
    version
    Die Cloud TPU-Softwareversion.

    TPU-Knoten

    gcloud compute tpus execution-groups create \
    --project=${PROJECT_ID} \
    --zoneus-central2-b \
    --name=resnet-tutorial \
    --disk-size=300 \
    --machine-type=n1-standard-16 \
    --accelerator-type=v3-8 \
    --tf-version=2.12.0

    Beschreibung der Befehls-Flags

    project
    Ihre Google Cloud-Projekt-ID
    zone
    Die Zone, in der Sie Ihre Cloud TPU erstellen möchten.
    name
    Der Name der zu erstellenden Cloud TPU.
    disk-size
    Die Größe der Festplatte in GB der mit dem Befehl gcloud erstellten VM.
    machine-type
    Der Maschinentyp der Compute Engine-VM, die erstellt werden soll.
    accelerator-type
    Der Typ der zu erstellenden Cloud TPU.
    tf-version
    Die TensorFlow-Version gcloud wird auf der VM installiert.

    Weitere Informationen zum gcloud-Befehl finden Sie in der gcloud-Referenz.

  8. Wenn Sie nicht automatisch bei der Compute Engine-Instanz angemeldet werden, melden Sie sich mit dem folgenden ssh-Befehl an. Wenn Sie bei der VM angemeldet sind, ändert sich die Shell-Eingabeaufforderung von username@projectname in username@vm-name:

    TPU-VM

    $ gcloud compute tpus tpu-vm ssh resnet-tutorial --zone=us-central2-b
    

    TPU-Knoten

    $ gcloud compute ssh resnet-tutorial --zone=us-central2-b
    

    Führen Sie im weiteren Verlauf dieser Anleitung jeden Befehl, der mit (vm)$ beginnt, in Ihrem VM-Sitzungsfenster aus.

  9. Legen Sie die Cloud TPU-Namensvariable fest.

    TPU-VM

    (vm)$ export TPU_NAME=local
    

    TPU-Knoten

    (vm)$ export TPU_NAME=resnet-tutorial
    
  10. Cloud Storage-Bucket-Variablen festlegen

    Richten Sie die folgenden Umgebungsvariablen ein und ersetzen Sie bucket-name durch den Namen Ihres Cloud Storage-Buckets:

    (vm)$ export STORAGE_BUCKET=gs://bucket-name
    
    (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/resnet-2x
    (vm)$ export DATA_DIR=gs://cloud-tpu-test-datasets/fake_imagenet
    
    

    Die Trainingsanwendung erwartet, dass Ihre Trainingsdaten in Cloud Storage verfügbar sind. Die Trainingsanwendung verwendet auch Ihren Cloud Storage-Bucket, um während des Trainings Prüfpunkte zu speichern.

  11. Wenn Sie beim Erstellen Ihrer TPU den Parameter --version auf eine Version festlegen, die auf -pjrt endet, legen Sie die folgenden Umgebungsvariablen fest, um die PJRT-Laufzeit zu aktivieren:

      (vm)$ export NEXT_PLUGGABLE_DEVICE_USE_C_API=true
      (vm)$ export TF_PLUGGABLE_DEVICE_LIBRARY_PATH=/lib/libtpu.so
    
  12. Installieren Sie TensorFlow-Anforderungen.

    Der verwendete Befehl hängt davon ab, ob Sie TPU-VMs oder TPU-Knoten verwenden.

    TPU-VM

    (vm)$ pip3 install -r /usr/share/tpu/models/official/requirements.txt 

    TPU-Knoten

    (vm)$ pip3 install --user -r /usr/share/models/official/requirements.txt
    
  13. Für das ResNet-Trainingsskript ist ein zusätzliches Paket erforderlich. Installieren Sie es jetzt.

    (vm)$ pip3 install --user tensorflow-model-optimization>=0.1.3
    
  14. Wechseln Sie zum Verzeichnis, in dem sich das Modell befindet:

    TPU-VM

    (vm)$ cd /usr/share/tpu/tensorflow/resnet50_keras
    

    TPU-Knoten

    (vm)$ cd /usr/share/models
    
  15. Legen Sie die Umgebungsvariable PYTHONPATH fest:

    TPU-VM

    (vm)$ /usr/share/tpu/tensorflow/resnet50_keras"
    

    TPU-Knoten

    (vm)$ export PYTHONPATH="${PYTHONPATH}:/usr/share/models"
    
  16. Führen Sie das Trainingsskript aus. Dabei wird ein fake_imagenet-Dataset verwendet und ResNet für 100 Schritte trainiert.

    TPU-VM

    (vm)$ resnet50.py --tpu=local --data=gs://cloud-tpu-test-datasets/fake_imagenet

    Command flag descriptions

    tpu
    The name of your TPU.
    data
    Specifies the directory where checkpoints and summaries are stored during model training. If the folder is missing, the program creates one. When using a Cloud TPU, the model_dir must be a Cloud Storage path (gs://...). You can reuse an existing folder to load current checkpoint data and to store additional checkpoints as long as the previous checkpoints were created using TPU of the same size and TensorFlow version.

    TPU-Knoten

    (vm)$ python3 official/vision/train.py \
    --tpu=${TPU_NAME} \
    --experiment=resnet_imagenet \
    --mode=train_and_eval \
    --config_file=official/vision/configs/experiments/image_classification/imagenet_resnet50_tpu.yaml \
    --model_dir=${MODEL_DIR} \
    --params_override="task.train_data.input_path=${DATA_DIR}/train*, task.validation_data.input_path=${DATA_DIR}/validation*,task.train_data.global_batch_size=2048,task.validation_data.global_batch_size=2048,trainer.train_steps=100"
    

    Beschreibung der Befehls-Flags

    tpu
    Der Name Ihrer TPU.
    model_dir
    Gibt das Verzeichnis an, in dem während des Modelltrainings Prüfpunkte und Zusammenfassungen gespeichert werden. Wenn der Ordner fehlt, erstellt das Programm einen. Wenn eine Cloud TPU verwendet wird, muss model_dir ein Cloud Storage-Pfad sein (gs://...). Sie können einen vorhandenen Ordner wiederverwenden, um aktuelle Prüfpunktdaten zu laden und zusätzliche Prüfpunkte zu speichern, sofern die vorherigen Prüfpunkte mit TPU derselben Größe und TensorFlow-Version erstellt wurden.

Damit wird ResNet für 100 Schritte trainiert und auf einem v3-8-TPU-Knoten in etwa 3 Minuten abgeschlossen. Am Ende der 100 Schritte wird in etwa folgende Ausgabe angezeigt:

I0624 17:04:26.974905 140457742666816 controller.py:290]  eval | step:    100 | eval time:   23.3 sec | output:
    {'accuracy': 0.0010141226,
     'top_5_accuracy': 0.0051457332,
     'validation_loss': 8.448798}
 eval | step:    100 | eval time:   23.3 sec | output:
    {'accuracy': 0.0010141226,
     'top_5_accuracy': 0.0051457332,
     'validation_loss': 8.448798}

Sie haben das Trainingsbeispiel für ein einzelnes Gerät abgeschlossen. Führen Sie die folgenden Schritte aus, um die aktuellen Ressourcen des TPU-Einzelgeräts zu löschen.

  1. Trennen Sie die Verbindung zur Compute Engine-Instanz:

    (vm)$ exit
    

    Die Eingabeaufforderung sollte nun username@projectname lauten und angeben, dass Sie sich in Cloud Shell befinden.

  2. Löschen Sie die TPU-Ressource.

    TPU-VM

    $ gcloud compute tpus tpu-vm delete resnet-tutorial \
    --zone=us-central2-b
    

    Beschreibung der Befehls-Flags

    zone
    Die Zone, in der sich Ihre Cloud TPU befindet.

    TPU-Knoten

    $ gcloud compute tpus execution-groups delete resnet-tutorial \
    --zone=us-central2-b
    

    Beschreibung der Befehls-Flags

    zone
    Die Zone, in der die zu löschende TPU enthalten ist.

An dieser Stelle können Sie entweder diese Anleitung beenden und eine Bereinigung durchführen oder die Ausführung des Modells auf Cloud TPU Pods fortsetzen.

Modell mit Cloud TPU Pods skalieren

oder TPU-Knoten.

Wenn Sie das Modell auf Cloud TPU-Pods trainieren, sind möglicherweise einige Änderungen am Trainingsskript erforderlich. Weitere Informationen finden Sie unter Training auf TPU-Pods.

TPU-Pod-Training

Dieser Abschnitt enthält Informationen zum Einrichten eines Cloud Storage-Buckets und von Cloud TPU-Ressourcen für das Pod-Training.

  1. Öffnen Sie ein Cloud Shell-Fenster.

    Cloud Shell öffnen

  2. Erstellen Sie eine Variable für Ihre Projekt-ID.

    export PROJECT_ID=project-id
    
  3. Konfigurieren Sie die Google Cloud CLI so, dass das Projekt verwendet wird, in dem Sie eine Cloud TPU erstellen möchten.

    gcloud config set project ${PROJECT_ID}
    

    Wenn Sie diesen Befehl zum ersten Mal in einer neuen Cloud Shell-VM ausführen, wird die Seite Authorize Cloud Shell angezeigt. Klicken Sie unten auf der Seite auf Authorize, um gcloud das Ausführen von Google Cloud API-Aufrufen mit Ihren Anmeldedaten zu erlauben.

  4. Erstellen Sie ein Dienstkonto für das Cloud TPU-Projekt.

    gcloud beta services identity create --service tpu.googleapis.com --project $PROJECT_ID
    

    Der Befehl gibt ein Cloud TPU-Dienstkonto im folgenden Format zurück:

    service-PROJECT_NUMBER@cloud-tpu.iam.gserviceaccount.com
    

  5. Erstellen Sie mit dem folgenden Befehl einen Cloud Storage-Bucket oder verwenden Sie einen Bucket, den Sie zuvor für Ihr Projekt erstellt haben:

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

    Dieser Cloud Storage-Bucket speichert die Daten, die Sie zum Trainieren Ihres Modells verwenden, und die Trainingsergebnisse. Mit dem in dieser Anleitung verwendeten gcloud-Befehl werden Standardberechtigungen für das Cloud TPU-Dienstkonto eingerichtet, das Sie im vorherigen Schritt eingerichtet haben. Wenn Sie genauere Berechtigungen benötigen, können Sie die Berechtigungen auf Zugriffsebene anpassen.

    Der Bucket-Standort muss sich in derselben Region wie die TPU-Ressourcen befinden.

  6. Dataset vorbereiten oder fake_imagenet verwenden

    ImageNet ist eine Bilddatenbank. Die Bilder in der Datenbank sind hierarchisch angeordnet, wobei jeder Knoten der Hierarchie durch Hunderte und Tausende von Bildern dargestellt wird.

    Das standardmäßige Pod-Training greift auf eine Demoversion des vollständigen ImageNet-Datasets zu, die als fake_imagenet bezeichnet wird. Mit dieser Demoversion können Sie das Pod-Training testen und gleichzeitig den Speicher- und Zeitaufwand reduzieren, der normalerweise mit dem Trainieren eines Modells für die gesamte ImageNet-Datenbank verbunden ist.

    Das Dataset "fake_imagenet" dient nur zum Verständnis, wie eine Cloud TPU verwendet wird und wie die End-to-End-Leistung validiert wird. Die Genauigkeitszahlen und das gespeicherte Modell sind nicht aussagekräftig.

    Wenn Sie das vollständige ImageNet-Dataset verwenden möchten, lesen Sie die Informationen unter ImageNet-Dataset herunterladen, vorverarbeiten und hochladen.

  7. Starten Sie Ihre Cloud TPU-Ressourcen mit dem gcloud-Befehl.

    Der verwendete Befehl hängt davon ab, ob Sie eine TPU-VM oder einen TPU-Knoten verwenden. Weitere Informationen zu beiden VM-Architekturen finden Sie unter Systemarchitektur. Weitere Informationen zum Befehl gcloud finden Sie in der gcloud-Referenz. In dieser Anleitung wird ein v3-32-Pod angegeben. Weitere Pod-Optionen finden Sie unter TPU-Versionen.

    TPU-VM

    $ gcloud compute tpus tpu-vm create resnet-tutorial \
    --zone=us-central2-b \
    --accelerator-type=v4-32 \
    --version=tpu-vm-tf-2.16.1-pod-pjrt
    

    Beschreibung der Befehls-Flags

    zone
    Die Zone, in der Sie Ihre Cloud TPU erstellen möchten.
    accelerator-type
    Der Beschleunigertyp gibt die Version und Größe der Cloud TPU an, die Sie erstellen möchten. Weitere Informationen zu unterstützten Beschleunigertypen für die einzelnen TPU-Versionen finden Sie unter TPU-Versionen.
    version
    Die Cloud TPU-Softwareversion.

    TPU-Knoten

    $ gcloud compute tpus execution-groups create \
    --zone=us-central2-b \
    --name=resnet-tutorial \
    --accelerator-type=v3-32 \
    --tf-version=2.12.0
    

    Beschreibung der Befehls-Flags

    zone
    Die Zone, in der Sie Ihre Cloud TPU erstellen möchten.
    name
    Der Name der zu erstellenden Cloud TPU.
    accelerator-type
    Der Typ der zu erstellenden Cloud TPU.
    tf-version
    Die TensorFlow-Version gcloud wird auf der VM installiert.
  8. Wenn Sie nicht automatisch bei der Compute Engine-Instanz angemeldet werden, melden Sie sich mit dem folgenden ssh-Befehl an. Wenn Sie bei der VM angemeldet sind, ändert sich die Shell-Eingabeaufforderung von username@projectname in username@vm-instance-name:

    TPU-VM

    $ gcloud compute tpus tpu-vm ssh resnet-tutorial --zone=us-central2-b
    

    TPU-Knoten

    $ gcloud compute ssh resnet-tutorial --zone=us-central2-b
    

    Führen Sie im weiteren Verlauf dieser Anleitung jeden Befehl, der mit (vm)$ beginnt, in Ihrem VM-Sitzungsfenster aus.

  9. Exportieren Sie Cloud TPU-Einrichtungsvariablen:

    (vm)$ export ZONE=us-central2-b
    (vm)$ export STORAGE_BUCKET=gs://bucket-name
    
    (vm)$ export TPU_NAME=resnet-tutorial
    (vm)$ export DATA_DIR=gs://cloud-tpu-test-datasets/fake_imagenet
    (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/resnet-2x-pod
    

    Die Trainingsanwendung erwartet, dass Ihre Trainingsdaten in Cloud Storage verfügbar sind. Die Trainingsanwendung verwendet auch Ihren Cloud Storage-Bucket, um während des Trainings Prüfpunkte zu speichern.

  10. Für das ResNet-Trainingsskript ist ein zusätzliches Paket erforderlich. Installieren Sie es jetzt:

    TPU-VM

    (vm)$ pip3 install --user tensorflow-model-optimization>=0.1.3 

    TPU-Knoten

    (vm)$ pip3 install --user tensorflow-model-optimization>=0.1.3 
  11. Installieren Sie TensorFlow-Anforderungen.

    Der verwendete Befehl hängt davon ab, ob Sie TPU-VMs oder TPU-Knoten verwenden.

    TPU-VM

    (vm)$ pip3 install -r /usr/share/tpu/models/official/requirements.txt
    

    TPU-Knoten

    (vm)$ pip3 install --user -r /usr/share/models/official/requirements.txt
    
  12. Legen Sie die Umgebungsvariable PYTHONPATH fest:

    TPU-VM

    (vm)$ export PYTHONPATH="PYTHONPATH=/usr/share/tpu/tensorflow/resnet50_keras"
    (vm)$ export TPU_LOAD_LIBRARY=0
    

    TPU-Knoten

    (vm)$ export PYTHONPATH="${PYTHONPATH}:/usr/share/models"
    
  13. Wechseln Sie zum Verzeichnis, in dem sich das Modell befindet:

    TPU-VM

    (vm)$ cd /usr/share/tpu/tensorflow/resnet50_keras
    

    TPU-Knoten

    (vm)$ cd /usr/share/models
    
  14. Modell trainieren

    (vm)$ resnet50.py --tpu=${TPU_NAME} --data=gs://cloud-tpu-test-datasets/fake_imagenet
     

    Beschreibung der Befehls-Flags

    tpu
    Der Name Ihrer TPU.
    data
    Gibt das Verzeichnis an, in dem während des Modelltrainings Prüfpunkte und Zusammenfassungen gespeichert werden. Wenn der Ordner fehlt, erstellt das Programm einen. Wenn Sie eine Cloud TPU verwenden, muss model_dir ein Cloud Storage-Pfad (gs://...) sein. Sie können einen vorhandenen Ordner wiederverwenden, um aktuelle Prüfpunktdaten zu laden und zusätzliche Prüfpunkte zu speichern, solange die vorherigen Prüfpunkte mit Cloud TPU derselben Größe und TensorFlow-Version erstellt wurden.

Bei diesem Verfahren wird das Modell für das Dataset fake_imagenet mit 100 Trainingsschritten und 13 Bewertungsschritten trainiert. Dieses Training dauert bei einer v3-32 Cloud TPU etwa 2 Minuten. Nach Abschluss des Trainings und der Bewertung werden Meldungen wie diese angezeigt:

{'accuracy': 0.0009716797,
     'learning_rate': 0.10256411,
     'top_5_accuracy': 0.0049560545,
     'training_loss': 8.5587225}
train | step:    100 | steps/sec:    1.2 | output:
    {'accuracy': 0.0009716797,
     'learning_rate': 0.10256411,
     'top_5_accuracy': 0.0049560545,
     'training_loss': 8.5587225}

eval | step:    100 | eval time:   24.8 sec | output:
    {'accuracy': 0.0010141226,
     'top_5_accuracy': 0.004356971,
     'validation_loss': 8.50038}
 eval | step:    100 | eval time:   24.8 sec | output:
    {'accuracy': 0.0010141226,
     'top_5_accuracy': 0.004356971,
     'validation_loss': 8.50038}

Bereinigen

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

  1. Trennen Sie die Verbindung zur Compute Engine-Instanz, sofern noch nicht geschehen:

    (vm)$ exit
    

    Die Eingabeaufforderung sollte nun username@projectname lauten und angeben, dass Sie sich in Cloud Shell befinden.

  2. Löschen Sie Ihre Cloud TPU- und Compute Engine-Ressourcen. Der Befehl zum Löschen Ihrer Ressourcen hängt davon ab, ob Sie TPU-VMs oder TPU-Knoten verwenden. Weitere Informationen finden Sie unter Systemarchitektur.

    TPU-VM

    $ gcloud compute tpus tpu-vm delete resnet-tutorial \
    --zone=us-central2-b
    

    TPU-Knoten

    $ gcloud compute tpus execution-groups delete resnet-tutorial \
    --zone=us-central2-b
    
  3. Prüfen Sie, ob die Ressourcen gelöscht wurden. Führen Sie dazu gcloud compute tpus execution-groups list aus. Der Löschvorgang kann einige Minuten dauern. Die Ausgabe des folgenden Befehls sollte keine der in dieser Anleitung erstellten TPU-Ressourcen enthalten:

    TPU-VM

    $ gcloud compute tpus tpu-vm list --zone=us-central2-b

    TPU-Knoten

    $ gcloud compute tpus execution-groups list --zone=us-central2-b
  4. Führen Sie gsutil wie angegeben aus und ersetzen Sie bucket-name durch den Namen des Cloud Storage-Buckets, den Sie für diese Anleitung erstellt haben:

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

Nächste Schritte

In den Cloud TPU-Anleitungen von TensorFlow wird das Modell in der Regel mithilfe eines Beispiel-Datasets trainiert. Die Ergebnisse dieses Trainings sind nicht für Inferenzen verwendbar. Wenn Sie ein Modell für die Inferenz verwenden möchten, können Sie die Daten mit einem öffentlich verfügbaren Dataset oder Ihrem eigenen Dataset trainieren. Für TensorFlow-Modelle, die auf Cloud TPUs trainiert wurden, müssen im Allgemeinen Datasets im TFRecord-Format erforderlich sein.

Mit dem Beispiel für das Dataset-Konvertierungstool können Sie ein Bildklassifizierungs-Dataset in das TFRecord-Format konvertieren. Wenn Sie kein Bildklassifizierungsmodell verwenden, müssen Sie das Dataset selbst in das TFRecord-Format konvertieren. Weitere Informationen finden Sie unter TFRecord und tf.Example.

Hyperparameter-Feinabstimmung

Sie können die Hyperparameter des Modells abstimmen, um die Leistung des Modells mit Ihrem Dataset zu verbessern. Informationen zu den Hyperparametern, die alle von der TPU unterstützten Modelle gemeinsam sind, finden Sie auf GitHub. Informationen zu modellspezifischen Hyperparametern finden Sie im Quellcode des jeweiligen Modells. Weitere Informationen zur Abstimmung von Hyperparametern finden Sie unter Übersicht über die Abstimmung von Hyperparametern und Hyperparameter abstimmen.

Inferenz

Nachdem Sie Ihr Modell trainiert haben, können Sie es für Inferenzen (auch Vorhersage genannt) verwenden. Mit dem Cloud TPU-Inferenzkonverter-Tool können Sie ein TensorFlow-Modell für die Inferenz in Cloud TPU v5e vorbereiten und optimieren. Weitere Informationen zur Inferenz in Cloud TPU v5e finden Sie unter Einführung in Cloud TPU v5e-Inferenz.

  • In der Anleitung zur Dataset-Konvertierung erfahren Sie, wie Sie mit Ihren eigenen Daten anstelle der Datasets "fake_imagenet" oder "ImageNet" trainieren und auswerten. In dieser Anleitung wird erläutert, wie Sie mit dem Skript-Beispiel für die Konvertierung von Bildklassifizierungsdaten ein Rohdataset für die Bildklassifizierung in das von Cloud TPU Tensorflow-Modellen verwendete TFRecord-Format konvertieren.
  • Führen Sie eine Cloud TPU colab aus, die zeigt, wie Sie ein Bildklassifizierungsmodell mit Ihren eigenen Bilddaten ausführen.
  • Andere Cloud TPU-Anleitungen ansehen.
  • TPU-Monitoring-Tools in TensorBoard verwenden
  • ResNet mit Cloud TPU und GKE trainieren