Para crear un modelo personalizado, debes entrenarlo con un conjunto de datos preparado. La API de AutoML Vision usa las imágenes del conjunto de datos para entrenar el modelo, probarlo y evaluar su rendimiento. Puedes revisar los resultados, ajustar el conjunto de datos de entrenamiento según sea necesario y entrenar un modelo nuevo mediante el conjunto de datos mejorado.
El entrenamiento de un modelo puede tomar varias horas en completarse. La API de AutoML Vision te permite verificar el estado del entrenamiento.
Entrena modelos
Cuando tienes un conjunto de datos con un conjunto sólido de imágenes de entrenamiento anotadas con cuadros de límite y etiquetas, ya puedes crear y entrenar el modelo personalizado.
IU web
Abre la IU de detección de objetos de AutoML Vision.
La página Conjuntos de datos muestra los conjuntos de datos disponibles para el proyecto actual.
Selecciona el conjunto de datos que deseas usar para entrenar el modelo personalizado.
Cuando el conjunto de datos esté listo, selecciona la pestaña Entrenar y el botón Entrenar un modelo nuevo.
Se abrirá una ventana lateral “Train new model” (Entrenar un modelo nuevo) con opciones de entrenamiento.
En la sección Define your model (Define tu modelo), especifica un Model name (Nombre del modelo) o acepta el nombre predeterminado. Selecciona radio_button_checked Cloud hosted (Alojado en la nube) como el tipo de modelo, si aún no lo especificaste. Después de seleccionar la opción para entrenar un modelo de Edge, selecciona Continue (Continuar).
En la siguiente sección Optimize model for (Optimizar el modelo en función de:), selecciona el criterio de optimización que desees: radio_button_checked Higher accuracy (Exactitud más alta) o Faster prediction (Predicción más rápida). Después de seleccionar la especificación de optimización, selecciona Continue (Continuar).
En la siguiente sección Set a node hour budget (Configura un presupuesto por hora de procesamiento de nodo), especifica el presupuesto de nodo deseado.
De forma predeterminada, 24 horas de procesamiento de nodo deberían ser suficientes para que la mayoría de los conjuntos de datos entrenen el modelo. Este valor recomendado es una estimación para hacer que el modelo sea convergente por completo. Sin embargo, puedes elegir otra cantidad. La cantidad mínima de horas de procesamiento de nodo para la detección de objetos es de 20. Para la clasificación de imágenes, la cantidad mínima es de 8.
En esta sección, también puedes habilitar la implementación automática de tu modelo después del entrenamiento mediante la selección de check_box Implementar el modelo a 1 nodo después del entrenamiento. De lo contrario, tendrás que implementar tu modelo de forma manual después de que termine el entrenamiento.
Selecciona Comenzar entrenamiento para comenzar el entrenamiento de modelos.
El entrenamiento de un modelo puede tomar varias horas en completarse. Una vez que el modelo esté entrenado de forma correcta, recibirás un mensaje en la dirección de correo electrónico que usaste para tu proyecto de Google Cloud Platform.
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
- dataset-id: Es el ID del conjunto de datos. El ID es el último elemento del nombre del conjunto de datos. Por ejemplo:
- Nombre del conjunto de datos:
projects/project-id/locations/location-id/datasets/3104518874390609379
- ID del conjunto de datos:
3104518874390609379
- Nombre del conjunto de datos:
- display-name: Es el nombre visible de la string que elijas.
Consideraciones específicas del campo:
imageObjectDetectionModelMetadata.modelType
: Indica una de las dos opciones disponibles para optimizar el modelo:cloud-low-latency-1
: Optimiza el entrenamiento para la latencia.cloud-high-accuracy-1
: Optimiza el entrenamiento para la exactitud.imageObjectDetectionModelMetadata.trainBudgetMilliNodeHours
: El presupuesto de entrenamiento para crear este modelo, expresado en milihoras de procesamiento de nodo (un valor de 1,000 en este campo significa 1 hora de procesamiento de nodo). El valor detrainCostMilliNodeHours
real será igual o menor que este valor. Si realizar más entrenamiento de modelos deja de proporcionar mejoras, se detendrá sin usar el presupuesto completo, y lastopReason
seráMODEL_CONVERGED
.Nota: node_hour = actual_hour * number_of_nodes_involved.
Para el tipo de modelo
cloud-high-accuracy-1
(predeterminado) ycloud-low-latency-1
, el presupuesto de entrenamiento debe ser de entre 20,000 y 2,000,000 milihoras de procesamiento de nodo, inclusive. El valor predeterminado es 216,000, que representa un día según el tiempo real transcurrido.
Método HTTP y URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models
Cuerpo JSON de la solicitud:
{ "displayName": "DISPLAY_NAME", "datasetId": "DATASET_ID", "imageObjectDetectionModelMetadata": { "modelType": "cloud-low-latency-1", "trainBudgetMilliNodeHours": "216000" } }
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"
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" | Select-Object -Expand Content
Deberías ver un resultado similar al siguiente. Puedes usar el ID de operación (IOD3074819451447675546
, en este caso) para obtener el estado de la tarea. Para ver un ejemplo, consulta Trabaja con operaciones de larga duración.
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/IOD3074819451447675546", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-26T21:10:18.338846Z", "updateTime": "2019-07-26T21:10:18.338846Z", "createModelDetails": {} } }
Go
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página Bibliotecas cliente.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página Bibliotecas cliente.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página Bibliotecas cliente.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página Bibliotecas cliente.
Idiomas adicionales
C#: sigue las instrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de la detección de objetos de AutoML Vision para .NET.
PHP: sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de detección de objetos de AutoML Vision para PHP.
Ruby: sigue las instrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de detección de objetos de AutoML Vision para Ruby.
Mostrar lista de operaciones
Usa las siguientes muestras de código para enumerar las operaciones de tu proyecto y filtrar los resultados.
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.
Método HTTP y URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations"
PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations" | Select-Object -Expand Content
El resultado que verás variará según las operaciones que hayas solicitado.
También puedes filtrar las operaciones que se muestran con los parámetros de consulta seleccionados (operationId
, done
y worksOn
). Por ejemplo, para mostrar una lista de las operaciones que finalizaron la ejecución, modifica la URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations?filter="done=true"
Go
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página API y referencia > Bibliotecas cliente.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página API y referencia > Bibliotecas cliente.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página API y referencia > Bibliotecas cliente.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página API y referencia > Bibliotecas cliente.
Idiomas adicionales
C#: sigue las instrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de la detección de objetos de AutoML Vision para .NET.
PHP: sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de detección de objetos de AutoML Vision para PHP.
Ruby: sigue las instrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de detección de objetos de AutoML Vision para Ruby.
Trabajar con operaciones de larga duración
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.
- operation-id: Es el ID de la operación. El ID es el último elemento del nombre de tu operación. Por ejemplo:
- Nombre de la operación:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- ID de la operación:
IOD5281059901324392598
- Nombre de la operación:
Método HTTP y URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID"
PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID" | Select-Object -Expand Content
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T16:10:41.326614Z", "importDataDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Deberías ver un resultado similar al siguiente para una operación de creación de modelo completada:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T18:35:06.881193Z", "updateTime": "2019-07-22T19:58:44.972235Z", "createModelDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Model", "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID" } }
Go
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página Bibliotecas cliente.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página Bibliotecas cliente.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página Bibliotecas cliente.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página Bibliotecas cliente.
Idiomas adicionales
C#: sigue las instrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de la detección de objetos de AutoML Vision para .NET.
PHP: sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de detección de objetos de AutoML Vision para PHP.
Ruby: sigue las instrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de detección de objetos de AutoML Vision para Ruby.
Cancela una operación
Puedes cancelar una tarea de importación o una de entrenamiento con el ID de operación,
REST
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página Bibliotecas cliente.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto de GCP.
- operation-id: Es el ID de la operación. El ID es el último elemento del nombre de tu operación. Por ejemplo:
- Nombre de la operación:
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- ID de la operación:
IOD5281059901324392598
- Nombre de la operación:
Método HTTP y URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel
Para enviar tu solicitud, elige una de estas opciones:
curl
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 "" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel"
PowerShell
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 `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID:cancel" | Select-Object -Expand Content
{}
Obtén información sobre un modelo
Usa las siguientes muestras de código para obtener información sobre un modelo entrenado específico. Puedes usar la información que se muestra en esta solicitud para modificar el modo o enviar una solicitud de predicción.
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:
Método HTTP y URL:
GET https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id"
PowerShell
Ejecuta el siguiente comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/project-id/locations/us-central1/models/model-id" | 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/models/model-id", "displayName": "display-name", "datasetId": "dataset-id", "createTime": "2019-07-26T21:10:18.338846Z", "deploymentState": "UNDEPLOYED", "updateTime": "2019-07-26T22:28:57.464076Z", "imageObjectDetectionModelMetadata": { "modelType": "cloud-low-latency-1", "nodeQps": 1.2987012987012987, "stopReason": "MODEL_CONVERGED", "trainBudgetMilliNodeHours": "216000", "trainCostMilliNodeHours": "8230" } }
Go
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página Bibliotecas cliente.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página Bibliotecas cliente.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página Bibliotecas cliente.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página Bibliotecas cliente.
Idiomas adicionales
C#: sigue las instrucciones de configuración de C# en la página Bibliotecas cliente y, luego, visita la documentación de referencia de la detección de objetos de AutoML Vision para .NET.
PHP: sigue las instrucciones de configuración de PHP en la página Bibliotecas cliente y, luego, visita la documentación de referencia de detección de objetos de AutoML Vision para PHP.
Ruby: sigue las instrucciones de configuración de Ruby en la página Bibliotecas cliente y, luego, visita la documentación de referencia de detección de objetos de AutoML Vision para Ruby.