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 los siguientes formatos:

Exporta a dispositivos

Modelos de TensorFlow Lite

IU web

  1. Abre Vision Dashboard y haz clic en el ícono de la bombilla 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. Haz clic en la pestaña Prueba y uso que se encuentra debajo de la barra de título.

  4. En la sección Usa tu modelo, selecciona la opción TF Lite. Después de seleccionar la opción TF Lite y especificar la ubicación de exportación en Cloud Storage en la ventana lateral, selecciona Export (Exportar) para exportar el modelo de Edge de TF Lite.

    Opción actualizada de Exportar el modelo de TF Life Opción actualizada de Exportar el modelo de TF Life

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/icn/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/icn/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ

Por ejemplo:

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

Modelos de Core ML

IU web

  1. Abre Vision Dashboard y haz clic en el ícono de la bombilla 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. Haz clic en la pestaña Prueba y uso que se encuentra debajo de la barra de título.

  4. En la sección Usa tu modelo, selecciona la opción Core ML. Después de seleccionar la opción Core ML y especificar la ubicación de exportación en Cloud Storage en la ventana lateral, haz clic en Export (Exportar) para exportar el modelo de Edge.

    Opción de exportar modelo de Core ML Opción de exportar modelo de Core ML

REST

En el campo "modelFormat", especifica "core_ml".

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": "core_ml",
    "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-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/"
      }
    }
  }
}

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/icn/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ

Por ejemplo:

  • 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 carpeta contiene un modelo de Core ML llamado model.mlmodel y un archivo de etiqueta dict.txt.

Usa el modelo exportado

Después de exportar el modelo a un bucket de Google Cloud Storage, puedes implementar el modelo de AutoML Vision Edge en dispositivos iOS.

Exporta a un contenedor

IU web

  1. Abre Vision Dashboard y haz clic en el ícono de la bombilla 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. Haz clic en la pestaña Prueba y uso que se encuentra debajo de la barra de título.

  4. En la sección Usa tu modelo, selecciona la opción Container (Contenedor). Después de seleccionar la opción Container (Contenedor) y especificar la ubicación de exportación en Cloud Storage en la ventana lateral, haz clic en Export (Exportar) para exportar el modelo de Edge.

    Opción de exportar a contenedor Opción de exportar a contenedor

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/icn/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/icn/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ

Por ejemplo:

  • 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 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 a Edge TPU

IU web

  1. Abre el Panel de Vision y haz clic en el ícono de la bombilla 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 Prueba y uso que se encuentra debajo de la barra de título.

  4. En la sección Usa tu modelo, selecciona la opción Coral. Después de seleccionar la opción Coral y especificar la ubicación de exportación en Cloud Storage en la ventana lateral, haz clic en Export (Exportar) para exportar el modelo de Edge.

    Opción de exportar a Coral (edgetpu tflite) Opción de exportar a Coral (edgetpu tflite)

REST

En el campo "modelFormat", especifica "edgetpu_tflite".

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": "edgetpu_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-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/"
      }
    }
  }
}

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/icn/MODEL_TYPE-DATASET_NAME-YYYY-MM-DDThh:mm:ss.sssZ

Por ejemplo:

  • 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 carpeta contiene un modelo de TensorFlow Lite llamado edgetpu_model.tflite, un archivo de etiquetas llamado dict.txt y un archivo tflite_metadata.json.

Usa el modelo exportado

Para obtener más información sobre cómo implementar en Edge TPU, consulta la documentación oficial de Coral sobre cómo ejecutar una inferencia en Edge TPU.

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