En las secciones siguientes, se incluye información sobre los requisitos de datos, el archivo de esquema de entrada/salida y el formato de los archivos de importación de datos (líneas JSONL y CSV) que el esquema define.
Clasificación de una sola etiqueta
Requisitos de los datos
- Datos de entrenamiento: cuando se entrena tu modelo, se admiten los siguientes formatos de imagen. Después de que la API de Vertex AI realiza un procesamiento previo de estas imágenes importadas, sirven como los datos usados para entrenar un modelo. El tamaño máximo del archivo por imagen es de 30 MB.
- JPEG
- GIF
- PNG
- BMP
- ICO
- Datos de predicción: cuando se solicita una predicción (una consulta) de un modelo, se admiten los siguientes formatos de imagen. El tamaño máximo del archivo es 1.5 MB.
- JPEG
- GIF
- PNG
- WEBP
- BMP
- TIFF
- ICO
- Los modelos de AutoML están optimizados para fotografías de objetos del mundo real.
- Los datos de entrenamiento deben ser lo más parecidos posible a los datos sobre los que se harán las predicciones. Por ejemplo, si tu caso práctico incluye imágenes borrosas y de baja resolución (como las de una cámara de seguridad), tus datos de entrenamiento deben estar compuestos por imágenes borrosas de baja resolución. En general, también deberías tratar de proporcionar imágenes de entrenamiento con múltiples ángulos, resoluciones y fondos.
- Por lo general, los modelos de Vertex AI no pueden predecir las etiquetas que las personas no pueden asignar. Por lo tanto, si no se puede entrenar a las personas para que asignen etiquetas con tan solo mirar la imagen durante 1 o 2 segundos, es probable que tampoco se pueda entrenar al modelo para que lo haga.
- Recomendamos que agregues aproximadamente 1,000 imágenes de entrenamiento por etiqueta. El mínimo por etiqueta es de 10. En general, se necesitan más ejemplos por etiqueta para entrenar modelos con múltiples etiquetas por imagen. Además, las puntuaciones resultantes son más difíciles de interpretar.
- El modelo funciona mejor cuando hay, como máximo, 100 veces más imágenes destinadas a la etiqueta más común que a la etiqueta menos común. Te recomendamos que quites las etiquetas de frecuencia muy baja.
- Considera incluir una etiqueta None_of_the_above, así como imágenes que no coincidan con ninguna de tus etiquetas definidas. Por ejemplo, para un conjunto de datos de flores, incluye imágenes de flores fuera de tus variedades etiquetadas y etiquétalas como None_of_the_above.
Prácticas recomendadas para los datos de imágenes que se usan a fin de entrenar los modelos de AutoML
Las siguientes prácticas recomendadas se aplican a los conjuntos de datos que entrenan modelos mediante AutoML.
Archivo del esquema YAML
Usa el siguiente archivo de esquema de acceso público para importar anotaciones de clasificación de imágenes con una sola etiqueta. Este archivo de esquema dicta el formato de los archivos de entrada de datos. La estructura de este archivo sigue el esquema de OpenAPI.
gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml
Archivo del esquema completo
title: ImageClassificationSingleLabel description: > Import and export format for importing/exporting images together with single-label classification annotation. Can be used in Dataset.import_schema_uri field. type: object required: - imageGcsUri properties: imageGcsUri: type: string description: > A Cloud Storage URI pointing to an image. Up to 30MB in size. Supported file mime types: `image/jpeg`, `image/gif`, `image/png`, `image/webp`, `image/bmp`, `image/tiff`, `image/vnd.microsoft.icon`. classificationAnnotation: type: object description: Single classification Annotation on the image. properties: displayName: type: string description: > It will be imported as/exported from AnnotationSpec's display name, i.e. the name of the label/class. annotationResourceLabels: description: Resource labels on the Annotation. type: object additionalProperties: type: string dataItemResourceLabels: description: Resource labels on the DataItem. type: object additionalProperties: type: string
Archivos de entrada
Líneas JSON
JSON en cada línea:
{ "imageGcsUri": "gs://bucket/filename.ext", "classificationAnnotation": { "displayName": "LABEL", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name": "displayName", "env": "prod" } }, "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training/test/validation" } }
Notas de campos:
imageGcsUri
: es el único campo obligatorio.annotationResourceLabels
: puede contener cualquier cantidad de pares de strings de clave-valor. El único par clave-valor reservado por el sistema es el siguiente:- "aiplatform.googleapis.com/annotation_set_name": "value"
En el ejemplo anterior, value es uno de los nombres de visualización de los conjuntos de anotaciones existentes en el conjunto de datos.
dataItemResourceLabels
: puede contener cualquier cantidad de pares de strings de clave-valor. El único par clave-valor reservado por el sistema es el siguiente, que especifica el conjunto de uso del aprendizaje automático del elemento de datos:- "aiplatform.googleapis.com/ml_use" : "training/test/validation"
Ejemplo de líneas JSON (image_classification_single_label.jsonl
):
{"imageGcsUri": "gs://bucket/filename1.jpeg", "classificationAnnotation": {"displayName": "daisy"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} {"imageGcsUri": "gs://bucket/filename2.gif", "classificationAnnotation": {"displayName": "dandelion"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename3.png", "classificationAnnotation": {"displayName": "roses"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename4.bmp", "classificationAnnotation": {"displayName": "sunflowers"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename5.tiff", "classificationAnnotation": {"displayName": "tulips"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}} ...
CSV
Formato CSV:
[ML_USE],GCS_FILE_PATH,[LABEL]
ML_USE
(opcional): Para fines de división de datos durante el entrenamiento de un modelo. Usa TRAINING, TEST o VALIDATION. Para obtener más información sobre la división manual de datos, consulta Información acerca de las divisiones de datos para modelos de AutoML.GCS_FILE_PATH
: este campo contiene el URI de Cloud Storage para la imagen. Los URI de Cloud Storage distinguen entre mayúsculas y minúsculas.LABEL
(opcional): las etiquetas deben comenzar con una letra y solo deben contener letras, números y guiones bajos.
Ejemplo de CSV: image_classification_single_label.csv
test,gs://bucket/filename1.jpeg,daisy training,gs://bucket/filename2.gif,dandelion gs://bucket/filename3.png gs://bucket/filename4.bmp,sunflowers validation,gs://bucket/filename5.tiff,tulips ...
Clasificación con varias etiquetas
Requisitos de los datos
- Datos de entrenamiento: cuando se entrena tu modelo, se admiten los siguientes formatos de imagen. Después de que la API de Vertex AI realiza un procesamiento previo de estas imágenes importadas, sirven como los datos usados para entrenar un modelo. El tamaño máximo del archivo por imagen es de 30 MB.
- JPEG
- GIF
- PNG
- BMP
- ICO
- Datos de predicción: cuando se solicita una predicción (una consulta) de un modelo, se admiten los siguientes formatos de imagen. El tamaño máximo del archivo es 1.5 MB.
- JPEG
- GIF
- PNG
- WEBP
- BMP
- TIFF
- ICO
- Los modelos de AutoML están optimizados para fotografías de objetos del mundo real.
- Los datos de entrenamiento deben ser lo más parecidos posible a los datos sobre los que se harán las predicciones. Por ejemplo, si tu caso práctico incluye imágenes borrosas y de baja resolución (como las de una cámara de seguridad), tus datos de entrenamiento deben estar compuestos por imágenes borrosas de baja resolución. En general, también deberías tratar de proporcionar imágenes de entrenamiento con múltiples ángulos, resoluciones y fondos.
- Por lo general, los modelos de Vertex AI no pueden predecir las etiquetas que las personas no pueden asignar. Por lo tanto, si no se puede entrenar a las personas para que asignen etiquetas con tan solo mirar la imagen durante 1 o 2 segundos, es probable que tampoco se pueda entrenar al modelo para que lo haga.
- Recomendamos que agregues aproximadamente 1,000 imágenes de entrenamiento por etiqueta. El mínimo por etiqueta es de 10. En general, se necesitan más ejemplos por etiqueta para entrenar modelos con múltiples etiquetas por imagen. Además, las puntuaciones resultantes son más difíciles de interpretar.
- El modelo funciona mejor cuando hay, como máximo, 100 veces más imágenes destinadas a la etiqueta más común que a la etiqueta menos común. Te recomendamos que quites las etiquetas de frecuencia muy baja.
- Considera incluir una etiqueta None_of_the_above, así como imágenes que no coincidan con ninguna de tus etiquetas definidas. Por ejemplo, para un conjunto de datos de flores, incluye imágenes de flores fuera de tus variedades etiquetadas y etiquétalas como None_of_the_above.
Prácticas recomendadas para los datos de imágenes que se usan a fin de entrenar los modelos de AutoML
Las siguientes prácticas recomendadas se aplican a los conjuntos de datos que entrenan modelos mediante AutoML.
Archivo del esquema YAML
Usa el siguiente archivo de esquema de acceso público para importar anotaciones de clasificación de imágenes con varias etiquetas. Este archivo de esquema dicta el formato de los archivos de entrada de datos. La estructura de este archivo sigue el esquema de OpenAPI.
Archivo del esquema completo
title: ImageClassificationMultiLabel description: > Import and export format for importing/exporting images together with multi-label classification annotations. Can be used in Dataset.import_schema_uri field. type: object required: - imageGcsUri properties: imageGcsUri: type: string description: > A Cloud Storage URI pointing to an image. Up to 30MB in size. Supported file mime types: `image/jpeg`, `image/gif`, `image/png`, `image/webp`, `image/bmp`, `image/tiff`, `image/vnd.microsoft.icon`. classificationAnnotations: type: array description: Multiple classification Annotations on the image. items: type: object description: Classification annotation. properties: displayName: type: string description: > It will be imported as/exported from AnnotationSpec's display name, i.e. the name of the label/class. annotationResourceLabels: description: Resource labels on the Annotation. type: object additionalProperties: type: string dataItemResourceLabels: description: Resource labels on the DataItem. type: object additionalProperties: type: string
Archivos de entrada
Líneas JSON
JSON en cada línea:
{ "imageGcsUri": "gs://bucket/filename.ext", "classificationAnnotations": [ { "displayName": "LABEL1", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name":"displayName", "label_type": "flower_type" } }, { "displayName": "LABEL2", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name":"displayName", "label_type": "image_shot_type" } } ], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training/test/validation" } }
Notas de campos:
imageGcsUri
: es el único campo obligatorio.annotationResourceLabels
: puede contener cualquier cantidad de pares de strings de clave-valor. El único par clave-valor reservado por el sistema es el siguiente:- "aiplatform.googleapis.com/annotation_set_name": "value"
En el ejemplo anterior, value es uno de los nombres de visualización de los conjuntos de anotaciones existentes en el conjunto de datos.
dataItemResourceLabels
: puede contener cualquier cantidad de pares de strings de clave-valor. El único par clave-valor reservado por el sistema es el siguiente, que especifica el conjunto de uso del aprendizaje automático del elemento de datos:- "aiplatform.googleapis.com/ml_use" : "training/test/validation"
Ejemplo de líneas JSON (image_classification_multi_label.jsonl
):
{"imageGcsUri": "gs://bucket/filename1.jpeg", "classificationAnnotations": [{"displayName": "daisy"}, {"displayName": "full_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} {"imageGcsUri": "gs://bucket/filename2.gif", "classificationAnnotations": [{"displayName": "dandelion"}, {"displayName": "medium_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename3.png", "classificationAnnotations": [{"displayName": "roses"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename4.bmp", "classificationAnnotations": [{"displayName": "sunflowers"}, {"displayName": "closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename5.tiff", "classificationAnnotations": [{"displayName": "tulips"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}} ...
CSV
Formato CSV:
[ML_USE],GCS_FILE_PATH,[LABEL1,LABEL2,...LABELn]
ML_USE
(opcional): Para fines de división de datos durante el entrenamiento de un modelo. Usa TRAINING, TEST o VALIDATION. Para obtener más información sobre la división manual de datos, consulta Información acerca de las divisiones de datos para modelos de AutoML.GCS_FILE_PATH
: este campo contiene el URI de Cloud Storage para la imagen. Los URI de Cloud Storage distinguen entre mayúsculas y minúsculas.LABEL
(opcional): las etiquetas deben comenzar con una letra y solo deben contener letras, números y guiones bajos.
Ejemplo de CSV: image_classification_multi_label.csv
test,gs://bucket/filename1.jpeg,daisy,full_shot training,gs://bucket/filename2.gif,dandelion,medium_shot gs://bucket/filename3.png gs://bucket/filename4.bmp,sunflowers,closeup validation,gs://bucket/filename5.tiff,tulips,extreme_closeup ...