Las siguientes secciones objetivas incluyen información sobre los requisitos de los datos, el archivo de esquema de entrada/salida y el formato de los archivos de importación de datos (JSON Lines y CSV) definidos por el esquema.
Clasificación con una sola etiqueta
Requisitos de datos
- Datos de entrenamiento: se admiten los siguientes formatos de imagen al entrenar el modelo. Después de que la API de Vertex AI preprocese estas imágenes importadas, se usarán como datos para entrenar un modelo. El tamaño máximo de archivo por imagen es de 30 MB.
- JPEG
- GIF
- PNG
- BMP
- ICO
- Datos de predicción: se admiten los siguientes formatos de imagen al solicitar una predicción de tu modelo (es decir, al consultarlo). El tamaño máximo de cada 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 con los que se van a hacer las predicciones. Por ejemplo, si tu caso práctico implica 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 y de baja resolución. En general, también deberías proporcionar varios ángulos, resoluciones y fondos para las imágenes de entrenamiento.
- Por lo general, los modelos de Vertex AI no pueden predecir etiquetas que los humanos no pueden asignar. Por lo tanto, si no se puede entrenar a una persona para que asigne etiquetas mirando la imagen durante 1 o 2 segundos, es probable que tampoco se pueda entrenar al modelo para que lo haga.
- Recomendamos usar unas 1000 imágenes de entrenamiento por etiqueta. El mínimo por etiqueta es 10. Por lo general, se necesitan más ejemplos por etiqueta para entrenar modelos con varias etiquetas por imagen, y 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 de la etiqueta más común que de la menos común. Te recomendamos que elimines las etiquetas de frecuencia muy baja.
- Te recomendamos que incluyas la etiqueta None_of_the_above e imágenes que no coincidan con ninguna de las etiquetas que hayas definido. Por ejemplo, en un conjunto de datos de flores, incluya imágenes de flores que no sean de las variedades etiquetadas y etiquételas como None_of_the_above.
Prácticas recomendadas para los datos de imagen que se usan para entrenar modelos de AutoML
Las siguientes prácticas recomendadas se aplican a los conjuntos de datos que entrenan modelos con AutoML.
Archivo de esquema YAML
Utilice 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 determina 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 de 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
JSON Lines
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 campo:
imageGcsUri
: el único campo obligatorio.annotationResourceLabels
: puede contener cualquier número de pares de cadenas clave-valor. El único par clave-valor reservado por el sistema es el siguiente:- "aiplatform.googleapis.com/annotation_set_name" : "value"
value es uno de los nombres visibles de los conjuntos de anotaciones del conjunto de datos.
dataItemResourceLabels
: puede contener cualquier número de pares de cadenas clave-valor. El único par clave-valor reservado por el sistema es el siguiente, que especifica el conjunto de usos de 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): se usa para dividir los datos al entrenar un modelo. Usa TRAINING, TEST o VALIDATION. Para obtener más información sobre la división manual de datos, consulta Acerca de las divisiones de datos para los modelos de AutoML.GCS_FILE_PATH
: este campo contiene el URI de Cloud Storage de la imagen. En los URIs de Cloud Storage se distingue entre mayúsculas y minúsculas.LABEL
(Opcional): las etiquetas deben empezar por una letra y solo pueden 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 de varias etiquetas
Requisitos de datos
- Datos de entrenamiento: se admiten los siguientes formatos de imagen al entrenar el modelo. Después de que la API de Vertex AI preprocese estas imágenes importadas, se usarán como datos para entrenar un modelo. El tamaño máximo de archivo por imagen es de 30 MB.
- JPEG
- GIF
- PNG
- BMP
- ICO
- Datos de predicción: se admiten los siguientes formatos de imagen al solicitar una predicción de tu modelo (es decir, al consultarlo). El tamaño máximo de cada 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 con los que se van a hacer las predicciones. Por ejemplo, si tu caso práctico implica 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 y de baja resolución. En general, también deberías proporcionar varios ángulos, resoluciones y fondos para las imágenes de entrenamiento.
- Por lo general, los modelos de Vertex AI no pueden predecir etiquetas que los humanos no pueden asignar. Por lo tanto, si no se puede entrenar a una persona para que asigne etiquetas mirando la imagen durante 1 o 2 segundos, es probable que tampoco se pueda entrenar al modelo para que lo haga.
- Recomendamos usar unas 1000 imágenes de entrenamiento por etiqueta. El mínimo por etiqueta es 10. Por lo general, se necesitan más ejemplos por etiqueta para entrenar modelos con varias etiquetas por imagen, y 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 de la etiqueta más común que de la menos común. Te recomendamos que elimines las etiquetas de frecuencia muy baja.
- Te recomendamos que incluyas la etiqueta None_of_the_above e imágenes que no coincidan con ninguna de las etiquetas que hayas definido. Por ejemplo, en un conjunto de datos de flores, incluya imágenes de flores que no sean de las variedades etiquetadas y etiquételas como None_of_the_above.
Prácticas recomendadas para los datos de imagen que se usan para entrenar modelos de AutoML
Las siguientes prácticas recomendadas se aplican a los conjuntos de datos que entrenan modelos con AutoML.
Archivo de esquema YAML
Utilice 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 determina el formato de los archivos de entrada de datos. La estructura de este archivo sigue el esquema de OpenAPI.
Archivo de 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
JSON Lines
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 campo:
imageGcsUri
: el único campo obligatorio.annotationResourceLabels
: puede contener cualquier número de pares de cadenas clave-valor. El único par clave-valor reservado por el sistema es el siguiente:- "aiplatform.googleapis.com/annotation_set_name" : "value"
value es uno de los nombres visibles de los conjuntos de anotaciones del conjunto de datos.
dataItemResourceLabels
: puede contener cualquier número de pares de cadenas clave-valor. El único par clave-valor reservado por el sistema es el siguiente, que especifica el conjunto de usos de 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): se usa para dividir los datos al entrenar un modelo. Usa TRAINING, TEST o VALIDATION. Para obtener más información sobre la división manual de datos, consulta Acerca de las divisiones de datos para los modelos de AutoML.GCS_FILE_PATH
: este campo contiene el URI de Cloud Storage de la imagen. En los URIs de Cloud Storage se distingue entre mayúsculas y minúsculas.LABEL
(Opcional): las etiquetas deben empezar por una letra y solo pueden 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 ...