Questa pagina descrive come utilizzare Gemini Enterprise Agent Platform per esportare i modelli AutoML Edge per immagini in Cloud Storage.
Per informazioni sull'esportazione dei modelli tabulari, vedi Esportazione di un modello tabulare AutoML.
Introduzione
Dopo aver addestrato un modello AutoML Edge, in alcuni casi puoi esportarlo in formati diversi, a seconda di come vuoi utilizzarlo. I file del modello esportati vengono salvati in un bucket Cloud Storage e possono essere utilizzati per la previsione nell'ambiente che preferisci.
Non puoi utilizzare un modello Edge in Agent Platform per fornire previsioni; devi eseguire il deployment del modello Edge su un dispositivo esterno per ottenere le previsioni.
Esportazione di un modello
Utilizza i seguenti esempi di codice per identificare un modello AutoML Edge, specifica una posizione di archiviazione dei file di output e invia la richiesta di esportazione del modello.
Immagine
Seleziona la scheda di seguito relativa al tuo obiettivo:
Classificazione
I modelli di classificazione delle immagini AutoML Edge addestrati possono essere esportati nei seguenti formati:
- TF Lite: esporta il modello come pacchetto TF Lite per eseguirlo su dispositivi edge o mobili.
- TF Lite Edge TPU: esporta il modello come pacchetto TF Lite per eseguirlo su dispositivi Edge TPU.
- Container: esporta il modello come modello salvato TF per eseguirlo su un container Docker.
- Core ML: esporta un file .mlmodel per eseguire il modello su dispositivi iOS e macOS.
- Tensorflow.js: esporta il modello come pacchetto TensorFlow.js per eseguirlo nel browser e in Node.js.
Seleziona la scheda qui sotto per la tua lingua o il tuo ambiente:
Console
- Nella console Google Cloud , nella sezione Piattaforma dell'agente, vai alla pagina Modelli.
- Fai clic sul numero di versione del modello AutoML Edge che vuoi esportare per aprire la relativa pagina dei dettagli.
- Fai clic su Esporta.
- Nella finestra laterale Esporta modello, specifica la posizione in Cloud Storage in cui archiviare l'output dell'esportazione del modello Edge.
- Fai clic su Esporta.
- Fai clic su Fine per chiudere la finestra laterale Esporta modello.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- LOCATION: la posizione del progetto.
- PROJECT: Il tuo [ID progetto](/resource-manager/docs/creating-managing-projects#identifiers). .
- MODEL_ID: il numero ID del modello AutoML Edge addestrato che stai esportando.
- EXPORT_FORMAT: il tipo di modello Edge che stai esportando. Per questo obiettivo, le
opzioni sono:
tflite(TF Lite) - Esporta il modello come pacchetto TF Lite per eseguirlo su dispositivi edge o mobili.edgetpu-tflite(Edge TPU TF Lite) - Esporta il modello come pacchetto TF Lite per eseguirlo su dispositivi Edge TPU.tf-saved-model(Container) - Esporta il modello come modello salvato TF per eseguirlo su un container Docker.core-ml(Core ML) - Esporta un file .mlmodel per eseguire il modello su dispositivi iOS e macOS.tf-js(Tensorflow.js) - Esporta il modello come pacchetto TensorFlow.js per eseguirlo nel browser e in Node.js.
- OUTPUT_BUCKET: il percorso della directory del bucket Cloud Storage in cui vuoi archiviare i file del modello Edge.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID:export
Corpo JSON della richiesta:
{
"outputConfig": {
"exportFormatId": "EXPORT_FORMAT",
"artifactDestination": {
"outputUriPrefix": "gs://OUTPUT_BUCKET/"
}
}
}
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID:export"
PowerShell
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID:export" | Select-Object -Expand Content
La risposta contiene informazioni sulle specifiche e sul OPERATION_ID.
Puoi ottenere lo stato dell'operazione di esportazione per vedere quando termina.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Agent Platform per l'utilizzo delle librerie client.
Per eseguire l'autenticazione in Agent Platform, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Agent Platform per l'utilizzo delle librerie client.
Per eseguire l'autenticazione in Agent Platform, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la Python documentazione di riferimento dell'API.
Classificazione
I modelli di classificazione delle immagini AutoML Edge addestrati possono essere esportati nei seguenti formati:
- TF Lite: esporta il modello come pacchetto TF Lite per eseguirlo su dispositivi edge o mobili.
- TF Lite Edge TPU: esporta il modello come pacchetto TF Lite per eseguirlo su dispositivi Edge TPU.
- Container: esporta il modello come modello salvato TF per eseguirlo su un container Docker.
- Core ML: esporta un file .mlmodel per eseguire il modello su dispositivi iOS e macOS.
- Tensorflow.js: esporta il modello come pacchetto TensorFlow.js per eseguirlo nel browser e in Node.js.
Seleziona la scheda qui sotto per la tua lingua o il tuo ambiente:
Console
- Nella console Google Cloud , nella sezione Piattaforma dell'agente, vai alla pagina Modelli.
- Fai clic sul numero di versione del modello AutoML Edge che vuoi esportare per aprire la relativa pagina dei dettagli.
- Fai clic su Esporta.
- Nella finestra laterale Esporta modello, specifica la posizione in Cloud Storage in cui archiviare l'output dell'esportazione del modello Edge.
- Fai clic su Esporta.
- Fai clic su Fine per chiudere la finestra laterale Esporta modello.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- LOCATION: la posizione del progetto.
- PROJECT: Il tuo [ID progetto](/resource-manager/docs/creating-managing-projects#identifiers). .
- MODEL_ID: il numero ID del modello AutoML Edge addestrato che stai esportando.
- EXPORT_FORMAT: il tipo di modello Edge che stai esportando. Per questo obiettivo, le
opzioni sono:
tflite(TF Lite) - Esporta il modello come pacchetto TF Lite per eseguirlo su dispositivi edge o mobili.edgetpu-tflite(Edge TPU TF Lite) - Esporta il modello come pacchetto TF Lite per eseguirlo su dispositivi Edge TPU.tf-saved-model(Container) - Esporta il modello come modello salvato TF per eseguirlo su un container Docker.core-ml(Core ML) - Esporta un file .mlmodel per eseguire il modello su dispositivi iOS e macOS.tf-js(Tensorflow.js) - Esporta il modello come pacchetto TensorFlow.js per eseguirlo nel browser e in Node.js.
- OUTPUT_BUCKET: il percorso della directory del bucket Cloud Storage in cui vuoi archiviare i file del modello Edge.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID:export
Corpo JSON della richiesta:
{
"outputConfig": {
"exportFormatId": "EXPORT_FORMAT",
"artifactDestination": {
"outputUriPrefix": "gs://OUTPUT_BUCKET/"
}
}
}
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID:export"
PowerShell
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID:export" | Select-Object -Expand Content
La risposta contiene informazioni sulle specifiche e sul OPERATION_ID.
Puoi ottenere lo stato dell'operazione di esportazione per vedere quando termina.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Agent Platform per l'utilizzo delle librerie client.
Per eseguire l'autenticazione in Agent Platform, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Agent Platform per l'utilizzo delle librerie client.
Per eseguire l'autenticazione in Agent Platform, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la Python documentazione di riferimento dell'API.
Rilevamento di oggetti
I modelli di rilevamento degli oggetti nelle immagini AutoML Edge addestrati possono essere esportati nei seguenti formati:
- TF Lite: esporta il modello come pacchetto TF Lite per eseguirlo su dispositivi edge o mobili.
- Container: esporta il modello come modello salvato TF per eseguirlo su un container Docker.
- Tensorflow.js: esporta il modello come pacchetto TensorFlow.js per eseguirlo nel browser e in Node.js.
Seleziona la scheda qui sotto per la tua lingua o il tuo ambiente:
Console
- Nella console Google Cloud , nella sezione Piattaforma dell'agente, vai alla pagina Modelli.
- Fai clic sul numero di versione del modello AutoML Edge che vuoi esportare per aprire la relativa pagina dei dettagli.
- Seleziona la scheda Deployment e test per visualizzare i formati di esportazione disponibili.
- Seleziona il formato del modello di esportazione che preferisci dalla sezione Utilizza il modello ottimizzato per l'edge.
- Nella finestra laterale Esporta modello, specifica la posizione in Cloud Storage in cui archiviare l'output dell'esportazione del modello Edge.
- Fai clic su Esporta.
- Fai clic su Fine per chiudere la finestra laterale Esporta modello.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- LOCATION: la posizione del progetto.
- PROJECT: .
- MODEL_ID: il numero ID del modello AutoML Edge addestrato che stai esportando.
- EXPORT_FORMAT: il tipo di modello Edge che stai esportando. Per questo obiettivo, le
opzioni sono:
tflite(TF Lite) - Esporta il modello come pacchetto TF Lite per eseguirlo su dispositivi edge o mobili.tf-saved-model(Container) - Esporta il modello come modello salvato TF per eseguirlo su un container Docker.tf-js(Tensorflow.js) - Esporta il modello come pacchetto TensorFlow.js per eseguirlo nel browser e in Node.js.
- OUTPUT_BUCKET: il percorso della directory del bucket Cloud Storage in cui vuoi archiviare i file del modello Edge.
Metodo HTTP e URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID:export
Corpo JSON della richiesta:
{
"outputConfig": {
"exportFormatId": "EXPORT_FORMAT",
"artifactDestination": {
"outputUriPrefix": "gs://OUTPUT_BUCKET/"
}
}
}
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID:export"
PowerShell
Salva il corpo della richiesta in un file denominato request.json,
quindi esegui il comando seguente:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID:export" | Select-Object -Expand Content
La risposta contiene informazioni sulle specifiche e sul OPERATION_ID.
Puoi ottenere lo stato dell'operazione di esportazione per vedere quando termina.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di Agent Platform per l'utilizzo delle librerie client.
Per eseguire l'autenticazione in Agent Platform, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di Agent Platform per l'utilizzo delle librerie client.
Per eseguire l'autenticazione in Agent Platform, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.
Python
Per scoprire come installare o aggiornare l'SDK Vertex AI Python, consulta Installare l'SDK Vertex AI Python. Per saperne di più, consulta la Python documentazione di riferimento dell'API.
Recupera lo stato dell'operazione
Immagine
Utilizza il seguente codice per ottenere lo stato dell'operazione di esportazione. Questo codice è uguale per tutti gli scopi:
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- LOCATION: la posizione del progetto.
- PROJECT: .
- OPERATION_ID:l'ID dell'operazione di destinazione. Questo ID è in genere contenuto nella risposta alla richiesta originale.
Metodo HTTP e URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/operations/OPERATION_ID
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/operations/OPERATION_ID"
PowerShell
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/operations/OPERATION_ID" | Select-Object -Expand Content
{
"name": "projects/PROJECT/locations/LOCATION/models/MODEL_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.ExportModelOperationMetadata",
"genericMetadata": {
"createTime": "2020-10-12T20:53:40.130785Z",
"updateTime": "2020-10-12T20:53:40.793983Z"
},
"outputInfo": {
"artifactOutputUri": "gs://OUTPUT_BUCKET/model-MODEL_ID/EXPORT_FORMAT/YYYY-MM-DDThh:mm:ss.sssZ"
}
},
"done": true,
"response": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.ExportModelResponse"
}
}
File di output
Immagine
Seleziona la scheda sottostante per il formato del modello:
TF Lite
Il OUTPUT_BUCKET specificato nella richiesta determina dove vengono archiviati i file di output. Il formato della directory in cui sono archiviati i file di output è il seguente:
- gs://OUTPUT_BUCKET/model-MODEL_ID/tflite/YYYY-MM-DDThh:mm:ss.sssZ/
File:
model.tflite: un file contenente una versione del modello pronta per essere utilizzata con TensorFlow Lite.
Edge TPU
Il OUTPUT_BUCKET specificato nella richiesta determina dove vengono archiviati i file di output. Il formato della directory in cui sono archiviati i file di output è il seguente:
- gs://OUTPUT_BUCKET/model-MODEL_ID/edgetpu-tflite/YYYY-MM-DDThh:mm:ss.sssZ/
File:
edgetpu_model.tflite: Un file contenente una versione del modello per TensorFlow Lite, passato attraverso il compilatore Edge TPU per essere compatibile con Edge TPU.
Container
Il OUTPUT_BUCKET specificato nella richiesta determina dove vengono archiviati i file di output. Il formato della directory in cui sono archiviati i file di output è il seguente:
- gs://OUTPUT_BUCKET/model-MODEL_ID/tf-saved-model/YYYY-MM-DDThh:mm:ss.sssZ/
File:
saved_model.pb: un file buffer di protocollo contenente la definizione del grafo e i pesi del modello.
Core ML
Il OUTPUT_BUCKET specificato nella richiesta determina dove vengono archiviati i file di output. Il formato della directory in cui sono archiviati i file di output è il seguente:
- gs://OUTPUT_BUCKET/model-MODEL_ID/core-ml/YYYY-MM-DDThh:mm:ss.sssZ/
File:
dict.txt: un file di etichette. Ogni riga del file di etichettedict.txtrappresenta un'etichetta delle previsioni restituite dal modello, nello stesso ordine in cui sono state richieste.Esempio
dict.txtroses daisy tulips dandelion sunflowers
model.mlmodel: un file che specifica un modello Core ML.
Tensorflow.js
Il OUTPUT_BUCKET specificato nella richiesta determina dove vengono archiviati i file di output. Il formato della directory in cui sono archiviati i file di output è il seguente:
- gs://OUTPUT_BUCKET/model-MODEL_ID/tf-js/YYYY-MM-DDThh:mm:ss.sssZ/
File:
dict.txt: un file di etichette. Ogni riga del file di etichettedict.txtrappresenta un'etichetta delle previsioni restituite dal modello, nello stesso ordine in cui sono state richieste.Esempio
dict.txtroses daisy tulips dandelion sunflowers
group1-shard1of3.bin: un file binario.group1-shard2of3.bin: un file binario.group1-shard3of3.bin: un file binario.model.json: un file JSON che rappresenta un modello.Esempio
model.json(abbreviato per chiarezza){ "format": "graph-model", "generatedBy": "2.4.0", "convertedBy": "TensorFlow.js Converter v1.7.0", "userDefinedMetadata": { "signature": { "inputs": { "image:0": { "name": "image:0", "dtype": "DT_FLOAT", "tensorShape": { "dim": [ { "size": "1" }, { "size": "224" }, { "size": "224" }, { "size": "3" } ] } } }, "outputs": { "scores:0": { "name": "scores:0", "dtype": "DT_FLOAT", "tensorShape": { "dim": [ { "size": "1" }, { "size": "5" } ] } } } } }, "modelTopology": { "node": [ { "name": "image", "op": "Placeholder", "attr": { "dtype": { "type": "DT_FLOAT" }, "shape": { "shape": { "dim": [ { "size": "1" }, { "size": "224" }, { "size": "224" }, { "size": "3" } ] } } } }, { "name": "mnas_v4_a_1/feature_network/feature_extractor/Mean/reduction_indices", "op": "Const", "attr": { "value": { "tensor": { "dtype": "DT_INT32", "tensorShape": { "dim": [ { "size": "2" } ] } } }, "dtype": { "type": "DT_INT32" } } }, ... { "name": "scores", "op": "Identity", "input": [ "Softmax" ], "attr": { "T": { "type": "DT_FLOAT" } } } ], "library": {}, "versions": {} }, "weightsManifest": [ { "paths": [ "group1-shard1of3.bin", "group1-shard2of3.bin", "group1-shard3of3.bin" ], "weights": [ { "name": "mnas_v4_a_1/feature_network/feature_extractor/Mean/reduction_indices", "shape": [ 2 ], "dtype": "int32" }, { "name": "mnas_v4_a/output/fc/tf_layer/kernel", "shape": [ 1280, 5 ], "dtype": "float32" }, ... { "name": "mnas_v4_a_1/feature_network/lead_cell_17/op_0/conv2d_0/Conv2D_weights", "shape": [ 1, 1, 320, 1280 ], "dtype": "float32" }, { "name": "mnas_v4_a_1/feature_network/cell_14/op_0/expand_0/Conv2D_bn_offset", "shape": [ 1152 ], "dtype": "float32" } ] } ] }