Esportazione dei modelli Edge

Dopo aver creato (addestrato) un modello, puoi esportarlo.

Dopo aver esportato il modello, puoi eseguirne il deployment su un dispositivo.

Puoi esportare un modello di classificazione delle immagini nei seguenti formati:

Esporta in dispositivi

Modelli TensorFlow Lite

UI web

  1. Apri l'app Vision Dashboard e fai clic sull'icona a forma di lampadina nella barra di navigazione a sinistra per visualizzare i modelli disponibili.

    Per visualizzare i modelli di un altro progetto, seleziona il progetto dal menu a discesa in alto a destra nella barra del titolo.

  2. Fai clic sulla riga corrispondente al modello che vuoi utilizzare per etichettare le immagini.

  3. Fai clic sul pulsante Testa e Usa Tab appena sotto la barra del titolo.

  4. Nella sezione Utilizza il tuo modello, seleziona l'opzione TF Lite. Dopo il giorno Selezionando l'opzione TF Lite e specificando il percorso di esportazione Cloud Storage nella finestra laterale, seleziona Esporta per esportare il tuo Edge modello TF Lite.

    aggiornata l'opzione del modello TF Lite aggiornata l'opzione del modello TF Lite

REST

Nel campo "modelFormat" specifica "tflite" (valore predefinito).

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: l'ID del tuo progetto Google Cloud.
  • model-id: l'ID del modello, dalla quando hai creato il modello. L'ID è l'ultimo elemento del nome del modello. Ad esempio:
    • nome modello: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID modello: IOD4412217016962778756
  • output-storage-bucket: uno Google Cloud Storage bucket/directory in cui salvare i file di output, espressi nel seguente formato: gs://bucket/directory/. L'utente che ha inviato la richiesta deve disporre dell'autorizzazione di scrittura per di sincronizzare la directory di una VM con un bucket.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

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

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

$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

Dovresti ricevere una risposta JSON simile alla seguente:

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

Come risultato vedrai una struttura di cartelle nella directory che hai fornito (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La cartella creata avrà seguente formato generale (timestamp nel formato ISO-8601):

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

Ad esempio:

  • 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

La cartella contiene un modello TensorFlow Lite denominato model.tflite, un file di etichette denominato dict.txt e un file tflite_metadata.json.

Utilizzo del modello esportato

Dopo aver esportato il modello in un bucket Google Cloud Storage, puoi eseguire il deployment il tuo modello AutoML Vision Edge Dispositivi Android, Dispositivi iOS oppure Raspberry Pi 3.

Modelli ML di base

UI web

  1. Apri l'app Vision Dashboard e fai clic sull'icona a forma di lampadina nella barra di navigazione a sinistra per visualizzare la modelli disponibili.

    Per visualizzare i modelli di un altro progetto, seleziona il progetto dal menu a discesa in alto a destra nella barra del titolo.

  2. Fai clic sulla riga corrispondente al modello che vuoi utilizzare per etichettare le immagini.

  3. Fai clic sul pulsante Testa e Usa Tab appena sotto la barra del titolo.

  4. Nella sezione Utilizza il tuo modello, seleziona l'opzione Core ML. Dopo il giorno Selezionando l'opzione Core ML e specificando la posizione di esportazione Cloud Storage nella finestra laterale, fai clic su Esporta per esportare modello Edge.

    opzione di esportazione del modello Core ML opzione di esportazione del modello Core ML

REST

Nel campo "modelFormat", specifica "core_ml".

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: l'ID del tuo progetto Google Cloud.
  • model-id: l'ID del modello, dalla quando hai creato il modello. L'ID è l'ultimo elemento del nome del modello. Ad esempio:
    • nome modello: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID modello: IOD4412217016962778756
  • output-storage-bucket: uno Google Cloud Storage bucket/directory in cui salvare i file di output, espressi nel seguente formato: gs://bucket/directory/. L'utente che ha inviato la richiesta deve disporre dell'autorizzazione di scrittura per di sincronizzare la directory di una VM con un bucket.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

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

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

$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

Dovresti ricevere una risposta JSON simile alla seguente:

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

Come risultato vedrai una struttura di cartelle nella directory che hai fornito (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La cartella creata avrà seguente formato generale (timestamp nel formato ISO-8601):

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

Ad esempio:

  • 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

La cartella contiene un modello Core ML denominato model.mlmodel e una File dell'etichetta dict.txt.

Utilizzo del modello esportato

Dopo aver esportato il modello in un bucket Google Cloud Storage, puoi eseguire il deployment del tuo modello AutoML Vision Edge su dispositivi iOS.

Esporta in un contenitore

UI web

  1. Apri l'app Vision Dashboard e fai clic sull'icona a forma di lampadina nella barra di navigazione a sinistra per visualizzare la modelli disponibili.

    Per visualizzare i modelli di un altro progetto, seleziona il progetto dal nell'elenco a discesa in alto a destra della barra del titolo.

  2. Fai clic sulla riga corrispondente al modello che vuoi utilizzare per etichettare le immagini.

  3. Fai clic sul pulsante Testa e Usa Tab appena sotto la barra del titolo.

  4. Nella sezione Utilizza il tuo modello, seleziona l'opzione Contenitore. Dopo aver selezionato l'opzione Contenitore e specificato la posizione di esportazione in Cloud Storage nella finestra laterale, fai clic su Esporta per esportare modello Edge.

    opzione di esportazione in contenitore opzione di esportazione in contenitore

REST

Nel campo "modelFormat", specifica "tf-saved-model".

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: l'ID del tuo progetto Google Cloud.
  • model-id: l'ID del modello, dalla quando hai creato il modello. L'ID è l'ultimo elemento del nome del modello. Ad esempio:
    • nome modello: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID modello: IOD4412217016962778756
  • output-storage-bucket: uno Google Cloud Storage bucket/directory in cui salvare i file di output, espressi nel seguente formato: gs://bucket/directory/. L'utente che ha inviato la richiesta deve disporre dell'autorizzazione di scrittura per di sincronizzare la directory di una VM con un bucket.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

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

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

$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

Dovresti ricevere una risposta JSON simile alla seguente:

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

Come risultato vedrai una struttura di cartelle nella directory che hai fornito (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La cartella creata avrà seguente formato generale (timestamp nel formato ISO-8601):

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

Ad esempio:

  • 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

La cartella contiene un modello TensorFlow denominato saved_model.pb.

Utilizzo del modello esportato

Dopo aver esportato il modello in un bucket Google Cloud Storage, puoi utilizzare esportato per eseguire previsioni in un'immagine Docker. Per istruzioni, consulta il tutorial sui container al momento del deployment in un container.

Esporta in Edge TPU

UI web

  1. Apri l'app Dashboard di Vision e fai clic sull'icona a forma di lampadina nella barra di navigazione a sinistra per visualizzare la modelli disponibili.

    Per visualizzare i modelli di un altro progetto, seleziona il progetto dal menu a discesa in alto a destra nella barra del titolo.

  2. Seleziona la riga relativa al modello che vuoi utilizzare per etichettare le immagini.

  3. Seleziona il pulsante Testa e Usa Tab appena sotto la barra del titolo.

  4. Nella sezione Utilizza il tuo modello, seleziona l'opzione Coral. Dopo aver selezionato l'opzione Coral e specificato la posizione di esportazione in Cloud Storage nella finestra laterale, fai clic su Esporta per esportare modello Edge.

    opzione esporta coral (edgetpu tflite) opzione esporta coral (edgetpu tflite)

REST

Nel campo "modelFormat", specifica "edgetpu_tflite".

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: l'ID del tuo progetto Google Cloud.
  • model-id: l'ID del modello, dalla quando hai creato il modello. L'ID è l'ultimo elemento del nome del modello. Ad esempio:
    • nome modello: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID modello: IOD4412217016962778756
  • output-storage-bucket: uno Google Cloud Storage bucket/directory in cui salvare i file di output, espressi nel seguente formato: gs://bucket/directory/. L'utente che ha inviato la richiesta deve disporre dell'autorizzazione di scrittura per di sincronizzare la directory di una VM con un bucket.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

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

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

$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

Dovresti ricevere una risposta JSON simile alla seguente:

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

Come risultato vedrai una struttura di cartelle nella directory che hai fornito (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La cartella creata avrà seguente formato generale (timestamp nel formato ISO-8601):

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

Ad esempio:

  • 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

La cartella contiene un modello TensorFlow Lite denominato edgetpu_model.tflite, un file delle etichette denominato dict.txt e un file tflite_metadata.json.

Utilizzo del modello esportato

Per ulteriori informazioni sul deployment in Edge TPU, visita il sito documentazione su come eseguire un'inferenza su Edge TPU.

Esporta per il Web

UI web

  1. Apri Vision Dashboard e seleziona l'icona a forma di lampadina di lato barra di navigazione per visualizzare i modelli disponibili.

    Per visualizzare i modelli di un altro progetto, seleziona il progetto dal nell'elenco a discesa in alto a destra della barra del titolo.

  2. Seleziona la riga relativa al modello che vuoi utilizzare per etichettare le immagini.

  3. Seleziona il pulsante Testa e Usa Tab appena sotto la barra del titolo.

  4. Nella sezione Utilizza il tuo modello, seleziona l'opzione Tensorflow.js. Dopo aver selezionato l'opzione Tensorflow.js e specificato il percorso di esportazione su Cloud Storage nella finestra laterale, seleziona Esporta per esportare modello TensorFlow.js pronto per il web.

    opzione di esportazione di TensorFlow.js opzione di esportazione di TensorFlow.js

REST

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: l'ID del tuo progetto Google Cloud.
  • model-id: l'ID del modello, dalla quando hai creato il modello. L'ID è l'ultimo elemento del nome del modello. Ad esempio:
    • nome modello: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID modello: IOD4412217016962778756
  • output-storage-bucket: uno Google Cloud Storage bucket/directory in cui salvare i file di output, espressi nel seguente formato: gs://bucket/directory/. L'utente che ha inviato la richiesta deve disporre dell'autorizzazione di scrittura per di sincronizzare la directory di una VM con un bucket.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una delle seguenti opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

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

Salva il corpo della richiesta in un file denominato request.json. ed esegui questo comando:

$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

Dovresti ricevere una risposta JSON simile alla seguente:

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

Di conseguenza vedrai una cartella nella directory che hai fornito (USER_GCS_PATH). La cartella creata verrà denominata in base il timestamp nel formato /model-export/icn/tf_js-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ (ad esempio, tf_js-edge_model-2019-10-03T17:24:46.999Z).

La cartella contiene file binari (.bin), un file di etichette denominato dict.txt e un file model.json.

Esempio di cartella Tensorflow.js