Edge-Modelle exportieren

Nachdem Sie ein Modell erstellt (trainiert) haben, können Sie das benutzerdefinierte Modell exportieren.

Nachdem Sie es exportiert haben, können Sie es auf einem Gerät bereitstellen.

Sie können ein Bildklassifizierungsmodell mithilfe der ExportModel API in den allgemeinen Formaten Tensorflow Lite und TensorFlow oder im TensorFlow.js for Web-Format in einen Google Cloud Storage-Speicherort exportieren.

Auf Geräte exportieren

TensorFlow Lite-Modelle

Web-UI

  1. Öffnen Sie die AutoML Vision-Benutzeroberfläche für die Objekterkennung und klicken Sie in der linken Navigationsleiste auf das Glühbirnensymbol, um die verfügbaren Modelle aufzurufen.

    Wenn Sie die Modelle für ein anderes Projekt ansehen möchten, wählen Sie das Projekt in der Drop-down-Liste rechts oben in der Titelleiste aus.

  2. Klicken Sie auf die Zeile für das Modell, das Sie verwenden möchten, um die Bilder mit Labels zu versehen.

  3. Wählen Sie den Tab Test & use (Test und Nutzung) aus.

  4. Wählen Sie im Abschnitt Use your model (Mein Modell verwenden) die Karte TF Lite aus. Dadurch wird das seitliche Fenster Use your on-device model (Modell auf meinem Gerät verwenden) geöffnet.

    Bild für das Exportieren der TF Lite-Modelloption

  5. Geben Sie im seitlichen Fenster den Google Cloud Storage-Speicherort an. Nachdem Sie den Storage-Speicherort für die Modellausgabe ausgewählt haben, wählen Sie Export (Exportieren) aus, um den Vorgang des Modellexports zu starten.

    Bild für das Auswählen eines Storage-Speicherorts für das exportierte Modell

  6. Nach dem Export können Sie im selben Fenster die Option Open in Google Cloud Storage (In Google Cloud Storage öffnen) auswählen, um direkt zum Exportverzeichnis in Google Cloud Storage zu gelangen.

REST

Geben Sie im Feld "modelFormat" die Option "tflite" (Standardeinstellung) an.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: die ID Ihres GCP-Projekts.
  • model-id: die ID Ihres Modells aus der Antwort beim Erstellen des Modells. Sie ist das letzte Element des Modellnamens. Beispiel:
    • Modellname: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • Modell-ID: IOD4412217016962778756
  • output-storage-bucket: ein Google Cloud Storage-Bucket/-Verzeichnis, in dem Ausgabedateien gespeichert werden. Dies wird in folgender Form angegeben: gs://bucket/directory/. Der anfragende Nutzer muss Schreibberechtigung für den Bucket haben.

HTTP-Methode und URL:

POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export

JSON-Text der Anfrage:

{
  "outputConfig": {
    "modelFormat": "tflite",
    "gcsDestination": {
      "outputUriPrefix": "OUTPUT_STORAGE_BUCKET/"
    },
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export" | Select-Object -Expand Content

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata",
    "createTime": "2019-07-22T21:23:21.643041Z",
    "updateTime": "2019-07-22T21:23:21.643041Z",
    "exportModelDetails": {
      "outputInfo": {
        "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/iod/tflite-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ"
      }
    }
  }
}

Daraufhin wird eine Ordnerstruktur im von Ihnen angegebenen Verzeichnis (CLOUD_STORAGE_BUCKET/[DIRECTORY]) angezeigt. Die erstellte Ordnerstruktur hat folgendes allgemeines Format (Zeitstempel im Format ISO-8601):

  • CLOUD_STORAGE_BUCKET/model-export/iod/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ

Beispiel:

  • CLOUD_STORAGE_BUCKET/model-export/iod/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
  • CLOUD_STORAGE_BUCKET/model-export/iod/tflite-DATASET_NAME-2019-07-22T21:23:18.861Z

Der Ordner enthält ein TensorFlow Lite-Modell mit dem Namen model.tflite, eine Labeldatei namens dict.txt und eine tflite_metadata.json-Datei.

Beispiel für einen Zeitstempelordner

Exportiertes Modell verwenden

Nachdem Sie das AutoML Vision Edge-Modell in einen Google Cloud Storage-Bucket exportiert haben, können Sie es auf Android-Geräten, iOS-Geräten oder Raspberry Pi 3 bereitstellen.

In einen Container exportieren

Web-UI

  1. Öffnen Sie die AutoML Vision-Benutzeroberfläche für die Objekterkennung und klicken Sie in der linken Navigationsleiste auf das Glühbirnensymbol, um die verfügbaren Modelle aufzurufen.

    Wenn Sie die Modelle für ein anderes Projekt ansehen möchten, wählen Sie das Projekt in der Drop-down-Liste rechts oben in der Titelleiste aus.

  2. Klicken Sie auf die Zeile für das Modell, das Sie verwenden möchten, um die Bilder mit Labels zu versehen.

  3. Wählen Sie den Tab Test & use (Test und Nutzung) aus.

  4. Wählen Sie im Abschnitt Use your model (Mein Modell verwenden) die Karte TF Lite aus. Dadurch wird das seitliche Fenster Use your on-device model (Modell auf meinem Gerät verwenden) geöffnet.

    Bild für das Exportieren der TF Lite-Modelloption

  5. Geben Sie im seitlichen Fenster den Google Cloud Storage-Speicherort an. Nachdem Sie den Storage-Speicherort für die Modellausgabe ausgewählt haben, wählen Sie Export (Exportieren) aus, um den Vorgang des Modellexports zu starten.

    Bild für das Auswählen eines Storage-Speicherorts für das exportierte Modell

  6. Nach dem Export können Sie im selben Fenster die Option Open in Google Cloud Storage (In Google Cloud Storage öffnen) auswählen, um direkt zum Exportverzeichnis in Google Cloud Storage zu gelangen.

REST

Geben Sie im Feld "modelFormat" die Option "tf-saved-model" an.

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • project-id: die ID Ihres GCP-Projekts.
  • model-id: die ID Ihres Modells aus der Antwort beim Erstellen des Modells. Sie ist das letzte Element des Modellnamens. Beispiel:
    • Modellname: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • Modell-ID: IOD4412217016962778756
  • output-storage-bucket: ein Google Cloud Storage-Bucket/-Verzeichnis, in dem Ausgabedateien gespeichert werden. Dies wird in folgender Form angegeben: gs://bucket/directory/. Der anfragende Nutzer muss Schreibberechtigung für den Bucket haben.

HTTP-Methode und URL:

POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export

JSON-Text der Anfrage:

{
  "outputConfig": {
    "modelFormat": "tf-saved-model",
    "gcsDestination": {
      "outputUriPrefix": "OUTPUT_STORAGE_BUCKET/"
    },
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export" | Select-Object -Expand Content

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata",
    "createTime": "2019-07-22T21:23:21.643041Z",
    "updateTime": "2019-07-22T21:23:21.643041Z",
    "exportModelDetails": {
      "outputInfo": {
        "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/iod/tf-saved-model-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ"
      }
    }
  }
}

Daraufhin wird eine Ordnerstruktur im von Ihnen angegebenen Verzeichnis (CLOUD_STORAGE_BUCKET/[DIRECTORY]) angezeigt. Die erstellte Ordnerstruktur hat folgendes allgemeines Format (Zeitstempel im Format ISO-8601):

  • CLOUD_STORAGE_BUCKET/model-export/iod/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ

Beispiel:

  • CLOUD_STORAGE_BUCKET/model-export/iod/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
  • CLOUD_STORAGE_BUCKET/model-export/iod/tflite-DATASET_NAME-2019-07-22T21:23:18.861Z

Der Ordner enthält ein TensorFlow-Modell mit dem Namen saved_model.pb.

Beispiel für einen Zeitstempelordner

Exportiertes Modell verwenden

Nachdem Sie das Modell in einen Google Cloud Storage-Bucket exportiert haben, können Sie mithilfe des exportierten Modells Vorhersagen in einem Docker-Image treffen. Eine Anleitung zum Bereitstellen in einem Container finden Sie hier.

Für das Web exportieren

Web-UI

  1. Öffnen Sie Vision Dashboard und wählen Sie in der seitlichen Navigationsleiste das Glühbirnensymbol aus, um sich die verfügbaren Modelle anzeigen zu lassen.

    Wenn Sie die Modelle für ein anderes Projekt ansehen möchten, wählen Sie das Projekt in der Drop-down-Liste rechts oben in der Titelleiste aus.

  2. Klicken Sie auf die Zeile für das Modell, das Sie verwenden möchten, um die Bilder mit Labels zu versehen.

  3. Wählen Sie den Tab Test & Use (Test und Nutzung) direkt unter der Titelleiste aus.

  4. Wählen Sie im Bereich Use your model (Modell verwenden) die Option Tensorflow.js aus. Nachdem Sie die Option Tensorflow.js ausgewählt und im Seitenfenster den Cloud Storage-Exportspeicherort angegeben haben, klicken Sie auf Exportieren, um Ihr webfähiges TensorFlow.js-Modell zu exportieren.

    Screenshot: Option "Tensorflow.js exportieren" Screenshot: Option "Tensorflow.js exportieren"

REST

Ersetzen Sie dabei folgende Werte für die Anfragedaten:

  • project-id: die ID Ihres GCP-Projekts.
  • model-id: die ID Ihres Modells aus der Antwort beim Erstellen des Modells. Sie ist das letzte Element des Modellnamens. Beispiel:
    • Modellname: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • Modell-ID: IOD4412217016962778756
  • output-storage-bucket: ein Google Cloud Storage-Bucket/-Verzeichnis, in dem Ausgabedateien gespeichert werden. Dies wird in folgender Form angegeben: gs://bucket/directory/. Der anfragende Nutzer muss Schreibberechtigung für den Bucket haben.

HTTP-Methode und URL:

POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export

JSON-Text der Anfrage:

{
  "outputConfig": {
    "modelFormat": "tf_js",
    "gcsDestination": {
      "outputUriPrefix": "OUTPUT_STORAGE_BUCKET/"
    },
  }
}

Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

curl

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export" | Select-Object -Expand Content

Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:

{
  "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata",
    "createTime": "2019-07-22T21:23:21.643041Z",
    "updateTime": "2019-07-22T21:23:21.643041Z",
    "exportModelDetails": {
      "outputInfo": {
        "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/icn/tf_js-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ"
      }
    }
  }
}

Als Ergebnis sehen Sie einen Ordner in dem von Ihnen bereitgestellten Verzeichnis (USER_GCS_PATH). Der erstellte Ordner wird nach dem Zeitstempel im Format /model-export/icn/tf_js-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ (z. B. tf_js-edge_model-2019-10-03T17:24:46.999Z) benannt.

Der Ordner enthält Binärdateien (.bin), eine Labeldatei mit der Bezeichnung dict.txt und eine Datei model.json.

Beispiel für den Ordner Tensorflow.js