Exporter des modèles Edge

Après avoir créé (entraîné) un modèle, vous pouvez exporter votre modèle personnalisé.

Après avoir exporté votre modèle, vous pouvez le déployer sur un appareil.

Vous pouvez exporter un modèle de classification d'images aux formats suivants :

Exporter vers des appareils

Modèles TensorFlow Lite

UI Web

  1. Accédez à Vision Dashboard, puis cliquez sur l'icône représentant une ampoule dans la barre de navigation de gauche pour afficher les modèles disponibles.

    Pour afficher les modèles d'un autre projet, sélectionnez le projet dans la liste déroulante située en haut à droite de la barre de titre.

  2. Cliquez sur la ligne du modèle que vous souhaitez utiliser pour étiqueter vos images.

  3. Cliquez sur l'onglet Test et utilisation situé juste en dessous de la barre de titre.

  4. Dans la section Utiliser votre modèle, sélectionnez l'option TF Lite. Après avoir sélectionné l'option TF Lite et spécifié l'emplacement d'exportation sur Cloud Storage dans la fenêtre latérale, cliquez sur Export (Exporter) pour exporter votre modèle Edge TF Lite.

    Option d'exportation de modèle TF Lite mise à jour Option d'exportation de modèle TF Lite mise à jour

REST

Dans le champ "modelFormat", spécifiez "tflite" (valeur par défaut).

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet GCP.
  • model-id : ID de votre modèle, issu de la réponse obtenue lors de sa création. L'ID est le dernier élément du nom du modèle. Exemple :
    • Nom du modèle : projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID du modèle : IOD4412217016962778756
  • output-storage-bucket : répertoire/bucket Google Cloud Storage dans lequel enregistrer les fichiers de sortie, exprimé sous la forme suivante : gs://bucket/directory/. L'utilisateur demandeur doit disposer d'autorisations en écriture sur le bucket.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON de ce type :

{
  "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/tflite-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ"
      }
    }
  }
}

Une fois cette opération effectuée, une structure de dossiers s'affiche dans le répertoire que vous avez spécifié (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La structure de dossiers créée sera au format général suivant (horodatage au format ISO-8601) :

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

Exemple :

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

Le dossier contient un modèle TensorFlow Lite nommé model.tflite, un fichier d'étiquettes nommé dict.txt et un fichier tflite_metadata.json.

Utiliser le modèle exporté

Après avoir exporté votre modèle vers un bucket Google Cloud Storage, vous pouvez déployer votre modèle AutoML Vision Edge sur des appareils Android, iOS ou Raspberry Pi 3.

Modèles Core ML

UI Web

  1. Accédez à Vision Dashboard, puis cliquez sur l'icône représentant une ampoule dans la barre de navigation de gauche pour afficher les modèles disponibles.

    Pour afficher les modèles d'un autre projet, sélectionnez le projet dans la liste déroulante située en haut à droite de la barre de titre.

  2. Cliquez sur la ligne du modèle que vous souhaitez utiliser pour étiqueter vos images.

  3. Cliquez sur l'onglet Test et utilisation situé juste en dessous de la barre de titre.

  4. Dans la section Utiliser votre modèle, sélectionnez l'option Core ML. Après avoir sélectionné l'option Core ML et spécifié l'emplacement d'exportation sur Cloud Storage dans la fenêtre latérale, cliquez sur Export (Exporter) pour exporter votre modèle Edge.

    Option d'exportation de modèle Core ML Option d'exportation de modèle Core ML

REST

Dans le champ "modelFormat", spécifiez "core_ml".

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet GCP.
  • model-id : ID de votre modèle, issu de la réponse obtenue lors de sa création. L'ID est le dernier élément du nom du modèle. Exemple :
    • Nom du modèle : projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID du modèle : IOD4412217016962778756
  • output-storage-bucket : répertoire/bucket Google Cloud Storage dans lequel enregistrer les fichiers de sortie, exprimé sous la forme suivante : gs://bucket/directory/. L'utilisateur demandeur doit disposer d'autorisations en écriture sur le bucket.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata",
    "createTime": "2019-11-12T22:53:55.290584Z",
    "updateTime": "2019-11-12T22:53:55.290584Z",
    "exportModelDetails": {
      "outputInfo": {
        "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/icn/core_ml-DATASET_NAME_YYYY-MM-DDThh:mm:ss.sssZ/"
      }
    }
  }
}

Une fois cette opération effectuée, une structure de dossiers s'affiche dans le répertoire que vous avez spécifié (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La structure de dossiers créée sera au format général suivant (horodatage au format ISO-8601) :

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

Exemple :

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

Le dossier contient un modèle Core ML nommé model.mlmodel et un fichier d'étiquettes dict.txt.

Utiliser le modèle exporté

Après avoir exporté votre modèle vers un bucket Google Cloud Storage, vous pouvez déployer votre modèle AutoML Vision Edge sur des appareils iOS.

Exporter vers un conteneur

UI Web

  1. Accédez à Vision Dashboard, puis cliquez sur l'icône représentant une ampoule dans la barre de navigation de gauche pour afficher les modèles disponibles.

    Pour afficher les modèles d'un autre projet, sélectionnez le projet dans la liste déroulante située en haut à droite de la barre de titre.

  2. Cliquez sur la ligne du modèle que vous souhaitez utiliser pour étiqueter vos images.

  3. Cliquez sur l'onglet Test et utilisation situé juste en dessous de la barre de titre.

  4. Dans la section Utiliser votre modèle, sélectionnez l'option Container (Conteneur). Après avoir sélectionné l'option Container et spécifié l'emplacement d'exportation sur Cloud Storage dans la fenêtre latérale, cliquez sur Export (Exporter) pour exporter votre modèle Edge.

    Option d'exportation vers un conteneur Option d'exportation vers un conteneur

REST

Dans le champ "modelFormat", spécifiez "tf-saved-model".

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet GCP.
  • model-id : ID de votre modèle, issu de la réponse obtenue lors de sa création. L'ID est le dernier élément du nom du modèle. Exemple :
    • Nom du modèle : projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID du modèle : IOD4412217016962778756
  • output-storage-bucket : répertoire/bucket Google Cloud Storage dans lequel enregistrer les fichiers de sortie, exprimé sous la forme suivante : gs://bucket/directory/. L'utilisateur demandeur doit disposer d'autorisations en écriture sur le bucket.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON de ce type :

{
  "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-saved-model-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ"
      }
    }
  }
}

Une fois cette opération effectuée, une structure de dossiers s'affiche dans le répertoire que vous avez spécifié (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La structure de dossiers créée sera au format général suivant (horodatage au format ISO-8601) :

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

Exemple :

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

Le dossier contient un modèle TensorFlow nommé saved_model.pb.

Utiliser le modèle exporté

Après avoir exporté votre modèle vers un bucket Google Cloud Storage, vous pouvez utiliser le modèle exporté pour effectuer des prédictions dans une image Docker. Pour savoir comment procéder au déploiement dans un conteneur, reportez-vous au tutoriel sur les conteneurs.

Exporter vers Edge TPU

UI Web

  1. Accédez au tableau de bord Vision et cliquez sur l'icône en forme d'ampoule dans la barre de navigation de gauche pour afficher les modèles disponibles.

    Pour afficher les modèles d'un autre projet, sélectionnez le projet dans la liste déroulante située en haut à droite de la barre de titre.

  2. Sélectionnez la ligne du modèle que vous souhaitez utiliser pour attribuer des libellés à vos images.

  3. Sélectionnez l'onglet Test et utilisation situé juste en dessous de la barre de titre.

  4. Dans la section Utiliser votre modèle, sélectionnez l'option Coral. Après avoir sélectionné l'option Coral et spécifié l'emplacement d'exportation sur Cloud Storage dans la fenêtre latérale, cliquez sur Export (Exporter) pour exporter votre modèle Edge.

    Option d'exportation Coral (edgetpu tflite) Option d'exportation Coral (edgetpu tflite)

REST

Dans le champ "modelFormat", spécifiez "edgetpu_tflite".

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet GCP.
  • model-id : ID de votre modèle, issu de la réponse obtenue lors de sa création. L'ID est le dernier élément du nom du modèle. Exemple :
    • Nom du modèle : projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID du modèle : IOD4412217016962778756
  • output-storage-bucket : répertoire/bucket Google Cloud Storage dans lequel enregistrer les fichiers de sortie, exprimé sous la forme suivante : gs://bucket/directory/. L'utilisateur demandeur doit disposer d'autorisations en écriture sur le bucket.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata",
    "createTime": "2019-11-12T22:55:03.554806Z",
    "updateTime": "2019-11-12T22:55:03.554806Z",
    "exportModelDetails": {
      "outputInfo": {
        "gcsOutputDirectory": "OUTPUT_STORAGE_BUCKET/model-export/icn/edgetpu_tflite-DATASET_NAME_YYYY-MM-DDThh:mm:ss.sssZ/"
      }
    }
  }
}

Une fois cette opération effectuée, une structure de dossiers s'affiche dans le répertoire que vous avez spécifié (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La structure de dossiers créée sera au format général suivant (horodatage au format ISO-8601) :

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

Exemple :

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

Le dossier contient un modèle TensorFlow Lite nommé edgetpu_model.tflite, un fichier d'étiquettes nommé dict.txt et un fichier tflite_metadata.json.

Utiliser le modèle exporté

Pour savoir comment procéder à un déploiement sur Edge TPU, consultez la documentation officielle de Coral qui explique comment lancer un test d'inférence sur Edge TPU.

Exporter pour le Web

UI Web

  1. Pour afficher les modèles disponibles, accédez à Vision Dashboard et sélectionnez l'icône représentant une ampoule dans la barre de navigation latérale.

    Pour afficher les modèles d'un autre projet, sélectionnez le projet dans la liste déroulante située en haut à droite de la barre de titre.

  2. Sélectionnez la ligne du modèle que vous souhaitez utiliser pour attribuer des libellés à vos images.

  3. Sélectionnez l'onglet Test et utilisation situé juste en dessous de la barre de titre.

  4. Dans la section Utiliser votre modèle, sélectionnez l'option TensorFlow.js. Après avoir sélectionné l'option Tensorflow.js et spécifié l'emplacement d'exportation dans Cloud Storage dans la fenêtre latérale, sélectionnez Exporter pour exporter votre modèle TensorFlow.js conçu pour le Web.

    Option d'exportation Tensorflow.js Option d'exportation Tensorflow.js

REST

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet GCP.
  • model-id : ID de votre modèle, issu de la réponse obtenue lors de sa création. L'ID est le dernier élément du nom du modèle. Exemple :
    • Nom du modèle : projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID du modèle : IOD4412217016962778756
  • output-storage-bucket : répertoire/bucket Google Cloud Storage dans lequel enregistrer les fichiers de sortie, exprimé sous la forme suivante : gs://bucket/directory/. L'utilisateur demandeur doit disposer d'autorisations en écriture sur le bucket.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON de ce type :

{
  "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"
      }
    }
  }
}

Une fois cette opération effectuée, un dossier s'affiche dans le répertoire que vous avez spécifié (USER_GCS_PATH). Le dossier créé est nommé en fonction de l'horodatage au format /model-export/icn/tf_js-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ (par exemple, tf_js-edge_model-2019-10-03T17:24:46.999Z).

Ce dossier contient des fichiers binaires (.bin), un fichier de libellés nommé dict.txt et un fichier model.json.

Exemple de dossier TensorFlow.js