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 in Tensorflow generico Formato Lite, TensorFlow generale o TensorFlow.js per il Web in un formato Google Cloud Percorso di archiviazione utilizzando l'API ExportModel.
Esporta in dispositivi
Modelli TensorFlow Lite
UI web
Apri l'interfaccia utente per il rilevamento di oggetti AutoML 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 dal menu a discesa in alto a destra nella barra del titolo.
Seleziona la riga relativa al modello che vuoi utilizzare per etichettare le immagini.
Seleziona il pulsante Testa e usa.
Nella sezione Usa il tuo modello, seleziona la scheda TF Lite. Si apre una finestra laterale "Usa il tuo modello sul dispositivo".
Nella finestra laterale, specifica il percorso di output di Google Cloud Storage. Dopo il giorno scegliendo la posizione di archiviazione per l'output del modello, seleziona Esporta per avviare l'operazione di esportazione del modello.
Dopo l'esportazione puoi selezionare l'opzione "Apri in Google Cloud Storage" nella stessa finestra per andare direttamente alla directory di esportazione in Google Cloud Storage.
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
- nome modello:
- 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/iod/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/iod/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
Ad esempio:
CLOUD_STORAGE_BUCKET/model-export/iod/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
CLOUD_STORAGE_BUCKET/model-export/iod/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.
Esporta in un contenitore
UI web
Apri l'interfaccia utente per il rilevamento di oggetti AutoML 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 dal menu a discesa in alto a destra nella barra del titolo.
Fai clic sulla riga corrispondente al modello che vuoi utilizzare per etichettare le immagini.
Seleziona il pulsante Testa e usa.
Nella sezione Usa il tuo modello, seleziona la scheda TF Lite. Si apre una finestra laterale "Usa il tuo modello sul dispositivo".
Nella finestra laterale, specifica il percorso di output di Google Cloud Storage. Dopo il giorno scegliendo la posizione di archiviazione per l'output del modello, seleziona Esporta per avviare l'operazione di esportazione del modello.
Dopo l'esportazione puoi selezionare l'opzione "Apri in Google Cloud Storage" nella stessa finestra per andare direttamente alla directory di esportazione in Google Cloud Storage.
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
- nome modello:
- 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/iod/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/iod/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
Ad esempio:
CLOUD_STORAGE_BUCKET/model-export/iod/tf-saved-model-DATASET_NAME-2019-07-22T21:25:35.135Z
CLOUD_STORAGE_BUCKET/model-export/iod/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 per il Web
UI web
-
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.
-
Seleziona la riga relativa al modello che vuoi utilizzare per etichettare le immagini.
-
Seleziona il pulsante Testa e Usa Tab 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 specificato il percorso di esportazione su Cloud Storage nella finestra laterale, seleziona Esporta per esportare 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
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
- nome modello:
- 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
.