Esportazione dei modelli Edge

Dopo aver creato (addestrato) un modello, puoi esportare il modello personalizzato.

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

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

Esporta su dispositivi

Modelli TensorFlow Lite

UI web

  1. Apri l'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 dall'elenco a discesa in alto a destra nella barra del titolo.

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

  3. Fai clic sulla scheda Testa e utilizza appena sotto la barra del titolo.

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

    opzione Esporta modello TF Lite aggiornata opzione Esporta modello TF Lite aggiornata

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 risposta al momento della creazione del modello. L'ID è l'ultimo elemento del nome del modello. Ad esempio:
    • nome del modello: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID modello: IOD4412217016962778756
  • output-storage-bucket: una directory o un bucket Google Cloud Storage in cui salvare i file di output, espresso nel seguente formato: gs://bucket/directory/. L'utente richiedente deve avere l'autorizzazione di scrittura per il 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:

arricciatura

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

Di conseguenza vedrai una struttura di cartelle nella directory fornita (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La struttura delle cartelle create avrà il seguente formato generale (timestamp in 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 etichetta 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 del modello AutoML Vision Edge su dispositivi Android, dispositivi iOS o Raspber Pi 3.

Modelli ML principali

UI web

  1. Apri 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 dall'elenco a discesa in alto a destra nella barra del titolo.

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

  3. Fai clic sulla scheda Testa e utilizza appena sotto la barra del titolo.

  4. Nella sezione Utilizza il modello, seleziona l'opzione Core ML. Dopo aver selezionato l'opzione Core ML e aver specificato la posizione di esportazione in Cloud Storage nella finestra laterale, fai clic su Esporta per esportare il 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 risposta al momento della creazione del modello. L'ID è l'ultimo elemento del nome del modello. Ad esempio:
    • nome del modello: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID modello: IOD4412217016962778756
  • output-storage-bucket: una directory o un bucket Google Cloud Storage in cui salvare i file di output, espresso nel seguente formato: gs://bucket/directory/. L'utente richiedente deve avere l'autorizzazione di scrittura per il 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:

arricciatura

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

Di conseguenza vedrai una struttura di cartelle nella directory fornita (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La struttura delle cartelle create avrà il seguente formato generale (timestamp in 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 un file di etichette dict.txt.

Utilizzo del modello esportato

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

Esporta in un container

UI web

  1. Apri 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 dall'elenco a discesa in alto a destra nella barra del titolo.

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

  3. Fai clic sulla scheda Testa e utilizza appena sotto la barra del titolo.

  4. Nella sezione Utilizza il modello, seleziona l'opzione Contenitore. Dopo aver selezionato l'opzione Contenitore e aver specificato la posizione di esportazione in Cloud Storage nella finestra laterale, fai clic su Esporta per esportare il 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 risposta al momento della creazione del modello. L'ID è l'ultimo elemento del nome del modello. Ad esempio:
    • nome del modello: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID modello: IOD4412217016962778756
  • output-storage-bucket: una directory o un bucket Google Cloud Storage in cui salvare i file di output, espresso nel seguente formato: gs://bucket/directory/. L'utente richiedente deve avere l'autorizzazione di scrittura per il 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:

arricciatura

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

Di conseguenza vedrai una struttura di cartelle nella directory fornita (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La struttura delle cartelle create avrà il seguente formato generale (timestamp in 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 utilizzarlo per fare previsioni in un'immagine Docker. Consulta il tutorial sui container per istruzioni sul deployment in un container.

Esporta in Edge TPU

UI web

  1. Apri la Dashboard di Vision 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 dall'elenco a discesa in alto a destra nella barra del titolo.

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

  3. Seleziona la scheda Testa e utilizza appena sotto la barra del titolo.

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

    opzione esportazione coral (edgetpu tflite) opzione esportazione 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 risposta al momento della creazione del modello. L'ID è l'ultimo elemento del nome del modello. Ad esempio:
    • nome del modello: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID modello: IOD4412217016962778756
  • output-storage-bucket: una directory o un bucket Google Cloud Storage in cui salvare i file di output, espresso nel seguente formato: gs://bucket/directory/. L'utente richiedente deve avere l'autorizzazione di scrittura per il 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:

arricciatura

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

Di conseguenza vedrai una struttura di cartelle nella directory fornita (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La struttura delle cartelle create avrà il seguente formato generale (timestamp in 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 di etichetta denominato dict.txt e un file tflite_metadata.json.

Utilizzo del modello esportato

Per ulteriori informazioni su come eseguire il deployment su Edge TPU, consulta la documentazione ufficiale di Coral 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 nella barra di navigazione laterale per visualizzare i modelli disponibili.

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

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

  3. Seleziona la scheda Testa e utilizza 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 aver specificato il percorso di esportazione su Cloud Storage nella finestra laterale, seleziona Esporta per esportare il modello TensorFlow.js pronto per il web.

    opzione di esportazione TensorFlow.js opzione di esportazione 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 risposta al momento della creazione del modello. L'ID è l'ultimo elemento del nome del modello. Ad esempio:
    • nome del modello: projects/project-id/locations/location-id/models/IOD4412217016962778756
    • ID modello: IOD4412217016962778756
  • output-storage-bucket: una directory o un bucket Google Cloud Storage in cui salvare i file di output, espresso nel seguente formato: gs://bucket/directory/. L'utente richiedente deve avere l'autorizzazione di scrittura per il 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:

arricciatura

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

Vedrai una cartella nella directory che hai fornito (USER_GCS_PATH). La cartella creata verrà denominata in base al 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 etichetta denominato dict.txt e un file model.json.

Esempio di cartella TensorFlow.js