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:
- TensorFlow Lite
- TensorFlow SavedModel da utilizzare su un container Docker
- TensorFlow compilato con TPU Edge
- TensorFlow.js per il web
Esporta in dispositivi
Modelli TensorFlow Lite
UI web
Apri il 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 progetto diverso, seleziona il progetto dall'elenco a discesa in alto a destra della barra del titolo.
Fai clic sulla riga corrispondente al modello che vuoi utilizzare per etichettare le immagini.
Fai clic sulla scheda Testa e utilizza appena sotto la barra del titolo.
Nella sezione Utilizza il tuo modello, seleziona l'opzione TF Lite. Dopo aver selezionato l'opzione TF Lite e specificato la posizione di esportazione in Cloud Storage nella finestra laterale, seleziona Esporta per esportare il modello Edge 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
risposta al momento della creazione del 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
- nome modello:
- output-storage-bucket: un bucket/directory Google Cloud Storage in cui salvare i file di output, espressi nel seguente formato:
gs://bucket/directory/
. L'utente richiedente deve disporre dell'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:
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" } } } }
Di conseguenza, vedrai una struttura di cartelle nella directory che hai fornito (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La struttura di cartelle creata 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 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 del modello AutoML Vision Edge su dispositivi Android, dispositivi iOS o Raspberry Pi 3.
Modelli ML di base
UI web
Apri il 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 progetto diverso, seleziona il progetto dall'elenco a discesa in alto a destra della barra del titolo.
Fai clic sulla riga corrispondente al modello che vuoi utilizzare per etichettare le immagini.
Fai clic sulla scheda Testa e utilizza appena sotto la barra del titolo.
Nella sezione Utilizza il tuo modello, seleziona l'opzione Core ML. Dopo aver selezionato l'opzione Core ML e specificato la posizione di esportazione in Cloud Storage nella finestra laterale, fai clic su Esporta per esportare il modello Edge.
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 modello:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID modello:
IOD4412217016962778756
- nome modello:
- output-storage-bucket: un bucket/directory Google Cloud Storage in cui salvare i file di output, espressi nel seguente formato:
gs://bucket/directory/
. L'utente richiedente deve disporre dell'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:
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/" } } } }
Di conseguenza, vedrai una struttura di cartelle nella directory che hai fornito (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La struttura di cartelle creata 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 contenitore
UI web
Apri il 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 progetto diverso, seleziona il progetto dall'elenco a discesa in alto a destra della barra del titolo.
Fai clic sulla riga corrispondente al modello che vuoi utilizzare per etichettare le immagini.
Fai clic sulla scheda Testa e utilizza appena sotto la barra del titolo.
Nella sezione Utilizza il tuo modello, seleziona l'opzione Contenitore. Dopo aver selezionato l'opzione Container e aver specificato la posizione di esportazione su Cloud Storage nella finestra laterale, fai clic su Esporta per esportare il modello Edge.
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 modello:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID modello:
IOD4412217016962778756
- nome modello:
- output-storage-bucket: un bucket/directory Google Cloud Storage in cui salvare i file di output, espressi nel seguente formato:
gs://bucket/directory/
. L'utente richiedente deve disporre dell'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:
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" } } } }
Di conseguenza, vedrai una struttura di cartelle nella directory che hai fornito (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La struttura di cartelle creata 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 utilizzare il modello esportato per effettuare previsioni in un'immagine Docker. Per istruzioni sul deployment in un container, consulta il tutorial sui container.
Esporta in Edge TPU
UI web
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 progetto diverso, seleziona il progetto dall'elenco a discesa in alto a destra della barra del titolo.
Seleziona la riga relativa al modello che vuoi utilizzare per etichettare le immagini.
Seleziona la scheda Testa e utilizza appena sotto la barra del titolo.
Nella sezione Utilizza il tuo modello, seleziona l'opzione Coral. Dopo aver selezionato l'opzione Coral e aver specificato la posizione di esportazione su Cloud Storage nella finestra laterale, fai clic su Esporta per esportare il modello Edge.
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 modello:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID modello:
IOD4412217016962778756
- nome modello:
- output-storage-bucket: un bucket/directory Google Cloud Storage in cui salvare i file di output, espressi nel seguente formato:
gs://bucket/directory/
. L'utente richiedente deve disporre dell'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:
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/" } } } }
Di conseguenza, vedrai una struttura di cartelle nella directory che hai fornito (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La struttura di cartelle creata 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 etichette denominato dict.txt
e un file tflite_metadata.json
.
Utilizzo del modello esportato
Per ulteriori informazioni sul deployment in Edge TPU, consulta la documentazione ufficiale di Coral su come eseguire un'inferenza su Edge TPU.
Esporta per il Web
UI web
-
Apri il 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 progetto diverso, seleziona il progetto dall'elenco a discesa in alto a destra della barra del titolo.
-
Seleziona la riga relativa al modello che vuoi utilizzare per etichettare le immagini.
-
Seleziona la scheda Testa e utilizza appena sotto la barra del titolo.
-
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 in Cloud Storage nella finestra laterale, seleziona Esporta per esportare il tuo modello TensorFlow.js pronto per il web.
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 modello:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID modello:
IOD4412217016962778756
- nome modello:
- output-storage-bucket: un bucket/directory Google Cloud Storage in cui salvare i file di output, espressi nel seguente formato:
gs://bucket/directory/
. L'utente richiedente deve disporre dell'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:
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 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 etichette denominato dict.txt
e un file model.json
.
![Esempio di cartella Tensorflow.js](https://cloud.google.com/static/vision/automl/docs/images/tensorflow_js_export_folder.png?authuser=19&hl=it)