Exporta modelos de Edge

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

  1. 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.

  2. Selecciona la fila del modelo que deseas usar para etiquetar las imágenes.

  3. Selecciona la pestaña Probar y usar (Test & use).

  4. En la sección Use your model (Usa tu modelo), selecciona la tarjeta TF Lite. Se abrirá la ventana lateral “Usa tu modelo local”.

    Imagen de la opción de exportar modelo de TF Lite

  5. 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.

    Imagen en la que se muestra la opción de elegir una ubicación de almacenamiento para el modelo exportado

  6. 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
  • 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.

Ejemplo de carpeta de marca de tiempo

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

  1. 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.

  2. Haz clic en la fila del modelo que deseas usar para etiquetar tus imágenes.

  3. Selecciona la pestaña Probar y usar (Test & use).

  4. En la sección Use your model (Usa tu modelo), selecciona la tarjeta TF Lite. Se abrirá la ventana lateral “Usa tu modelo local”.

    Imagen de la opción de exportar modelo de TF Lite

  5. 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.

    Imagen en la que se muestra la opción de elegir una ubicación de almacenamiento para el modelo exportado

  6. 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
  • 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.

Ejemplo de carpeta de marca de tiempo

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

  1. 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.

  2. Selecciona la fila del modelo que deseas usar para etiquetar las imágenes.

  3. Selecciona la pestaña Probar y usar, que se encuentra justo debajo de la barra de título.

  4. 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.

    opción de exportar Tensorflow.js opción de exportar Tensorflow.js

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
  • 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.

Ejemplo de carpeta de Tensorflow.js