EfficientNet auf Cloud TPU trainieren

Die EfficientNet-Modelle sind eine Familie von Bildklassifizierungsmodellen, die eine hervorragende Genauigkeit erzielen und gleichzeitig kleiner und schneller als andere Modelle sind. EfficientNet-EdgeTpu sind Modelle, die für die effiziente Ausführung auf den Google EdgeTPU-Geräten optimiert sind.

Das Modell in dieser Anleitung basiert auf EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks. Forscher entwickelten eine neue Technik zur Verbesserung der Modellleistung: Mit einem einfachen, aber hochwirksamen Verbindungskoeffizienten werden die Netzwerktiefe, -breite und -auflösung sorgfältig auf einander abgestimmt.

Die Familie der Modelle von efficientnet-b0 bis efficientnet-b7 kann bei ressourcenbeschränkten Google EdgeTPU-Geräteneine angemessene Genauigkeit der Bildklassifizierung erzielen.

Das in dieser Anleitung verwendete Modell efficientnet-b0 entspricht dem kleinsten Basismodell, während efficientnet-b7 dem leistungsstärksten, aber rechenintensivsten Modell entspricht. In der Anleitung wird gezeigt, wie das Modell mit TPUEstimator trainiert wird.

Ziele

  • Cloud Storage-Bucket zum Speichern der Dataset- und Modellausgabe erstellen
  • Bereiten Sie eine Testversion des ImageNet-Datasets vor, die als Dataset fake_imagenet bezeichnet wird.
  • Trainingsjob ausführen
  • Ausgabeergebnisse überprüfen

Kosten

In dieser Anleitung werden die folgenden kostenpflichtigen Komponenten von Google Cloud verwendet:

  • 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.

Hinweis

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 Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  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 Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  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.

Ressourcen einrichten

Dieser Abschnitt enthält Informationen zum Einrichten von Cloud Storage-, VM- und Cloud TPU-Ressourcen für Anleitungen.

  1. Öffnen Sie ein Cloud Shell-Fenster.

    Zu Cloud Shell

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

    export PROJECT_ID=project-id
    
  3. Konfigurieren Sie das gcloud-Befehlszeilentool für das Projekt, 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 auf Authorize unten auf der Seite, damit gcloud GCP API-Aufrufe mit Ihren Anmeldedaten durchführen kann.

  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:

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

    Dieser Cloud Storage-Bucket speichert die Daten, die Sie zum Trainieren Ihres Modells verwenden, sowie die Trainingsergebnisse. Mit dem Befehl gcloud compute tpus execution-groups in dieser Anleitung werden Standardberechtigungen für das Cloud TPU-Dienstkonto eingerichtet. Wenn Sie weitere Berechtigungen benötigen, können Sie die Berechtigungen auf Zugriffsebene anpassen.

    Der Bucket-Speicherort muss sich in derselben Region wie die virtuelle Maschine (VM) und der TPU-Knoten befinden. VMs und TPU-Knoten befinden sich in bestimmten Zonen, die Untergruppen innerhalb einer Region sind.

  6. Starten Sie die für diese Anleitung erforderlichen Compute Engine- und Cloud TPU-Ressourcen mit dem Befehl gcloud compute tpus execution-groups.

    gcloud compute tpus execution-groups create \
     --vm-only \
     --name=efficientnet-tutorial \
     --zone=europe-west4-a \
     --disk-size=300 \
     --machine-type=n1-standard-8 \
     --tf-version=1.15.5
    

    Beschreibung der Befehls-Flags

    vm-only
    Erstellen Sie nur die Compute Engine-VM, aber keine Cloud TPU.
    name
    Der Name der zu erstellenden Cloud TPU.
    zone
    Die Zone, in der Sie die Cloud TPU erstellen möchten.
    disk-size
    Die Größe des Laufwerks in GB der VM, die mit dem Befehl gcloud erstellt wurde.
    machine-type
    Der Maschinentyp der zu erstellenden Compute Engine-VM.
    tf-version
    Die Version von Tensorflow, die von gcloud auf der VM installiert wird.

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

  7. Wenn Sie dazu aufgefordert werden, drücken Sie auf y, um Ihre Cloud TPU-Ressourcen zu erstellen.

    Wenn der Befehl gcloud compute tpus execution-groups ausgeführt wurde, prüfen Sie, ob die Shell-Eingabeaufforderung von username@projectname in username@vm-name geändert wurde. Diese Änderung bedeutet, dass Sie jetzt bei Ihrer Compute Engine-VM angemeldet sind.

    gcloud compute ssh efficientnet-tutorial --zone=europe-west4-a
    

    Ab jetzt bedeutet das Präfix (vm)$, dass Sie den Befehl in der Compute Engine-VM-Instanz ausführen sollten.

Daten vorbereiten

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

  1. Erstellen Sie eine Umgebungsvariable für Ihren Bucket-Namen. Ersetzen Sie bucket-name durch Ihren Bucket-Namen.

    (vm)$ export STORAGE_BUCKET=gs://bucket-name
    
  2. Erstellen Sie einige zusätzliche Umgebungsvariablen.

    (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/efficientnet
    (vm)$ export DATA_DIR=gs://cloud-tpu-test-datasets/fake_imagenet
    (vm)$ export TPU_NAME=efficientnet-tutorial
    (vm)$ export PYTHONPATH=$PYTHONPATH:/usr/share/tpu/models
    

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.

EfficientNet-Modell mit fake_imagenet trainieren und evaluieren

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.

Informationen zum Herunterladen und Verarbeiten des vollständigen ImageNet-Datasets finden Sie unter Das ImageNet-Dataset herunterladen, vorverarbeiten und hochladen.

  1. Starten Sie eine Cloud TPU-Ressource.

    (vm)$ gcloud compute tpus execution-groups create \
     --tpu-only \
     --name=efficientnet-tutorial \
     --zone=europe-west4-a \
     --disk-size=300 \
     --machine-type=n1-standard-8 \
     --tf-version=1.15.5
    

    Beschreibung der Befehls-Flags

    tpu-only
    Erstellt nur die Cloud TPU und keine Compute Engine.
    name
    Der Name der zu erstellenden Cloud TPU.
    zone
    Die Zone, in der Sie die Cloud TPU erstellen möchten.
    disk-size
    Die Größe des Laufwerks in GB der VM, die mit dem Befehl gcloud erstellt wurde.
    machine-type
    Der Maschinentyp der zu erstellenden Compute Engine-VM.
    tf-version
    Die Version von Tensorflow, die von gcloud auf der VM installiert wird.
  2. Navigieren Sie zum Modellverzeichnis:

    (vm)$ cd /usr/share/tpu/models/official/efficientnet/
    
  3. Führen Sie das Trainingsskript aus.

    (vm)$ python3 main.py \
      --tpu=${TPU_NAME} \
      --data_dir=${DATA_DIR} \
      --model_dir=${MODEL_DIR} \
      --model_name='efficientnet-b0' \
      --skip_host_call=true \
      --train_batch_size=2048 \
      --train_steps=1000
    

    Beschreibung der Befehls-Flags

    tpu
    Verwendet den in der Variable TPU_NAME angegebenen Namen.
    data_dir
    Gibt den Cloud Storage-Pfad für die Trainingseingabe an. In diesem Beispiel ist dafür das Dataset „fake_imagenet“ festgelegt.
    model_dir
    Der Cloud Storage-Pfad, in dem während des Modelltrainings Prüfpunkte und Zusammenfassungen gespeichert werden. Sie können einen vorhandenen Ordner wiederverwenden, um zuvor generierte Prüfpunkte zu laden und zusätzliche Prüfpunkte zu speichern, sofern die vorherigen Prüfpunkte mit einer Cloud TPU derselben Größe und TensorFlow-Version erstellt wurden.
    model_name
    Der Name des zu trainierenden Modells. Beispiel: efficientnet.
    skip_host_call
    Legen Sie true fest, damit das Skript den host_call überspringt, der bei jedem Trainingsschritt ausgeführt wird. Wird im Allgemeinen zum Erstellen von Trainingszusammenfassungen (Trainingsverlust, Lernrate usw.) verwendet. Bei skip_host_call=false kann es zu einem Leistungsabfall kommen, wenn die Funktion host_call langsam ist und nicht mit der TPU-seitigen Berechnung Schritt halten kann.
    train_batch_size
    Die Größe des Trainingsbatches.
    train_steps
    Die Anzahl der Schritte für das Training. Der Standardwert beträgt 218.949 Schritte. Das sind ungefähr 350 Epochen mit einer Batchgröße von 2.048. Dieses Flag sollte entsprechend dem Flag-Wert train_batch_size angepasst werden.

Dadurch wird das EfficientNet-Modell (Variante efficientnet-b0) nur für 1.000 Schritte trainiert, da es das fiktive ImageNet-Dataset verwendet. Wenn Sie das komplette ImageNet-Dataset verwenden, können Sie mit dem folgenden Befehl für die Konvergenz trainieren:

(vm)$ python3 main.py \
  --tpu=${TPU_NAME} \
  --data_dir=${DATA_DIR} \
  --model_dir=${MODEL_DIR} \
  --model_name='efficientnet-b0' \
  --skip_host_call=true \
  --train_batch_size=2048 \
  --train_steps=218948

Dadurch wird das EfficientNet-Modell für 350 Epochen trainiert und nach der Verarbeitung eines Datenbatches bewertet. Mit den angegebenen Flags sollte das Modell in etwa 23 Stunden trainiert werden. Diese Einstellungen sollten eine Top-1-Genauigkeit von ungefähr 76,5 % für das ImageNet-Validierungs-Dataset erreichen. Der beste Modellprüfpunkt und das entsprechende Bewertungsergebnis befinden sich im Ordner archive des Modellverzeichnisses: ${STORAGE_BUCKET}/efficientnet/archive.

Modell mit Cloud TPU Pods skalieren

Wenn Sie ein Modell mit Cloud TPU Pods skalieren, können Sie schneller Ergebnisse erzielen. Das vollständig unterstützte Modell kann mit den folgenden Pod-Slices verwendet werden:

  • v2-32
  • v3-32

Wenn Sie Cloud TPU Pods verwenden, trainieren Sie zuerst das Modell mit einem Pod und verwenden dann ein einzelnes Cloud TPU-Gerät, um das Modell zu bewerten.

Cloud TPU Pods trainieren

  1. Löschen Sie die Cloud TPU-Ressource, die Sie zum Trainieren des Modells auf einem einzelnen Gerät erstellt haben.

    (vm)$ gcloud compute tpus execution-groups delete efficientnet-tutorial \
      --zone=europe-west4-a \
      --tpu-only
    
  2. Führen Sie den Befehl gcloud compute tpus execution-groups mit dem Parameter accelerator-type aus, um den Pod-Slice anzugeben, den Sie verwenden möchten. Der folgende Befehl verwendet beispielsweise einen v3-32-Pod-Slice.

    (vm)$ gcloud compute tpus execution-groups  create --tpu-only \
      --name=efficientnet-tutorial \
      --zone=europe-west4-a \
      --accelerator-type=v2-32 \
      --tf-version=1.15.5
    

    Beschreibung der Befehls-Flags

    tpu-only
    Erstellen Sie nur eine Cloud TPU. Standardmäßig werden mit dem Befehl gcloud eine VM und eine Cloud TPU erstellt.
    name
    Der Name der zu erstellenden Cloud TPU.
    zone
    Die Zone, in der Sie die Cloud TPU erstellen möchten.
    accelerator-type
    Der Typ der zu erstellenden Cloud TPU.
    tf-version
    Die Version von Tensorflow, die von gcloud compute tpus execution-groups auf der VM installiert wird.
  3. Erstellen Sie eine Umgebungsvariable für Ihren TPU-Namen.

    (vm)$ export TPU_NAME=efficientnet-tutorial
    
  4. Aktualisieren Sie das Verzeichnis MODEL_DIR, um die Trainingsdaten zu speichern.

    (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/efficientnet-tutorial
    
  5. Modell trainieren

    (vm)$ python3 main.py \
      --tpu=${TPU_NAME} \
      --data_dir=${DATA_DIR} \
      --model_dir=${MODEL_DIR} \
      --model_name='efficientnet-b3' \
      --skip_host_call=true \
      --mode=train \
      --train_steps=1000 \
      --train_batch_size=4096 \
      --iterations_per_loop=100
    

    Beschreibung der Befehls-Flags

    tpu
    Der Name der Cloud TPU.
    data_dir
    Der Cloud Storage-Pfad für die Trainingseingabe. In diesem Beispiel ist er auf das Dataset "fake_imagenet" festgelegt.
    model_dir
    Der Cloud Storage-Pfad, in dem während des Modelltrainings Prüfpunkte und Zusammenfassungen gespeichert werden. Sie können einen vorhandenen Ordner wiederverwenden, um zuvor generierte Prüfpunkte zu laden und zusätzliche Prüfpunkte zu speichern, sofern die vorherigen Prüfpunkte mit einer Cloud TPU derselben Größe und TensorFlow-Version erstellt wurden.
    model_name
    Der Name des zu trainierenden Modells.
    skip_host_call
    Legen Sie true fest, damit das Skript den host_call überspringt, der bei jedem Trainingsschritt ausgeführt wird. Wird im Allgemeinen zum Erstellen von Trainingszusammenfassungen (Trainingsverlust, Lernrate usw.) verwendet. Bei skip_host_call=false kann es zu einem Leistungsabfall kommen, wenn die Funktion host_call langsam ist und nicht mit der TPU-seitigen Berechnung Schritt halten kann.
    mode
    Entweder train_and_eval, train oder eval. train_and_eval trainiert und bewertet das Modell. train trainiert das Modell. eval wertet das Modell aus.
    train_steps
    Gibt die Anzahl der Trainingsschritte an.
    train_batch_size
    Die Größe des Trainingsbatches.
    iterations_per_loop
    Die Anzahl der Trainingsschritte, die auf der TPU ausgeführt werden sollen, bevor Messwerte an die CPU gesendet werden.

Dieser Befehl trainiert das EfficientNet-Modell (Variante efficientnet-b0) nur für 1.000 Schritte, da das fiktive ImageNet-Dataset verwendet wird. Wenn Sie das komplette ImageNet-Dataset verwenden, können Sie mit dem folgenden Befehl für die Konvergenz trainieren:

(vm)$ python3 main.py \
  --tpu=${TPU_NAME} \
  --data_dir=${DATA_DIR} \
  --model_dir=${MODEL_DIR} \
  --model_name='efficientnet-b3' \
  --skip_host_call=true \
  --mode=train \
  --train_steps=109474 \
  --train_batch_size=4096 \
  --iterations_per_loop=100

Dieser Befehl trainiert das EfficientNet-Modell (Variante efficientnet-b3) über 350 Epochen. Das Modell sollte eine Genauigkeit von 81,1 % für das ImageNet-Entwicklungs-Dataset erreichen, das in etwa 20 Stunden fertig sein sollte. Der beste Modellprüfpunkt und das entsprechende Bewertungsergebnis befinden sich im Ordner archive des Modellverzeichnisses: ${STORAGE_BUCKET}/efficientnet/archive.

Modell bewerten

In dieser Reihe von Schritten verwenden Sie Cloud TPU, um das oben trainierte Modell anhand der fake_imagenet-Bewertungsdaten zu bewerten.

  1. Löschen Sie die Cloud TPU-Ressource, die Sie zum Trainieren des Modells auf einem Pod erstellt haben.

    (vm)$ gcloud compute tpus execution-groups delete efficientnet-tutorial \
      --tpu-only \
      --zone=europe-west4-a
      
  2. Starten Sie eine Cloud TPU v2-8, um die Bewertung auszuführen. Verwenden Sie denselben Namen wie für die Compute Engine-VM, die immer noch ausgeführt werden sollte.

    (vm)$ gcloud compute tpus execution-groups  create --tpu-only \
     --name=efficientnet-tutorial \
     --accelerator-type=v2-8 \
     --zone=europe-west4-a \
     --tf-version=1.15.5
    

    Beschreibung der Befehls-Flags

    tpu-only
    Erstellen Sie nur eine Cloud TPU. Standardmäßig werden mit dem Befehl gcloud eine VM und eine Cloud TPU erstellt.
    name
    Der Name der zu erstellenden Cloud TPU.
    accelerator-type
    Der Typ der zu erstellenden Cloud TPU.
    zone
    Die Zone, in der Sie die Cloud TPU erstellen möchten.
    tf-version
    Die Version von Tensorflow, die von gcloud auf der VM installiert wird.
  3. Erstellen Sie eine Umgebungsvariable für Ihren TPU-Namen.

    (vm)$ export TPU_NAME=efficientnet-tutorial
    
  4. Führen Sie die Modellbewertung aus. Fügen Sie dieses Mal das Flag mode hinzu und setzen Sie es auf eval.

    (vm)$ python3 main.py \
       --tpu=${TPU_NAME} \
       --data_dir=${DATA_DIR} \
       --model_dir=${MODEL_DIR} \
       --model_name='efficientnet-b3' \
       --skip_host_call=true \
       --mode=eval
    

    Beschreibung der Befehls-Flags

    tpu
    Verwendet den in der Variable TPU_NAME angegebenen Namen.
    data_dir
    Gibt den Cloud Storage-Pfad für die Trainingseingabe an. In diesem Beispiel ist er auf das Dataset "fake_imagenet" festgelegt.
    model_dir
    Der Cloud Storage-Pfad, in dem während des Modelltrainings Prüfpunkte und Zusammenfassungen gespeichert werden. Sie können einen vorhandenen Ordner wiederverwenden, um zuvor generierte Prüfpunkte zu laden und zusätzliche Prüfpunkte zu speichern, sofern die vorherigen Prüfpunkte mit einer Cloud TPU derselben Größe und TensorFlow-Version erstellt wurden.
    model_name
    Der Name des zu trainierenden Modells. Zum Beispiel efficientnet usw.
    skip_host_call
    Legen Sie true fest, damit das Skript den host_call überspringt, der bei jedem Trainingsschritt ausgeführt wird. Wird im Allgemeinen zum Erstellen von Trainingszusammenfassungen (Trainingsverlust, Lernrate usw.) verwendet. Bei skip_host_call=false kann es zu einem Leistungsabfall kommen, wenn die Funktion host_call langsam ist und nicht mit der TPU-seitigen Berechnung Schritt halten kann.
    mode
    Wenn train_and_eval festgelegt ist, wird dieses Modell trainiert und bewertet. Wenn dieses Skript auf export_only gesetzt ist, exportiert es ein gespeichertes Modell.

    Dadurch wird eine Ausgabe generiert, die etwa so aussieht:

    Eval results: {
    'loss': 7.532023,
    'top_1_accuracy': 0.0010172526,
    'global_step': 100,
    'top_5_accuracy': 0.005065918
    }
    Elapsed seconds: 88

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. Verwenden Sie in Cloud Shell den folgenden Befehl, um Ihre Compute Engine-VM und Cloud TPU zu löschen:

    $ gcloud compute tpus execution-groups delete efficientnet-tutorial \
      --zone=europe-west4-a
    
  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. Eine Antwort wie die folgende gibt an, dass Ihre Instanzen erfolgreich gelöscht wurden.

    $ gcloud compute tpus execution-groups list \
     --zone=europe-west4-a
    

    Sie sollten eine leere Liste der TPUs sehen, die in etwa so aussieht:

       NAME             STATUS
    
  4. Löschen Sie Ihren Cloud Storage-Bucket wie unten gezeigt mit gsutil. Ersetzen Sie bucket-name durch den Namen des Cloud Storage-Buckets.

    $ 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 (in den meisten Fällen) nicht für die Inferenz verwendbar. Wenn Sie ein Modell für Inferenz verwenden möchten, können Sie die Daten in einem öffentlich verfügbaren Dataset oder in Ihrem eigenen Dataset trainieren. TensorFlow-Modelle, die auf Cloud TPUs trainiert werden, benötigen im Allgemeinen Datasets im Format TFRecord.

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

Hyperparameter-Feinabstimmung

Sie können die Hyperparameter des Modells optimieren, um die Leistung des Modells mit Ihrem Dataset zu verbessern. Informationen zu Hyperparametern, die für alle TPU-unterstützten Modelle üblich sind, finden Sie auf GitHub. Informationen zu modellspezifischen Hyperparametern finden Sie im Quellcode für die einzelnen Modelle. Weitere Informationen zur Hyperparameter-Abstimmung finden Sie unter Übersicht über Hyperparameter-Abstimmung, Hyperparameter-Abstimmungsdienst und Hyperparameter abstimmen.

Inferenz

Sobald Ihr Modell trainiert ist, können Sie es für Inferenz (auch als Vorhersage bezeichnet) verwenden. AI Platform ist eine cloudbasierte Lösung, mit der Sie Modelle für maschinelles Lernen entwickeln, trainieren und bereitstellen können. Sobald ein Modell bereitgestellt wurde, können Sie den AI Platform Prediction-Dienst verwenden.