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 di Machine Learning automatizzati.

Con il supporto per le attività di visione artificiale, è possibile controllare l'architettura del modello e gli iperparametri di sweep. Queste architetture di modelli 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 Predefinito
validation_metric_type Metodo di calcolo delle metriche da usare per le metriche di convalida.
Deve essere none, coco, voco 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, largeo extra_large.

Nota: l'esecuzione del training può entrare nell'OOM CUDA se le dimensioni del modello sono troppo grandi.
medium
multi_scale Abilitare l'immagine su più scalabilità variando le dimensioni dell'immagine per +/- 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 nell'intervallo [0, 1].
0,1
nms_iou_threshold Soglia IOU usata durante l'inferenza in post-elaborazione di eliminazione non massima.
Deve essere un valore float nell'intervallo [0, 1].
0.5
tile_grid_size Dimensioni della griglia da usare per l'associazione di ogni immagine.
Nota: tile_grid_size non deve essere Nessuno per abilitare la logica di rilevamento degli 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 per la segmentazione dell'istanza durante l'inferenza maskrcnn_* .

Nome parametro Descrizione Predefinito
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 maschere come immagini. Falso
image_type Tipo di immagine da esportare maschera come (le opzioni sono jpg, png, bmp). JPG

Modellare gli iperparametri indipendenti

Nella tabella seguente vengono descritti gli iperparametri indipendenti dal modello.

Nome parametro Descrizione Predefinito
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-label: 78
(ad eccezione delle varianti vit:
vits16r224: 128
vitb16r224: 48
vitl16r224:10)

Rilevamento oggetti: 2
(tranne yolov5: 16)

Segmentazione dell'istanza: 2

Nota: le impostazioni predefinite sono le dimensioni batch più grandi che possono essere usate nella memoria GPU da 12 GiB.
validation_batch_size Dimensioni del batch di convalida.
Deve essere un intero positivo.
Multiclasse/multi-label: 78
(ad eccezione delle varianti vit:
vits16r224: 128
vitb16r224: 48
vitl16r224:10)

Rilevamento oggetti: 1
(tranne yolov5: 16)

Segmentazione dell'istanza: 1

Nota: le impostazioni predefinite sono le dimensioni batch più grandi che possono essere usate nella memoria GPU da 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 della metrica primaria 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 di tenere traccia del miglioramento della metrica primaria per l'arresto anticipato.
Deve essere un intero positivo.
5
learning_rate Frequenza iniziale di apprendimento.
Deve essere un float nell'intervallo [0, 1].
Multiclasse: 0.01
(tranne vit-variants:
vits16r224: 0.0125
vitb16r224: 0.0125
vitl16r224: 0.001)

Multi-label: 0.035
(tranne vit-variants:
vits16r224: 0.025
vitb16r224: 0.025
vitl16r224: 0.002)

Rilevamento oggetti: 0.005
(tranne yolov5: 0,01)

Segmentazione dell'istanza: 0,005
learning_rate_scheduler Tipo di utilità di pianificazione della frequenza di apprendimento.
Deve essere warmup_cosine o step.
warmup_cosine
step_lr_gamma Valore di gamma quando l'utilità di pianificazione della frequenza di apprendimento è step.
Deve essere un float nell'intervallo [0, 1].
0.5
step_lr_step_size Valore delle dimensioni dei passaggi quando l'utilità di pianificazione della frequenza di apprendimento è step.
Deve essere un intero positivo.
5
warmup_cosine_lr_cycles Valore del ciclo cosine quando l'utilità di pianificazione della frequenza di apprendimento è warmup_cosine.
Deve essere un float 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 optimizer.
Deve essere sgd, , adamadamw.
sgd
momentum Valore del momento quando optimizer è sgd.
Deve essere un float nell'intervallo [0, 1].
0.9
weight_decay Valore del decadimento del peso quando optimizer è sgd, adamo adamw.
Deve essere un float 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 float nell'intervallo [0, 1].
0.9
beta2 Valore di beta2 quando optimizer è adam o adamw.
Deve essere un float 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 pre-sottoposto a training per il training incrementale. nessuna impostazione predefinita
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 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.']
nessuna impostazione predefinita

Classificazione delle immagini (multiclasse e multi-etichetta) iperparametri specifici

La tabella seguente riepiloga gli iperparmetri per le attività di classificazione delle immagini (multiclasse e multi-etichetta).

Nome parametro Descrizione Predefinito
model_name Nome del modello da usare per l'attività di classificazione delle immagini a portata di mano.

Deve essere uno di mobilenetv2, resnet18resnet34resnest50resnest101resnet50vits16r224resnet101vitl16r224resnet152seresnextvitb16r224.
seresnext
weighted_loss - 0 per nessuna perdita ponderata.
- 1 per la perdita ponderata con sqrt. (class_weights)
- 2 per la perdita ponderata con class_weights.
- Deve essere 0 o 1 o 2.
0
validation_resize_size - Dimensioni dell'immagine a cui ridimensionare prima di ritagliare il set di dati di convalida.
- Deve essere un intero positivo.

Note:
- seresnext non accetta dimensioni arbitrarie.
- L'esecuzione del training può entrare in OOM CUDA se le dimensioni sono troppo grandi
.
256
validation_crop_size - Dimensioni ritaglio immagine input nella rete neurale per il set di dati di convalida.
- Deve essere un intero positivo.

Note:
- seresnext non accetta dimensioni arbitrarie.
- Le varianti viT devono avere la stessa validation_crop_size e training_crop_size.
- L'esecuzione del training può entrare in OOM CUDA se le dimensioni sono troppo grandi
.
224
training_crop_size - Dimensioni ritaglio immagine input nella rete neurale per il set di dati di training.
- Deve essere un intero positivo.

Note:
- seresnext non accetta dimensioni arbitrarie.
- Le varianti viT devono avere la stessa validation_crop_size e training_crop_size.
- L'esecuzione del training può entrare in OOM CUDA se le dimensioni sono troppo grandi
.
224

Rilevamento oggetti e segmentazione di istanze attività specifiche di iperparametri

Gli iperparametri seguenti sono per le attività di rilevamento degli oggetti e segmentazione dell'istanza.

Avviso

Questi parametri non sono supportati con l'architettura yolov5 . Vedere la sezione degli iperparametri specifici del modello per yolov5 gli iperparmetri supportati.

Nome parametro Descrizione Predefinito
model_name Nome del modello da usare per l'attività di classificazione delle immagini a portata di mano.
- Per l'attività di rilevamento oggetti, deve essere uno di yolov5, fasterrcnn_resnet101_fpnfasterrcnn_resnet50_fpnfasterrcnn_resnet152_fpnfasterrcnn_resnet18_fpnfasterrcnn_resnet34_fpn, . retinanet_resnet50_fpn
- Per l'attività di segmentazione dell'istanza, deve essere una 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 metrica da usare per le metriche di convalida.
Deve essere none, coco, voco coco_voc.
voc
validation_iou_threshold Soglia IOU per la corrispondenza delle caselle durante il calcolo delle metriche di convalida.
Deve essere un 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 in CUDA OOM 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 in CUDA OOM se le dimensioni sono troppo grandi.
1333
box_score_threshold Durante l'inferenza, restituisce solo le proposte con un punteggio di classificazione maggiore di box_score_threshold.
Deve essere un float nell'intervallo [0, 1].
0,3
nms_iou_threshold Soglia di IOU (intersezione oltre unione) usata in eliminazione non massima (NMS) per la testa di stima. Usato durante l'inferenza.
Deve essere un float 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'associazione di ogni immagine.
- tile_grid_size non deve essere Nessuno per abilitare la logica di rilevamento di 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 delle stime dai riquadri e dall'immagine. Usato nella convalida/inferenza.
Deve essere float nell'intervallo di [0, 1]
0,25

Passaggi successivi