Después de crear (entrenar) un modelo, puedes exportar tu modelo personalizado.
Después de exportar el modelo, puedes implementarlo en un dispositivo.
Puedes exportar un modelo de clasificación de imágenes en formato genérico de Tensorflow Lite, en un formato general de TensorFlow o en un formato de TensorFlow.js para la Web a una ubicación de Google Cloud Storage mediante la API de ExportModel.
Exporta a dispositivos
Modelos de TensorFlow Lite
IU web
Abre la IU de la detección de objetos de Cloud AutoML Vision y haz clic en el ícono de la bombilla ubicado en la barra de navegación izquierda para ver los modelos disponibles.
Para ver los de un proyecto diferente, selecciónalo de la lista desplegable en la parte superior derecha de la barra de título.
Selecciona la fila del modelo que deseas usar para etiquetar las imágenes.
Selecciona la pestaña Probar y usar (Test & use).
En la sección Use your model (Usa tu modelo), selecciona la tarjeta TF Lite. Se abrirá la ventana lateral “Usa tu modelo local”.
En la ventana lateral, especifica la ubicación de la salida en Google Cloud Storage. Después de elegir la ubicación de almacenamiento de la salida del modelo, selecciona Export (Exportar) para comenzar la operación de exportación del modelo.
Después de exportar, puedes seleccionar la opción “Abrir en Google Cloud Storage” en la misma ventana para ir directamente al directorio de exportación en Google Cloud Storage.
REST
En el campo "modelFormat"
, especifica "tflite"
(valor predeterminado).
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto de GCP.
- model-id: Es el ID del modelo, que se muestra en la respuesta que recibiste cuando lo creaste. El ID es el último elemento del nombre del modelo.
Por ejemplo:
- Nombre del modelo:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID del modelo:
IOD4412217016962778756
- Nombre del modelo:
- output-storage-bucket: Es un depósito o directorio de Google Cloud Storage para guardar archivos de salida, que se expresa en el siguiente formato:
gs://bucket/directory/
. El usuario que realice la solicitud debe tener permiso de escritura en el bucket.
Método HTTP y URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export
Cuerpo JSON de la solicitud:
{ "outputConfig": { "modelFormat": "tflite", "gcsDestination": { "outputUriPrefix": "OUTPUT_STORAGE_BUCKET/" }, } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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" } } } }
Como resultado, verás una estructura de carpetas en el directorio que proporcionaste (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La estructura de carpetas creada tendrá el siguiente formato general (marca de tiempo en formato ISO-8601):
CLOUD_STORAGE_BUCKET/model-export/iod/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
Por ejemplo:
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 carpeta contiene un modelo de TensorFlow Lite llamado model.tflite
, un archivo de etiquetas llamado dict.txt
y un archivo tflite_metadata.json
.
Usa el modelo exportado
Después de exportar tu modelo a un depósito de Google Cloud Storage, puedes implementar el modelo de AutoML Vision Edge en dispositivos Android, dispositivos iOS o Raspberry Pi 3.
Exporta a un contenedor
IU web
Abre la IU de la detección de objetos de Cloud AutoML Vision y haz clic en el ícono de la bombilla ubicado en la barra de navegación izquierda para ver los modelos disponibles.
Para ver los de un proyecto diferente, selecciónalo de la lista desplegable en la parte superior derecha de la barra de título.
Haz clic en la fila del modelo que deseas usar para etiquetar tus imágenes.
Selecciona la pestaña Probar y usar (Test & use).
En la sección Use your model (Usa tu modelo), selecciona la tarjeta TF Lite. Se abrirá la ventana lateral “Usa tu modelo local”.
En la ventana lateral, especifica la ubicación de la salida en Google Cloud Storage. Después de elegir la ubicación de almacenamiento de la salida del modelo, selecciona Export (Exportar) para comenzar la operación de exportación del modelo.
Después de exportar, puedes seleccionar la opción “Abrir en Google Cloud Storage” en la misma ventana para ir directamente al directorio de exportación en Google Cloud Storage.
REST
En el campo "modelFormat"
, especifica "tf-saved-model"
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto de GCP.
- model-id: Es el ID del modelo, que se muestra en la respuesta que recibiste cuando lo creaste. El ID es el último elemento del nombre del modelo.
Por ejemplo:
- Nombre del modelo:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID del modelo:
IOD4412217016962778756
- Nombre del modelo:
- output-storage-bucket: Es un depósito o directorio de Google Cloud Storage para guardar archivos de salida, que se expresa en el siguiente formato:
gs://bucket/directory/
. El usuario que realice la solicitud debe tener permiso de escritura en el bucket.
Método HTTP y URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export
Cuerpo JSON de la solicitud:
{ "outputConfig": { "modelFormat": "tf-saved-model", "gcsDestination": { "outputUriPrefix": "OUTPUT_STORAGE_BUCKET/" }, } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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" } } } }
Como resultado, verás una estructura de carpetas en el directorio que proporcionaste (CLOUD_STORAGE_BUCKET/[DIRECTORY]). La estructura de carpetas creada tendrá el siguiente formato general (marca de tiempo en formato ISO-8601):
CLOUD_STORAGE_BUCKET/model-export/iod/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
Por ejemplo:
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 carpeta contiene un modelo de TensorFlow llamado saved_model.pb
.
Usa el modelo exportado
Después de exportar el modelo a un bucket de Google Cloud Storage, puedes usarlo para hacer predicciones en una imagen de Docker. Consulta el Instructivo sobre contenedores a fin de obtener instrucciones para implementar en un contenedor.
Exporta para la Web
IU web
-
Abre Vision Dashboard y selecciona el ícono de la bombilla en la barra de navegación lateral para ver los modelos disponibles.
Para ver los modelos de un proyecto diferente, selecciona el proyecto de la lista desplegable en la parte superior derecha de la barra de título.
-
Selecciona la fila del modelo que deseas usar para etiquetar las imágenes.
-
Selecciona la pestaña Probar y usar, que se encuentra justo debajo de la barra de título.
-
En la sección Usa tu modelo, selecciona la opción Tensorflow.js. Después de seleccionar la opción Tensorflow.js y especificar la ubicación de exportación en Cloud Storage en la ventana lateral, selecciona Exportar a fin de exportar el modelo de TensorFlow.js listo para la Web.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto de GCP.
- model-id: Es el ID del modelo, que se muestra en la respuesta que recibiste cuando lo creaste. El ID es el último elemento del nombre del modelo.
Por ejemplo:
- Nombre del modelo:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID del modelo:
IOD4412217016962778756
- Nombre del modelo:
- output-storage-bucket: Es un depósito o directorio de Google Cloud Storage para guardar archivos de salida, que se expresa en el siguiente formato:
gs://bucket/directory/
. El usuario que realice la solicitud debe tener permiso de escritura en el bucket.
Método HTTP y URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID:export
Cuerpo JSON de la solicitud:
{ "outputConfig": { "modelFormat": "tf_js", "gcsDestination": { "outputUriPrefix": "OUTPUT_STORAGE_BUCKET/" }, } }
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json
y ejecuta el siguiente 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
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{ "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" } } } }
Como resultado, verás una carpeta en el directorio que proporcionaste (USER_GCS_PATH). La carpeta creada se nombrará según la marca de tiempo en el formato /model-export/icn/tf_js-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ
(por ejemplo, tf_js-edge_model-2019-10-03T17:24:46.999Z
).
La carpeta contiene archivos binarios (.bin
), un archivo de etiquetas llamado dict.txt
y un archivo model.json
.