Para crear un modelo personalizado, debes entrenarlo mediante un conjunto de datos preparado. La API de AutoML usa los elementos del conjunto de datos para entrenar el modelo, probarlo y evaluar su rendimiento. Tú debes 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 te permite verificar el estado del entrenamiento.
Debido a que AutoML Vision crea un modelo nuevo cada vez que comienzas el entrenamiento, tu proyecto puede incluir varios modelos. Puedes obtener una lista de los modelos de tu proyecto y borrar los modelos que ya no necesitas. Como alternativa, puedes usar la IU de Cloud AutoML Vision para enumerar y borrar los modelos creados mediante la API de AutoML que ya no necesitas.
Entrenar modelos
Cuando tienes un conjunto de datos con un conjunto representativo de elementos de entrenamiento etiquetados, ya puedes crear y entrenar el modelo personalizado.
IU web
Abre el panel de Vision.
En la página Datasets (Conjuntos de datos), se muestran los conjuntos de datos disponibles para el proyecto actual.
Selecciona el conjunto de datos que deseas usar para entrenar el modelo personalizado.
El nombre visible del conjunto de datos seleccionado aparece en la barra de título, y se muestran los elementos individuales del conjunto junto con las etiquetas de cada uno.
Cuando hayas terminado de revisar el conjunto de datos, selecciona la pestaña Train (Entrenar) justo debajo de la barra de título.
En la página de entrenamiento, se proporciona un análisis básico de tu conjunto de datos y se determina si es adecuado para el entrenamiento. Selecciona Label stats (Estadísticas de etiquetas) si esta opción no se muestra de inmediato. Si AutoML Vision sugiere cambios, considera regresar a la página Images (Imágenes) y agregar elementos o etiquetas.
Cuando el conjunto de datos esté listo, selecciona Start Training (Iniciar entrenamiento) (o Entrenar un modelo nuevo si hay modelos existentes).
Aparecerá una ventana lateral con opciones de entrenamiento del modelo. 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 alojado en la nube, selecciona Continue (Continuar).
En la sección Set a node hour budget de la ventana lateral, elige un valor de presupuesto de entrenamiento adecuado según el tamaño de tu conjunto de datos.
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 clasificación de imágenes es de 8. Para la detección de objetos, la cantidad mínima es de 20.
Opcional: Selecciona la casilla de verificación check_box Implementar el modelo a 1 nodo después del entrenamiento para habilitar la implementación automática del modelo después de que se complete el entrenamiento.
La implementación automática del modelo significa que tu modelo estará disponible para la predicción de inmediato después del entrenamiento. Durante el tiempo que está implementado, el modelo generará cargos, que se detallan en la página de precios.
Selecciona Iniciar entrenamiento.
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.
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", "imageClassificationModelMetadata": { "trainBudget": "1", "modelType": "cloud" } }
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 (ICN3819960680614725486
, 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/ICN3819960680614725486", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-10-29T19:06:38.048492Z", "updateTime": "2019-10-29T19:06:38.048492Z", "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 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 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 AutoML Vision para Ruby.
Mostrar lista de operaciones
Si ejecutas operaciones simultáneas, como el entrenamiento de modelos, puedes usar la API para ver todas las operaciones actuales.
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.
Obtén el estado de una operación
Puedes usar el ID de una operación específica para obtener información sobre su estado.
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 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 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 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 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-10-29T19:06:38.048492Z", "deploymentState": "UNDEPLOYED", "updateTime": "2019-10-29T19:35:19.104716Z", "imageClassificationModelMetadata": { "trainBudget": "1", "modelType": "cloud", "nodeQps": 3.2 } }
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.
Entrenamiento reanudable
Ahora puedes pausar y reanudar tu entrenamiento de modelo personalizado para grandes conjuntos de datos (con más de mil imágenes). Pausar el entrenamiento de modelos no es una acción manual que incluya un botón de pausa.
En su lugar, el usuario establece el presupuesto de hora de procesamiento de nodo en un momento específico, por ejemplo, dos horas.
Una vez que se alcanza el tiempo, el entrenamiento se detiene de forma automática, sin importar el estado del modelo.
El entrenamiento reanudable está disponible con las siguientes restricciones:
- Límite de tiempo del modelo base: puedes reanudar el entrenamiento solo en modelos entrenados en los últimos 14 días. Si la solicitud se realiza después de los 14 días de la creación de los modelos bases, no serán aptos para el entrenamiento reanudable.
- Sin modificación de etiquetas: El entrenamiento reanudable falla si cambias las etiquetas en el conjunto de datos del modelo base.
- No se garantiza un mejor rendimiento: el uso del entrenamiento reanudable en un modelo no garantiza un mejor rendimiento del modelo.
IU web
Antes de probar esta muestra, sigue las instrucciones de configuración para este lenguaje en la página Bibliotecas cliente.
-
Abre la AutoML Vision UI.
En la página Datasets (Conjuntos de datos), se muestran los conjuntos de datos disponibles para el proyecto actual.
Selecciona el conjunto de datos que deseas usar para entrenar el modelo personalizado.
El nombre visible del conjunto de datos seleccionado aparece en la barra de título, y se muestran los elementos individuales del conjunto junto con las etiquetas de cada uno.
Cuando hayas terminado de revisar el conjunto de datos, selecciona la pestaña Train (Entrenar) justo debajo de la barra de título.
Si ya entrenaste modelos, aparecerán en una lista en esta pestaña.
Si el entrenamiento reanudable está disponible para un modelo, aparecerá como opción cerca de la opción See full evaluation (Ver evaluación completa).
Selecciona Resume training (Reanudar el entrenamiento) para reanudarlo en un modelo aplicable.
Al igual que cuando se entrena el modelo original, si seleccionas Resume training (Reanudar el entrenamiento), se abrirá una ventana lateral de “Entrenar un modelo nuevo”. En la sección Define your model (Define tu modelo), puedes cambiar el nombre del modelo nuevo. También verás el nombre del modelo base que se usa para entrenar este modelo.
Después de definir el modelo, selecciona Continue (Continuar) para pasar a la siguiente sección.
En la siguiente sección Set a node hour budget (Configura un presupuesto por hora de procesamiento de nodo), especifica un presupuesto por hora de procesamiento de nodo. Este presupuesto está sujeto a una estructura de precios y restricciones de cuota similares al entrenamiento del modelo inicial.
Después de especificar un presupuesto de entrenamiento, selecciona Start training (Comenzar el entrenamiento). Recibirás un correo electrónico cuando finalice el entrenamiento reanudable.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- base-model-id: Es el ID del modelo base (existente). El modelo nuevo se crea según este modelo base. Las siguientes especificaciones del modelo nuevo deben coincidir con el modelo base:
- project
- ubicación
modelType
*
* Se marcará
modelType
nuevo y del modelo base, incluso si este campo se omite en la nueva solicitud de modelo. - project-id: El ID del proyecto de GCP
- display-name: Es el nombre visible de la string que elijas.
- 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:
Método HTTP y URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models
Cuerpo JSON de la solicitud:
{ "baseModelId": BASE_MODEL_ID, "displayName": "DISPLAY_NAME", "datasetId": "DATASET_ID", "imageClassificationModelMetadata": { "trainBudget": "1", "modelType": "mobile-low-latency-1" } }
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 (ICN2106290444865378475
, 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/ICN2106290444865378475", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-10-30T20:06:08.253243Z", "updateTime": "2019-10-30T20:06:08.253243Z", "createModelDetails": {} } }