Iperparametri per le attività di visione artificiale in Machine Learning automatizzato
SI APPLICA A:Estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)Python SDK azure-ai-ml v2 (corrente)
Informazioni sugli iperparametri disponibili in modo specifico per le attività di visione artificiale negli esperimenti automatizzati di Machine Learning.
Con il supporto per le attività di visione artificiale, è possibile controllare l'architettura del modello e gli iperparametri di sweep. Queste architetture di modello e iperparametri vengono passate come spazio dei parametri per lo sweep. Anche se molti degli iperparametri esposti sono indipendenti dal modello, esistono istanze in cui gli iperparametri sono specifici del modello o specifici dell'attività.
Iperparametri specifici del modello
Questa tabella riepiloga gli iperparametri specifici dell'architettura yolov5
.
Nome parametro | Descrizione | Default |
---|---|---|
validation_metric_type |
Metodo di calcolo delle metriche da usare per le metriche di convalida. Deve essere none , coco voc , o coco_voc . |
voc |
validation_iou_threshold |
Soglia IOU per la corrispondenza delle caselle durante il calcolo delle metriche di convalida. Deve essere un valore float nell'intervallo [0,1, 1]. |
0.5 |
image_size |
Dimensioni dell'immagine per il training e la convalida. Deve essere un intero positivo. Nota: l'esecuzione del training può entrare nell'OOM CUDA se le dimensioni sono troppo grandi. |
640 |
model_size |
Dimensioni del modello. Deve essere small , medium large , o extra_large . Nota: se le dimensioni del modello sono troppo grandi, l'esecuzione del training può entrare nell'OOM CUDA. |
medium |
multi_scale |
Abilitare l'immagine su più scalabilità variando le dimensioni dell'immagine di +/- 50% Deve essere 0 o 1. Nota: l'esecuzione del training può entrare nell'OOM CUDA se non è sufficiente memoria GPU. |
0 |
box_score_threshold |
Durante l'inferenza, restituisce solo proposte con un punteggio maggiore di box_score_threshold . Il punteggio è la moltiplicazione del punteggio di oggetto e della probabilità di classificazione. Deve essere un valore float compreso nell'intervallo [0, 1]. |
0,1 |
nms_iou_threshold |
Soglia IOU usata durante l'inferenza in post-elaborazione post-eliminazione non massima. Deve essere un valore float compreso nell'intervallo [0, 1]. |
0.5 |
tile_grid_size |
Dimensioni della griglia da usare per l’affiancamento di ogni immagine. Nota: tile_grid_size non deve essere Nessuno per abilitare la logica di rilevamento oggetti di piccole dimensioni Deve essere passato come stringa in formato '3x2'. Esempio: --tile_grid_size '3x2' |
Nessun valore predefinito |
tile_overlap_ratio |
Rapporto di sovrapposizione tra riquadri adiacenti in ogni dimensione. Deve essere float nell'intervallo di [0, 1) |
0.25 |
tile_predictions_nms_threshold |
Soglia IOU da usare per eseguire NMS durante l'unione di stime da riquadri e immagini. Usato nella convalida/inferenza. Deve essere float nell'intervallo di [0, 1] |
0.25 |
Questa tabella riepiloga gli iperparametri specifici dell'oggetto per la segmentazione dell'istanza durante l'inferenza maskrcnn_*
.
Nome parametro | Descrizione | Default |
---|---|---|
mask_pixel_score_threshold |
Assegnare un punteggio per considerare un pixel come parte della maschera di un oggetto. | 0.5 |
max_number_of_polygon_points |
Numero massimo di coppie di coordinate (x, y) nel poligono dopo la conversione da una maschera. | 100 |
export_as_image |
Esportare le maschere come immagini. | Falso |
image_type |
Tipo di immagine da esportare maschera come (le opzioni sono jpg, png, bmp). | JPG |
Iperparametri indipendenti dal modello
Nella tabella seguente vengono descritti gli iperparametri indipendenti dal modello.
Nome parametro | Descrizione | Default |
---|---|---|
number_of_epochs |
Numero di periodi di training. Deve essere un intero positivo. |
15 (tranne yolov5 : 30) |
training_batch_size |
Dimensioni del batch di training. Deve essere un intero positivo. |
Multiclasse/multi-etichetta: 78 (tranne vit-variants: vits16r224 : 128 vitb16r224 : 48 vitl16r224 :10)Rilevamento oggetti: 2 (tranne yolov5 : 16) Segmentazione dell'istanza: 2 Nota: le impostazioni predefinite sono dimensioni batch maggiori che possono essere usate nella memoria GPU 12 GiB. |
validation_batch_size |
Dimensioni del batch di convalida. Deve essere un intero positivo. |
Multiclasse/multi-etichetta: 78 (tranne vit-variants: vits16r224 : 128 vitb16r224 : 48 vitl16r224 :10)Rilevamento oggetti: 1 (tranne yolov5 : 16) Segmentazione dell'istanza: 1 Nota: le impostazioni predefinite sono dimensioni batch maggiori che possono essere usate nella memoria GPU 12 GiB. |
gradient_accumulation_step |
L'accumulo di sfumature significa eseguire un numero configurato di gradient_accumulation_step senza aggiornare i pesi del modello durante l'accumulo delle sfumature di tali passaggi e quindi usare le sfumature accumulate per calcolare gli aggiornamenti del peso. Deve essere un intero positivo. |
1 |
early_stopping |
Abilitare la logica di arresto anticipato durante il training. Deve essere 0 o 1. |
1 |
early_stopping_patience |
Numero minimo di periodi o valutazioni di convalida con nessun miglioramento delle metriche primarie prima dell'arresto dell'esecuzione. Deve essere un intero positivo. |
5 |
early_stopping_delay |
Numero minimo di periodi o valutazioni di convalida da attendere prima che il miglioramento della metrica primaria venga monitorato per l'arresto anticipato. Deve essere un intero positivo. |
5 |
learning_rate |
Velocità di apprendimento iniziale. Deve essere un valore float compreso nell'intervallo [0, 1]. |
Multiclasse: 0.01 (tranne vit-variants: vits16r224 : 0.0125vitb16r224 : 0.0125vitl16r224 : 0.001) Multi-label: 0.035 (tranne vit-variants: vits16r224 : 0.025vitb16r224 : 0.025 vitl16r224 : 0.002) Rilevamento oggetti: 0.005 (tranne yolov5 : 0.01) Segmentazione dell'istanza: 0,005 |
learning_rate_scheduler |
Tipo dell'utilità di pianificazione della velocità di apprendimento. Deve essere warmup_cosine o step . |
warmup_cosine |
step_lr_gamma |
Il valore gamma quando l'utilità di pianificazione della frequenza di apprendimento è step .Deve essere un valore float compreso nell'intervallo [0, 1]. |
0.5 |
step_lr_step_size |
Valore delle dimensioni del passaggio quando l'utilità di pianificazione della frequenza di apprendimento è step .Deve essere un intero positivo. |
5 |
warmup_cosine_lr_cycles |
Valore del ciclo coseno quando l'utilità di pianificazione della frequenza di apprendimento è warmup_cosine . Deve essere un valore float compreso nell'intervallo [0, 1]. |
0,45 |
warmup_cosine_lr_warmup_epochs |
Valore dei periodi di riscaldamento quando l'utilità di pianificazione della frequenza di apprendimento è warmup_cosine . Deve essere un intero positivo. |
2 |
optimizer |
Tipo di ottimizzatore. Deve essere sgd , adam , adamw . |
sgd |
momentum |
Valore di momentum quando Optimizer è sgd . Deve essere un valore float compreso nell'intervallo [0, 1]. |
0.9 |
weight_decay |
Valore del decadimento del peso quando Optimizer è sgd , adam o adamw . Deve essere un valore float compreso nell'intervallo [0, 1]. |
1e-4 |
nesterov |
Abilitare nesterov quando Optimizer è sgd . Deve essere 0 o 1. |
1 |
beta1 |
Valore di beta1 quando Optimizer è adam o adamw . Deve essere un valore float compreso nell'intervallo [0, 1]. |
0.9 |
beta2 |
Valore di beta2 quando Optimizer è adam o adamw .Deve essere un valore float compreso nell'intervallo [0, 1]. |
0,999 |
ams_gradient |
Abilitare ams_gradient quando Optimizer è adam o adamw .Deve essere 0 o 1. |
0 |
evaluation_frequency |
Frequenza per valutare il set di dati di convalida per ottenere i punteggi delle metriche. Deve essere un intero positivo. |
1 |
checkpoint_frequency |
Frequenza per archiviare i checkpoint del modello. Deve essere un intero positivo. |
Checkpoint in fase con la metrica primaria migliore per la convalida. |
checkpoint_run_id |
ID esecuzione dell'esperimento con un checkpoint con training preliminare per il training incrementale. | Non sono previsti valori predefiniti |
layers_to_freeze |
Numero di livelli da bloccare per il modello. Ad esempio, passando 2 come valore per seresnext significa bloccare layer0 e layer1 facendo riferimento alle informazioni del livello del modello supportate di seguito. Deve essere un intero positivo. - 'resnet' : [('conv1.', 'bn1.'), 'layer1.', 'layer2.', 'layer3.', 'layer4.'] - 'mobilenetv2' : ['features.0.', 'features.1.', 'features.2.', 'features.3.', 'features.4.', 'features.5.', 'features.6.', 'features.7.', 'features.8.', 'features.9.', 'features.10.', 'features.11.', 'features.12.', 'features.13.', 'features.14.', 'features.15.', 'features.16.', 'features.17.', 'features.18.'] - 'seresnext' : ['layer0.', 'layer1.', 'layer2.', 'layer3.', 'layer4.'] * 'vit' : ['patch_embed', 'blocks.0.', 'blocks.1.', 'blocks.2.', 'blocks.3.', 'blocks.4.', 'blocks.5.', 'blocks.6.','blocks.7.', 'blocks.8.', 'blocks.9.', 'blocks.10.', 'blocks.11.'] * 'yolov5_backbone' : ['model.0.', 'model.1.', 'model.2.', 'model.3.', 'model.4.','model.5.', 'model.6.', 'model.7.', 'model.8.', 'model.9.'] - 'resnet_backbone' : ['backbone.body.conv1.', 'backbone.body.layer1.', 'backbone.body.layer2.','backbone.body.layer3.', 'backbone.body.layer4.'] |
Non sono previsti valori predefiniti |
Iperparametri specifici della classificazione delle immagini (multiclasse e multi-etichetta)
La tabella seguente riepiloga gli iperparmetri per le attività di classificazione delle immagini (multiclasse e multi-etichetta).
Nome parametro | Descrizione | Default |
---|---|---|
model_name |
Nome del modello da usare per l'attività di classificazione delle immagini. Deve essere uno di mobilenetv2 , resnet18 resnet34 , resnet50 , resnet101 , resnet152 , , resnest50 . resnest101 vitl16r224 seresnext vits16r224 vitb16r224 |
seresnext |
weighted_loss |
- 0 per nessuna perdita di peso. - 1 per perdita ponderata con sqrt. (class_weights) - 2 per perdita ponderata con class_weights. - Deve essere 0 o 1 o 2. |
0 |
validation_resize_size |
- Dimensioni dell'immagine in cui ridimensionare prima del ritaglio per il set di dati di convalida. - Deve essere un numero intero positivo. Note: - seresnext non accetta dimensioni arbitrarie. - L'esecuzione del training può entrare nell'OOM CUDA se le dimensioni sono troppo grandi. |
256 |
validation_crop_size |
- Dimensioni ritaglio immagine che vengono immesse nella rete neurale per il set di dati di convalida. - Deve essere un numero intero positivo. Note: - seresnext non accetta dimensioni arbitrarie. - Le varianti viT devono avere lo stesso validation_crop_size e training_crop_size . - L'esecuzione del training può entrare nell'OOM CUDA se le dimensioni sono troppo grandi. |
224 |
training_crop_size |
- Dimensioni ritaglio immagine che vengono immesse nella rete neurale per il set di dati di training. - Deve essere un numero intero positivo. Note: - seresnext non accetta dimensioni arbitrarie. - Le varianti viT devono avere lo stesso validation_crop_size e training_crop_size . - L'esecuzione del training può entrare nell'OOM CUDA se le dimensioni sono troppo grandi. |
224 |
Rilevamento oggetti e segmentazione dell'istanza di iperparametri specifici
Gli iperparametri seguenti sono destinati alle attività di rilevamento degli oggetti e segmentazione dell'istanza.
Avviso
Questi parametri non sono supportati con l'architettura yolov5
. Vedere la sezione relativa agli iperparametri specifici del modello per yolov5
gli iperparmetri supportati.
Nome parametro | Descrizione | Default |
---|---|---|
model_name |
Nome del modello da usare per l'attività di classificazione delle immagini. - Per l'attività di rilevamento degli oggetti, deve essere uno di yolov5 , fasterrcnn_resnet18_fpn fasterrcnn_resnet34_fpn , fasterrcnn_resnet50_fpn , fasterrcnn_resnet101_fpn , fasterrcnn_resnet152_fpn . retinanet_resnet50_fpn - Per l'attività di segmentazione dell'istanza, deve essere uno di maskrcnn_resnet18_fpn , maskrcnn_resnet34_fpn , maskrcnn_resnet50_fpn , maskrcnn_resnet101_fpn , maskrcnn_resnet152_fpn |
- Per l'attività di rilevamento degli oggetti, fasterrcnn_resnet50_fpn - Per l'attività di segmentazione dell'istanza, maskrcnn_resnet50_fpn |
validation_metric_type |
Metodo di calcolo delle metriche da usare per le metriche di convalida. Deve essere none , coco voc , o coco_voc . |
voc |
validation_iou_threshold |
Soglia IOU per la corrispondenza delle caselle durante il calcolo delle metriche di convalida. Deve essere un valore float nell'intervallo [0,1, 1]. |
0.5 |
min_size |
Dimensioni minime dell'immagine da ridimensionare prima di alimentarla al backbone. Deve essere un intero positivo. Nota: l'esecuzione del training può entrare nell'OOM CUDA se le dimensioni sono troppo grandi. |
600 |
max_size |
Dimensioni massime dell'immagine da ridimensionare prima di alimentarla al backbone. Deve essere un intero positivo. Nota: l'esecuzione del training può entrare nell'OOM CUDA se le dimensioni sono troppo grandi. |
1333 |
box_score_threshold |
Durante l'inferenza, restituisce solo proposte con un punteggio di classificazione maggiore di box_score_threshold . Deve essere un valore float compreso nell'intervallo [0, 1]. |
0,3 |
nms_iou_threshold |
Soglia IOU (intersezione su unione) usata nell'eliminazione non massima (NMS) per la testa di stima. Usato durante l'inferenza. Deve essere un valore float compreso nell'intervallo [0, 1]. |
0.5 |
box_detections_per_image |
Numero massimo di rilevamenti per immagine, per tutte le classi. Deve essere un intero positivo. |
100 |
tile_grid_size |
Dimensioni della griglia da usare per l’affiancamento di ogni immagine. - tile_grid_size Non deve essere Nessuno per abilitare la logica di rilevamento oggetti di piccole dimensioni.- tile_grid_size non è supportato per le attività di segmentazione dell'istanza.Deve essere passato come stringa in formato '3x2'. Esempio: --tile_grid_size '3x2' |
Nessun valore predefinito |
tile_overlap_ratio |
Rapporto di sovrapposizione tra riquadri adiacenti in ogni dimensione. Deve essere float nell'intervallo di [0, 1) |
0.25 |
tile_predictions_nms_threshold |
Soglia IOU da usare per eseguire NMS durante l'unione di stime da riquadri e immagini. Usato nella convalida/inferenza. Deve essere float nell'intervallo di [0, 1] |
0.25 |
Passaggi successivi
Informazioni su come configurare AutoML per eseguire il training di modelli di visione artificiale con Python.
Esercitazione: eseguire il training di un modello di rilevamento oggetti con AutoML e Python.