ShapeMask auf Cloud TPU trainieren (TF 2.x)

In diesem Dokument wird dargestellt, wie das ShapeMask-Modell mithilfe von Cloud TPU mit dem COCO-Dataset ausgeführt wird.

In der folgenden Anleitung wird davon ausgegangen, dass Sie bereits mit dem Ausführen eines Modells auf Cloud TPU vertraut sind. Wenn Sie Cloud TPU noch nicht kennen, finden Sie in der Kurzanleitung eine grundlegende Einführung.

Wenn Sie auf einem TPU Pod-Slice trainieren möchten, lesen Sie Auf TPU Pods trainieren, um mehr über Parameteränderungen für Pod-Slices zu erfahren.

Ziele

  • Cloud Storage-Bucket zum Speichern der Dataset- und Modellausgabe erstellen
  • COCO-Dataset vorbereiten
  • Compute Engine-VM und einen Cloud TPU-Knoten für das Training und die Bewertung einrichten
  • Training und Bewertung auf einer einzelnen Cloud TPU oder einem Cloud TPU Pod ausführen

Kosten

In dieser Anleitung werden kostenpflichtige Komponenten von Google Cloud verwendet, darunter:

  • Compute Engine
  • Cloud TPU
  • Cloud Storage

Sie können mithilfe des Preisrechners die Kosten für Ihre voraussichtliche Nutzung kalkulieren. 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 Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

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

Wenn Sie auf einem TPU Pod-Slice trainieren möchten, lesen Sie Auf TPU Pods trainieren, um mehr über Parameteränderungen für Pod-Slices zu erfahren.

Ressourcen einrichten

Dieser Abschnitt enthält Informationen zur Einrichtung von Cloud Storage-, VM- und Cloud TPU-Ressourcen für diese Anleitung.

  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, um es gcloud zu erlauben, GCP API-Aufrufe mit Ihren Anmeldedaten durchzuführen.

  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, und die Trainingsergebnisse. Mit dem in dieser Anleitung verwendeten gcloud compute tpus execution-groups-Tool werden 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.

    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 eine Compute Engine-VM-Instanz.

    $ gcloud compute tpus execution-groups create \
     --vm-only \
     --name=shapemask-tutorial \
     --zone=europe-west4-a \
     --disk-size=300 \
     --machine-type=n1-standard-16 \
     --tf-version=2.5.0
    

    Beschreibung der Befehls-Flags

    vm-only
    Erstellen Sie nur eine VM. Standardmäßig werden mit dem Befehl gcloud compute tpus execution-groups 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.
    disk-size
    Die Größe des Laufwerks in GB der VM, die mit dem Befehl gcloud compute tpus execution-groups erstellt wurde.
    machine-type
    Der Maschinentyp der zu erstellenden Compute Engine-VM.
    tf-version
    Die Version von Tensorflow, die von gcloud compute tpus execution-groups auf der VM installiert wird.

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

  7. Die von Ihnen angegebene Konfiguration wird angezeigt. Geben Sie y zum Bestätigen oder n zum Abbrechen ein.

    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 shapemask-tutorial --zone=europe-west4-a
    

    Führen Sie im weiteren Verlauf dieser Anleitung jeden Befehl, der mit (vm)$ beginnt, in Ihrer Compute Engine-Instanz aus.

  8. Erstellen Sie eine Umgebungsvariable zum Speichern Ihres Cloud Storage-Bucket-Speicherorts.

    (vm)$ export STORAGE_BUCKET=gs://bucket-name
    
  9. Erstellen Sie eine Umgebungsvariable für das Datenverzeichnis.

    (vm)$ export DATA_DIR=${STORAGE_BUCKET}/coco
    
  10. Klonen Sie das tpu-Repository.

    (vm)$ git clone -b shapemask https://github.com/tensorflow/tpu/
    
  11. Installieren Sie die Pakete, die für die Vorverarbeitung der Daten erforderlich sind.

    (vm)$ sudo apt-get install -y python3-tk && \
      pip3 install --user Cython matplotlib opencv-python-headless pyyaml Pillow && \
      pip3 install --user "git+https://github.com/cocodataset/cocoapi#egg=pycocotools&subdirectory=PythonAPI"
    

COCO-Dataset vorbereiten

  1. Führen Sie das Skript download_and_preprocess_coco.sh aus, um das COCO-Dataset in einen Satz von TFRecords (*.tfrecord) zu konvertieren, der von der Trainingsanwendung erwartet wird.

    (vm)$ sudo bash /usr/share/tpu/tools/datasets/download_and_preprocess_coco.sh ./data/dir/coco
    

    Dadurch werden die erforderlichen Bibliotheken installiert und das Skript für die Vorverarbeitung ausgeführt. Dann werden verschiedene *.tfrecord-Dateien in Ihr lokales Datenverzeichnis ausgegeben.

  2. Nachdem Sie die Daten in TFRecords konvertiert haben, kopieren Sie sie mit dem Befehl gsutil aus dem lokalen Speicher in den Cloud Storage-Bucket. Die Annotationsdateien müssen ebenfalls kopiert werden. Diese Dateien helfen dabei, die Leistung des Modells zu bewerten.

    (vm)$ gsutil -m cp ./data/dir/coco/*.tfrecord ${DATA_DIR}
    (vm)$ gsutil cp ./data/dir/coco/raw-data/annotations/*.json ${DATA_DIR}
    

Cloud TPU einrichten und starten

  1. Starten Sie mit dem Befehl gcloud eine Cloud TPU-Ressource.

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

    Beschreibung der Befehls-Flags

    tpu-only
    Erstellt die Cloud TPU, ohne eine VM zu erstellen. Standardmäßig werden mit dem Befehl gcloud compute tpus execution-groups eine VM und eine Cloud TPU erstellt.
    tpu-size
    Der Typ der zu erstellenden Cloud TPU.
    name
    Der Name 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 compute tpus execution-groups auf der VM installiert wird.
  2. Fügen Sie eine Umgebungsvariable für den Namen Ihrer Cloud TPU hinzu.

    (vm)$ export TPU_NAME=shapemask-tutorial
    
  3. Die von Ihnen angegebene Konfiguration wird angezeigt. Geben Sie y zum Bestätigen oder n zum Abbrechen ein.

    Sie erhalten folgende Meldung: Operation success; not ssh-ing to Compute Engine VM due to --tpu-only flag. Da Sie die SSH-Schlüsselverteilung bereits abgeschlossen haben, können Sie diese Nachricht ignorieren.

  4. Fügen Sie eine Umgebungsvariable für den Namen Ihrer Cloud TPU hinzu.

    (vm)$ export TPU_NAME=shapemask-tutorial
    

Training und Bewertung

Das folgende Skript führt ein Beispieltraining aus, das mit nur 100 Schritten trainiert wird und etwa 6 Minuten auf einer v3-8-TPU benötigt. Das Training zur Konvergenz dauert etwa 22.500 Schritte und ca. 6 Stunden auf einer v3-8-TPU.

  1. Fügen Sie einige erforderliche Umgebungsvariablen hinzu:

    (vm)$ export PYTHONPATH="${PYTHONPATH}:/usr/share/models"
    (vm)$ export RESNET_CHECKPOINT=gs://cloud-tpu-checkpoints/retinanet/resnet50-checkpoint-2018-02-07
    (vm)$ export TRAIN_FILE_PATTERN=${DATA_DIR}/train-*
    (vm)$ export EVAL_FILE_PATTERN=${DATA_DIR}/val-*
    (vm)$ export VAL_JSON_FILE=${DATA_DIR}/instances_val2017.json
    (vm)$ export SHAPE_PRIOR_PATH=gs://cloud-tpu-checkpoints/shapemask/kmeans_class_priors_91x20x32x32.npy
    (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/shapemask
    
  2. Führen Sie das folgende Skript aus, um das ShapeMask-Modell zu trainieren:

    (vm)$ python3 /usr/share/models/official/vision/detection/main.py \
    --strategy_type=tpu \
    --tpu=${TPU_NAME} \
    --model_dir=${MODEL_DIR} \
    --mode=train \
    --model=shapemask \
    --params_override="{train: {total_steps: 100, learning_rate: {init_learning_rate: 0.08, learning_rate_levels: [0.008, 0.0008], learning_rate_steps: [15000, 20000], }, checkpoint: { path: ${RESNET_CHECKPOINT},prefix: resnet50}, train_file_pattern: ${TRAIN_FILE_PATTERN}}, shapemask_head: {use_category_for_mask: true, shape_prior_path: ${SHAPE_PRIOR_PATH}}, shapemask_parser: {output_size: [640, 640]}}"
    

    Beschreibung der Befehls-Flags

    strategy_type
    Wenn Sie das RetinaNet-Modell auf einer TPU trainieren möchten, müssen Sie distribution_strategy auf tpu festlegen.
    tpu
    Der Name der Cloud TPU. Dieser wird mit der Umgebungsvariable TPU_NAME festgelegt.
    model_dir
    Der Cloud Storage-Bucket, in dem während des Trainings Prüfpunkte und Zusammenfassungen gespeichert werden. Sie können einen vorhandenen Ordner verwenden, um zuvor generierte Prüfpunkte zu laden, die auf einer TPU mit derselben Größe und TensorFlow-Version erstellt wurden.
    mode
    Entweder train, eval oder train_and_eval.
    model
    Das Modell, das trainiert werden soll.
    params_override
    Ein JSON-String, der Standardskriptparameter überschreibt. Weitere Informationen zu Skriptparametern finden Sie unter /usr/share/models/official/vision/detection/main.py.

    Die Ausgabe des Trainingsskripts sollte so aussehen:

    Train Step: 100/100  / loss = {
     'total_loss': 10.152124404907227,
     'loss': 10.152124404907227,
     'retinanet_cls_loss': 1.3409545421600342,
     'l2_regularization_loss': 4.6183762550354,
     'retinanet_box_loss': 0.012389584444463253,
     'shapemask_prior_loss': 0.183448925614357,
     'shapemask_coarse_mask_loss': 1.7648673057556152,
     'shapemask_fine_mask_loss': 1.790102243423462,
     'model_loss': 5.533748626708984,
     'learning_rate': 0.021359999
    }
    / training metric = {
    'total_loss': 10.152124404907227,
    'loss': 10.152124404907227,
    'retinanet_cls_loss': 1.3409545421600342,
    'l2_regularization_loss': 4.6183762550354,
    'retinanet_box_loss': 0.012389584444463253,
    'shapemask_prior_loss': 0.183448925614357,
    'shapemask_coarse_mask_loss': 1.7648673057556152,
    'shapemask_fine_mask_loss': 1.790102243423462,
    'model_loss': 5.533748626708984,
    'learning_rate': 0.021359999
    }
  3. Führen Sie das Skript aus, um das ShapeMask-Modell zu bewerten:

    (vm)$ python3 /usr/share/models/official/vision/detection/main.py \
    --strategy_type=tpu \
    --tpu=${TPU_NAME} \
    --model_dir=${MODEL_DIR} \
    --checkpoint_path=${MODEL_DIR} \
    --mode=eval_once \
    --model=shapemask \
    --params_override="{eval: { val_json_file: ${VAL_JSON_FILE}, eval_file_pattern: ${EVAL_FILE_PATTERN}, eval_samples: 5000 }, shapemask_head: {use_category_for_mask: true, shape_prior_path: ${SHAPE_PRIOR_PATH}}, shapemask_parser: {output_size: [640, 640]}}"
    

    Beschreibung der Befehls-Flags

    strategy_type
    Wenn Sie das RetinaNet-Modell auf einer TPU trainieren möchten, müssen Sie distribution_strategy auf tpu festlegen.
    tpu
    Der Name der Cloud TPU. Dieser wird mit der Umgebungsvariable TPU_NAME festgelegt.
    model_dir
    Der Cloud Storage-Bucket, in dem während des Trainings Prüfpunkte und Zusammenfassungen gespeichert werden. Sie können einen vorhandenen Ordner verwenden, um zuvor generierte Prüfpunkte zu laden, die auf einer TPU mit derselben Größe und TensorFlow-Version erstellt wurden.
    mode
    Entweder train, eval oder train_and_eval.
    model
    Das Modell, das trainiert werden soll.
    params_override
    Ein JSON-String, der Standardskriptparameter überschreibt. Weitere Informationen zu Skriptparametern finden Sie unter /usr/share/models/official/vision/detection/main.py.

Die Ausgabe des Bewertungsskripts sollte in etwa so aussehen:

756s 62ms/step
- loss: 0.4864
- accuracy: 0.8055
- val_loss: 0.3832
- val_accuracy: 0.8546

Von hier aus können Sie entweder diese Anleitung abschließen und Ihre GCP-Ressourcen bereinigen oder sich die Ausführung des Modells auf einem Cloud TPU Pod genauer ansehen.

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 Mask RCNN-Modell funktioniert mit den folgenden Pod-Slices:

  • 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

Wenn Sie Ihre Compute Engine-Instanz bereits gelöscht haben, erstellen Sie gemäß den Schritten unter Ressourcen einrichten eine neue Instanz.

Das folgende Beispieltraining erfordert nur 20 Schritte und dauert etwa 10 Minuten auf einem v3-32-TPU-Knoten. Das Training zur Konvergenz erfordert etwa 11.250 Schritte und dauert etwa 2 Stunden auf einem v3-32-TPU-Pod.

  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 shapemask-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 --name=shapemask-tutorial \
      --accelerator-type=v3-32  \
      --zone=europe-west4-a \
      --tf-version=2.5.0 \
      --tpu-only
    

    Beschreibung der Befehls-Flags

    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.
    tpu-only
    Erstellen Sie nur eine Cloud TPU. Standardmäßig werden mit dem Befehl gcloud eine VM und eine Cloud TPU erstellt.
  3. Aktualisieren Sie die Umgebungsvariablen TPU_NAME und MODEL_DIR.

    (vm)$ export TPU_NAME=shapemask-tutorial
    (vm)$ export MODEL_DIR=${STORAGE_BUCKET}/shapemask-pods
    
  4. Starten Sie das Trainingsskript.

    (vm)$ python3 /usr/share/models/official/vision/detection/main.py \
    --strategy_type=tpu \
    --tpu=${TPU_NAME} \
    --model_dir=${MODEL_DIR} \
    --mode=train \
    --model=shapemask \
    --params_override="{train: { batch_size: 128, iterations_per_loop: 500, total_steps: 20, learning_rate: {'learning_rate_levels': [0.008, 0.0008],'learning_rate_steps': [10000, 13000]}, checkpoint: {path: ${RESNET_CHECKPOINT}, prefix: resnet50/}, train_file_pattern: ${TRAIN_FILE_PATTERN}}, eval: {val_json_file: ${VAL_JSON_FILE}, eval_file_pattern: ${EVAL_FILE_PATTERN}},shapemask_head: {use_category_for_mask: true, shape_prior_path: ${SHAPE_PRIOR_PATH}}}"
    

    Beschreibung der Befehls-Flags

    strategy_type
    Wenn Sie das RetinaNet-Modell auf einer TPU trainieren möchten, müssen Sie distribution_strategy auf tpu festlegen.
    tpu
    Der Name der Cloud TPU. Dieser wird mit der Umgebungsvariable TPU_NAME festgelegt.
    model_dir
    Der Cloud Storage-Bucket, in dem während des Trainings Prüfpunkte und Zusammenfassungen gespeichert werden. Sie können einen vorhandenen Ordner verwenden, um zuvor generierte Prüfpunkte zu laden, die auf einer TPU mit derselben Größe und TensorFlow-Version erstellt wurden.
    mode
    Entweder train, eval oder train_and_eval.
    model
    Das Modell, das trainiert werden soll.
    params_override
    Ein JSON-String, der Standardskriptparameter überschreibt. Weitere Informationen zu Skriptparametern finden Sie unter /usr/share/models/official/vision/detection/main.py.

Die Ausgabe des Trainingsskripts sollte in etwa so aussehen:

Train Step: 20/20  / loss = {
  'total_loss': 12.213006973266602,
  'loss': 12.213006973266602,
  'retinanet_cls_loss': 1.9299328327178955,
  'l2_regularization_loss': 4.628948211669922,
  'retinanet_box_loss': 0.016126759350299835,
  'shapemask_prior_loss': 0.16990719735622406,
  'shapemask_coarse_mask_loss': 3.688129425048828,
  'shapemask_fine_mask_loss': 1.1426670551300049,
  'model_loss': 7.584057807922363,
  'learning_rate': 0.009632
}
/ training metric = {
  'total_loss': 12.213006973266602,
  'loss': 12.213006973266602,
  'retinanet_cls_loss': 1.9299328327178955,
  'l2_regularization_loss': 4.628948211669922,
  'retinanet_box_loss': 0.016126759350299835,
  'shapemask_prior_loss': 0.16990719735622406,
  'shapemask_coarse_mask_loss': 3.688129425048828,
  'shapemask_fine_mask_loss': 1.1426670551300049,
  'model_loss': 7.584057807922363,
  'learning_rate': 0.009632
}

Modell bewerten

In diesem Schritt verwenden Sie einen einzelnen Cloud TPU-Knoten, um das oben trainierte Modell mit dem COCO-Dataset zu bewerten. Dies dauert etwa 20 Minuten.

  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 shapemask-tutorial \
      --zone=europe-west4-a \
      --tpu-only
  2. Starten Sie ein neues TPU-Gerät, um die Bewertung auszuführen.

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

    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. Aktualisieren Sie die Umgebungsvariable TPU_NAME.

    (vm)$ export TPU_NAME=shapemask-tutorial
    
  4. Starten Sie die Bewertung.

    (vm)$ python3 /usr/share/models/official/vision/detection/main.py \
    --strategy_type=tpu \
    --tpu=shapemask-tutorial \
    --model_dir=${MODEL_DIR} \
    --checkpoint_path=${MODEL_DIR} \
    --mode=eval_once \
    --model=shapemask \
    --params_override="{eval: { val_json_file: ${VAL_JSON_FILE}, eval_file_pattern: ${EVAL_FILE_PATTERN}, eval_samples: 5000 } }"
    

    Beschreibung der Befehls-Flags

    strategy_type
    Wenn Sie das RetinaNet-Modell auf einer TPU trainieren möchten, müssen Sie distribution_strategy auf tpu festlegen.
    tpu
    Der Name der Cloud TPU. Dieser wird mit der Umgebungsvariable TPU_NAME festgelegt.
    model_dir
    Der Cloud Storage-Bucket, in dem während des Trainings Prüfpunkte und Zusammenfassungen gespeichert werden. Sie können einen vorhandenen Ordner verwenden, um zuvor generierte Prüfpunkte zu laden, die auf einer TPU mit derselben Größe und TensorFlow-Version erstellt wurden.
    mode
    Entweder train, eval oder train_and_eval.
    model
    Das Modell, das trainiert werden soll.
    params_override
    Ein JSON-String, der Standardskriptparameter überschreibt. Weitere Informationen zu Skriptparametern finden Sie unter /usr/share/models/official/vision/detection/main.py.

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 shapemask-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

Mit verschiedenen Bildgrößen trainieren

Sie können auch ein neuronales Netzwerk wie ResNet-101 statt ResNet-50 ausprobieren. Ein größeres Eingabebild und ein leistungsfähigeres neuronales Netzwerk ergeben ein langsameres, aber präziseres Modell.

Andere Grundlage verwenden

Alternativ können Sie versuchen, ein ResNet-Modell im Voraus mit Ihrem eigenen Dataset zu trainieren und es als Grundlage für Ihr ShapeMask-Modell zu verwenden. Sie haben auch die Möglichkeit, ResNet durch ein alternatives neuronales Netzwerk zu ersetzen, was etwas arbeitsaufwändiger ist. Wenn Sie Ihre eigenen Objekterkennungsmodelle implementieren möchten, ist dieses Netzwerk möglicherweise eine gute Basis für weitere Experimente.