Condividi tramite


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, cocovoc, 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, mediumlarge, 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.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 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, adamo 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, resnet18resnet34, resnet50, resnet101, resnet152, , resnest50. resnest101vitl16r224seresnextvits16r224vitb16r224
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_fpnfasterrcnn_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, cocovoc, 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