Un conjunto de datos contiene muestras representativas del tipo de contenido que deseas clasificar, con las etiquetas de categoría que quieres que use tu modelo personalizado. El conjunto de datos sirve como entrada para entrenar un modelo.
Los pasos principales para compilar un conjunto de datos son los siguientes:
- Crear un conjunto de datos y especificar si se permiten múltiples etiquetas por elemento
- Importar los elementos de datos al conjunto de datos
- Etiquetar los elementos
Cuando importas elementos con etiquetas ya asignadas, los pasos 2 y 3 se combinan.
Crea un conjunto de datos
El primer paso cuando se crea un modelo personalizado es crear un conjunto de datos vacío que, más adelante, tendrá los datos de entrenamiento para el modelo. Cuando creas un conjunto de datos, debes especificar el tipo de clasificación que deseas que realice el modelo personalizado:
- MULTICLASS asigna una sola etiqueta a cada imagen clasificada.
- MULTILABEL permite asignar varias etiquetas a una imagen.
A partir de la versión v1 de la API de AutoML, esta solicitud muestra el ID de una operación de larga duración.
Una vez que se completa la operación de larga duración, puedes importar imágenes en ella. El conjunto de datos recién creado no contendrá datos hasta que importes imágenes en él.
Guarda el ID del conjunto de datos nuevo (de la respuesta) para usarlo con otras operaciones, como importar imágenes al conjunto de datos y entrenar un modelo.
IU web
Abre el panel de Vision.
También puedes acceder a esta página desde la consola a través del elemento del menú de navegación izquierdo Inteligencia artificial > Vision. Esto te llevará al panel de Vision. Selecciona la tarjeta de AutoML Vision.
Selecciona Conjuntos de datos en el menú de navegación izquierdo.
Selecciona el botón Conjunto de datos nuevo en la parte superior, actualiza el nombre del conjunto de datos (opcional) y selecciona
Single-Label Classification (Clasificación con una sola etiqueta) o Multi-Label Classification (Clasificación con varias etiquetas) según los datos que tengas.Después de especificar el tipo de clasificación, selecciona Create Dataset (Crear conjunto de datos).
En la página Crear conjunto de datos, puedes elegir un archivo CSV de Google Cloud Storage o archivos de imágenes locales para importar al conjunto de datos.
Selecciona Continue (Continuar) para comenzar la importación de imágenes en tu conjunto de datos. Mientras se realiza la importación, el conjunto de datos mostrará el estado Ejecutando: importando imágenes.
Recibirás un correo electrónico cuando finalice la importación.
REST
En el siguiente ejemplo, se crea un conjunto de datos que admita una etiqueta por elemento (consulta MULTICLASS).
El conjunto de datos recién creado no contendrá ningún dato hasta que importes elementos en él.
Guarda el "name"
del conjunto de datos nuevo (de la respuesta) para usarlo con otras operaciones, como importar elementos a tu conjunto de datos y entrenar un modelo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: El ID del proyecto de GCP.
- 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/datasets
Cuerpo JSON de la solicitud:
{ "displayName": "DISPLAY_NAME", "imageClassificationDatasetMetadata": { "classificationType": "MULTICLASS" } }
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/datasets"
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/datasets" | 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-11-14T16:49:13.667526Z", "updateTime": "2019-11-14T16:49:13.667526Z", "createDatasetDetails": {} } }
Una vez que se completó la operación de larga duración, puedes obtener el ID del conjunto de datos con la misma solicitud de estado de la operación. La respuesta debería ser similar a la siguiente:
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/ICN3819960680614725486", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-11-14T16:49:13.667526Z", "updateTime": "2019-11-14T16:49:17.975314Z", "createDatasetDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Dataset", "name": "projects/PROJECT_ID/locations/us-central1/datasets/ICN5496445433112696489" } }
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.
Importar elementos a un conjunto de datos
Después de crear un conjunto de datos, puedes importar los URI y las etiquetas de los elementos desde un archivo CSV almacenado en un bucket de Google Cloud Storage. Si deseas obtener detalles sobre cómo preparar tus datos y crear un archivo CSV para importar, consulta Preparar los datos de entrenamiento.
Puedes importar elementos para cargar un conjunto de datos vacío o para ampliar un conjunto de datos existente.
IU web
La IU de AutoML Vision te permite crear un conjunto de datos nuevo y luego importar elementos desde la misma página; consulta Crea un conjunto de datos. Los siguientes pasos sirven para importar elementos a un conjunto de datos existente.
Abre Vision Dashboard y selecciona el conjunto de datos de la página Datasets (Conjuntos de datos).
En la página Imágenes, haz clic en Agregar elementos en la barra de título y selecciona el método de importación en la lista desplegable.
Puedes llevar a cabo las siguientes acciones:
Subir un archivo .csv que contenga las imágenes de entrenamiento y las etiquetas de categoría asociadas desde tu computadora local o desde Google Cloud Storage.
Subir archivos .txt o .zip que contengan las imágenes de entrenamiento desde tu computadora local.
Selecciona los archivos para importarlos.
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:
- input-storage-path: La ruta de acceso a un archivo CSV almacenado en Google Cloud Storage. El usuario que realice la solicitud debe tener, como mínimo, permiso de lectura en el bucket
Método HTTP y URL:
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID:importData
Cuerpo JSON de la solicitud:
{ "inputConfig": { "gcsSource": { "inputUris": [INPUT_STORAGE_PATH] } } }
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/datasets/DATASET_ID:importData"
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/datasets/DATASET_ID:importData" | 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/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T15:56:29.176485Z", "importDataDetails": {} } }
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.
Etiquetar elementos de entrenamiento
Para que pueda usarse en el entrenamiento de un modelo, cada elemento de un conjunto de datos debe tener asignada al menos una etiqueta de categoría. AutoML Vision pasa por alto los elementos que no tienen etiqueta de categoría. Puedes proporcionar etiquetas para tus elementos de entrenamiento de tres maneras:
- Incluye las etiquetas en el archivo .csv.
- Para obtener detalles sobre cómo etiquetar elementos en tu archivo .csv, consulta Preparar los datos de entrenamiento.
- Etiquetar los elementos en la IU de AutoML Vision
- Solicita el etiquetado de un servicio de etiquetado humano, como el Servicio de etiquetado de datos de AI Platform.
Asigna etiquetas en la IU
IU web
Si quieres etiquetar elementos en la IU de AutoML Vision, selecciona el conjunto de datos de la página de la lista de Datasets (Conjuntos de datos) para ver sus detalles.
En la barra lateral, se resume la cantidad de elementos etiquetados y no etiquetados. Aquí puedes filtrar la lista de elementos por etiqueta o seleccionar Add new label (Agregar una etiqueta nueva) para crear una etiqueta nueva.
Desde esta pantalla también puedes agregar o cambiar la etiqueta de una imagen.
Selecciona una imagen para agregar o cambiar su etiqueta.
Solicita etiquetado
Puedes aprovechar el servicio Servicio de etiquetado de datos de AI Platform para etiquetar tus imágenes. Consulta la documentación del producto para obtener más información.
Trabaja con operaciones de larga duración
Puedes obtener el estado de una operación de larga duración mediante las siguientes muestras de código.
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.