Le seguenti sezioni dell'obiettivo includono informazioni sui requisiti dei dati, sul file dello schema di input/output e sul formato dei file di importazione dati (JSON Lines e CSV) definiti dallo schema.
Classificazione con etichetta singola
Requisiti dei dati
- Dati di addestramento: durante l'addestramento del modello sono supportati i seguenti formati di immagine. Dopo aver pre-elaborato le immagini importate, l'API Vertex AI funge da dati utilizzati per addestrare un modello. La dimensione massima del file è 30 MB.
- JPEG
- GIF
- PNG
- BMP
- ICO
- Dati di previsione: sono supportati i seguenti formati di immagine per richiedere una previsione dal modello (esecuzione di query). La dimensione massima del file è di 1,5 MB.
- JPEG
- GIF
- PNG
- WEBP
- BMP
- TIFF
- ICO
- I modelli AutoML sono ottimizzati per fotografie di oggetti nel mondo reale.
- I dati di addestramento devono essere il più possibile simili a quelli sui quali eseguire le previsioni. Ad esempio, se il tuo caso d'uso prevede immagini sfocate e a bassa risoluzione (come quelle di una videocamera di sicurezza), i dati di addestramento dovrebbero essere composti da immagini sfocate e a bassa risoluzione. In generale, ti consigliamo di fornire più angolazioni, risoluzioni e sfondi per le immagini di addestramento.
- In genere, i modelli di Vertex AI non sono in grado di prevedere etichette che gli esseri umani non possono assegnare. Quindi, se un essere umano non può essere addestrato ad assegnare etichette guardando l'immagine per 1-2 secondi, probabilmente anche il modello non può essere addestrato a farlo.
- Consigliamo circa 1000 immagini di addestramento per etichetta. Il numero minimo per ogni etichetta è 10. In generale, sono necessari più esempi per etichetta per addestrare modelli con più etichette per immagine e i punteggi risultanti sono più difficili da interpretare.
- Il modello funziona meglio quando ci sono al massimo 100 volte più immagini per l'etichetta più comune rispetto all'etichetta meno comune. Consigliamo di rimuovere le etichette di frequenza molto bassa.
- Valuta la possibilità di includere un'etichetta None_of_the_above e delle immagini che non corrispondono a nessuna delle etichette definite. Ad esempio, per un set di dati relativo ai fiori, includi immagini di fiori al di fuori delle varietà etichettate e etichettale come None_of_the_above.
Best practice per i dati delle immagini utilizzati per addestrare i modelli AutoML
Le seguenti best practice si applicano ai set di dati che addestrano modelli utilizzando AutoML.
File YAML schema
Utilizza il seguente file schema accessibile pubblicamente per importare annotazioni di classificazione delle immagini con etichetta singola. Questo file di schema determina il formato dei file di input di dati. La struttura di questo file è conforme allo schema OpenAPI.
gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml
File di schema 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
File di input
Righe JSON
JSON su ogni riga:
{ "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" } }
Note sul campo:
imageGcsUri
: l'unico campo obbligatorio.annotationResourceLabels
: può contenere un numero illimitato di coppie chiave-valore. L'unica coppia chiave-valore prenotata dal sistema è la seguente:- "aiplatform.googleapis.com/annotation_set_name" : "value"
Dove value è uno dei nomi visualizzati degli set di annotazioni esistenti nel set di dati.
dataItemResourceLabels
: può contenere un numero illimitato di coppie chiave-valore. L'unica coppia chiave-valore prenotata dal sistema è la seguente, che specifica il set di utilizzo dell'elemento di dati per il machine learning:- "aiplatform.googleapis.com/ml_use" : "training/test/validation"
Esempio di righe 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]Elenco di colonne
ML_USE
(Facoltativo) - Ai fini della suddivisione dei dati durante l'addestramento di un modello. Utilizza FORMAZIONE, TEST o CONVALIDA. Per saperne di più sulla suddivisione manuale dei dati, consulta Informazioni sulle suddivisioni di dati per i modelli AutoML.GCS_FILE_PATH
: questo campo contiene l'URI Cloud Storage dell'immagine. Gli URI Cloud Storage sono sensibili alle maiuscole.LABEL
(Facoltativo) Le etichette devono iniziare con una lettera e contenere solo lettere, numeri e trattini bassi.
CSV di esempio - 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 ...
Classificazione con più etichette
Requisiti dei dati
- Dati di addestramento: durante l'addestramento del modello sono supportati i seguenti formati di immagine. Dopo aver pre-elaborato le immagini importate, l'API Vertex AI funge da dati utilizzati per addestrare un modello. La dimensione massima del file è 30 MB.
- JPEG
- GIF
- PNG
- BMP
- ICO
- Dati di previsione: sono supportati i seguenti formati di immagine per richiedere una previsione dal modello (esecuzione di query). La dimensione massima del file è di 1,5 MB.
- JPEG
- GIF
- PNG
- WEBP
- BMP
- TIFF
- ICO
- I modelli AutoML sono ottimizzati per fotografie di oggetti nel mondo reale.
- I dati di addestramento devono essere il più possibile simili a quelli sui quali eseguire le previsioni. Ad esempio, se il tuo caso d'uso prevede immagini sfocate e a bassa risoluzione (come quelle di una videocamera di sicurezza), i dati di addestramento dovrebbero essere composti da immagini sfocate e a bassa risoluzione. In generale, ti consigliamo di fornire più angolazioni, risoluzioni e sfondi per le immagini di addestramento.
- In genere, i modelli di Vertex AI non sono in grado di prevedere etichette che gli esseri umani non possono assegnare. Quindi, se un essere umano non può essere addestrato ad assegnare etichette guardando l'immagine per 1-2 secondi, probabilmente anche il modello non può essere addestrato a farlo.
- Consigliamo circa 1000 immagini di addestramento per etichetta. Il numero minimo per ogni etichetta è 10. In generale, sono necessari più esempi per etichetta per addestrare modelli con più etichette per immagine e i punteggi risultanti sono più difficili da interpretare.
- Il modello funziona meglio quando ci sono al massimo 100 volte più immagini per l'etichetta più comune rispetto all'etichetta meno comune. Consigliamo di rimuovere le etichette di frequenza molto bassa.
- Valuta la possibilità di includere un'etichetta None_of_the_above e delle immagini che non corrispondono a nessuna delle etichette definite. Ad esempio, per un set di dati relativo ai fiori, includi immagini di fiori al di fuori delle varietà etichettate e etichettale come None_of_the_above.
Best practice per i dati delle immagini utilizzati per addestrare i modelli AutoML
Le seguenti best practice si applicano ai set di dati che addestrano modelli utilizzando AutoML.
File YAML schema
Utilizza il seguente file di schema accessibile pubblicamente per importare le annotazioni di classificazione delle immagini con più etichette. Questo file di schema determina il formato dei file di input di dati. La struttura di questo file è conforme allo schema OpenAPI.
File di schema 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
File di input
Righe JSON
JSON su ogni riga:
{ "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" } }
Note sul campo:
imageGcsUri
: l'unico campo obbligatorio.annotationResourceLabels
: può contenere un numero illimitato di coppie chiave-valore. L'unica coppia chiave-valore prenotata dal sistema è la seguente:- "aiplatform.googleapis.com/annotation_set_name" : "value"
Dove value è uno dei nomi visualizzati degli set di annotazioni esistenti nel set di dati.
dataItemResourceLabels
: può contenere un numero illimitato di coppie chiave-valore. L'unica coppia chiave-valore prenotata dal sistema è la seguente, che specifica il set di utilizzo dell'elemento di dati per il machine learning:- "aiplatform.googleapis.com/ml_use" : "training/test/validation"
Esempio di righe 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]Elenco di colonne
ML_USE
(Facoltativo) - Ai fini della suddivisione dei dati durante l'addestramento di un modello. Utilizza FORMAZIONE, TEST o CONVALIDA. Per saperne di più sulla suddivisione manuale dei dati, consulta Informazioni sulle suddivisioni di dati per i modelli AutoML.GCS_FILE_PATH
: questo campo contiene l'URI Cloud Storage dell'immagine. Gli URI Cloud Storage sono sensibili alle maiuscole.LABEL
(Facoltativo) Le etichette devono iniziare con una lettera e contenere solo lettere, numeri e trattini bassi.
CSV di esempio - 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 ...