Hyperparamètres pour les tâches de vision par ordinateur dans le Machine Learning automatisé

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)Kit de développement logiciel (SDK) Python azure-ai-ml v2 (préversion)

Découvrez les hyperparamètres disponibles spécifiquement pour les tâches de vision par ordinateur dans les expériences de ML automatisé.

Avec la prise en charge des tâches de vision par ordinateur, vous pouvez contrôler l’architecture de modèle et les hyperparamètres de balayage. Ces architectures et hyperparamètres du modèle sont passés comme espace de paramètres pour le balayage. Même si un grand nombre des hyperparamètres exposés sont indépendants du modèle, il existe des cas où les hyperparamètres sont spécifiques à un modèle ou une tâche.

Hyperparamètres spécifiques aux modèles

Ce tableau récapitule les hyperparamètres spécifiques à l’architecture yolov5.

Nom du paramètre Description Default
validation_metric_type Méthode de calcul de métrique à utiliser pour les métriques de validation.
Doit être none, coco, voc ou coco_voc.
voc
validation_iou_threshold Seuil IOU pour la correspondance des boîtes lors du calcul des métriques de validation.
Doit être un nombre à virgule flottante dans la plage [0.1, 1].
0.5
image_size Taille d’image pour l’entraînement et la validation.
Cette valeur doit être un entier positif.

Remarque : L’exécution de l’entraînement peut aboutir à un manque de mémoire de CUDA si la taille est trop grande.
640
model_size Taille du modèle.
Doit être small, medium, large ou extra_large.

Remarque : L’exécution de l’entraînement peut aboutir à un manque de mémoire de CUDA si la taille du modèle est trop grande.
medium
multi_scale Permet d’avoir une image multi-échelle en variant la taille de l’image de +/-50 %
Doit être 0 ou 1.

Remarque : L’exécution de l’entraînement peut aboutir à un manque de mémoire de CUDA si la mémoire du GPU est insuffisante.
0
box_score_threshold Pendant l’inférence, retourne uniquement les propositions dont le score est supérieur à box_score_threshold. Le score correspond à la multiplication du score d’objet et de la probabilité de classification.
Doit être un nombre à virgule flottante dans la plage [0, 1].
0.1
nms_iou_threshold Seuil IOU utilisé pendant l’inférence dans le cadre du post-traitement de la suppression non maximale.
Doit être un nombre à virgule flottante dans la plage [0, 1].
0.5
tile_grid_size Taille de la grille à utiliser pour la mise en mosaïque de chaque image.
Remarque : tile_grid_size ne doit pas être None pour permettre une logique de détection de petits objets
Doit être passé sous forme de chaîne au format « 3x2 ». Exemple : --tile_grid_size '3x2'
Pas de valeur par défaut
tile_overlap_ratio Ratio de chevauchement entre les mosaïques adjacentes dans chaque dimension.
Doit être un nombre à virgule flottante dans la plage de [0, 1].
0,25
tile_predictions_nms_threshold Seuil IOU à utiliser pour effectuer une suppression non maximale tout en fusionnant les prédictions des mosaïques et de l’image. Utilisé dans la validation/l’inférence.
Doit être un nombre à virgule flottante dans la plage de [0, 1].
0,25

Ce tableau récapitule les hyperparamètres spécifiques à maskrcnn_* pour la segmentation des instances pendant l’inférence.

Nom du paramètre Description Default
mask_pixel_score_threshold Score seuil pour considérer un pixel comme faisant partie du masque d’un objet. 0.5
max_number_of_polygon_points Nombre maximal de paires de coordonnées (x, y) dans un polygone après conversion à partir d’un masque. 100
export_as_image Exporter les masques en tant qu’images. Faux
image_type Type d’image vers lequel exporter le masque (les options sont jpg, png, bmp). JPG

Hyperparamètres indépendants des modèles

Le tableau suivant décrit les hyperparamètres qui sont indépendants des modèles.

Nom du paramètre Description Default
number_of_epochs Nombre d’époques d’entraînement.
Cette valeur doit être un entier positif.
15
(sauf yolov5 : 30)
training_batch_size Taille du lot d’entraînement.
Cette valeur doit être un entier positif.
Multi-classe/multi-étiquette : 78
(sauf vit-variants :
vits16r224 : 128
vitb16r224 : 48
vitl16r224 :10)

Détection d’objets : 2
(sauf yolov5 : 16)

Segmentation d’instances : 2

Remarque : Les valeurs par défaut correspondent à la plus grande taille de lot qui peut être utilisée sur une mémoire GPU de 12 Gio.
validation_batch_size Taille du lot de validation.
Cette valeur doit être un entier positif.
Multi-classe/multi-étiquette : 78
(sauf vit-variants :
vits16r224 : 128
vitb16r224 : 48
vitl16r224 :10)

Détection d’objets :1
(sauf yolov5 : 16)

Segmentation d’instances : 1

Remarque : Les valeurs par défaut correspondent à la plus grande taille de lot qui peut être utilisée sur une mémoire GPU de 12 Gio.
gradient_accumulation_step L’accumulation de gradients consiste à exécuter un nombre configuré de gradient_accumulation_step sans mettre à jour les pondérations du modèle tout en accumulant les gradients de ces étapes, puis en utilisant les gradients accumulés pour calculer les mises à jour des pondérations.
Cette valeur doit être un entier positif.
1
early_stopping Permet d’avoir une logique d’arrêt anticipé au cours de l’entraînement.
Doit être 0 ou 1.
1
early_stopping_patience Nombre minimal d’époques ou d’évaluations de validation avec
aucune amélioration de métrique principale avant l’arrêt de l’exécution.
Cette valeur doit être un entier positif.
5
early_stopping_delay Nombre minimal d’époques ou d’évaluations de validation à attendre
avant que l’amélioration de la métrique principale ne soit suivie pour un arrêt anticipé.
Cette valeur doit être un entier positif.
5
learning_rate Taux d’apprentissage initial.
Doit être un nombre à virgule flottante dans la plage [0, 1].
Multi-classe : 0.01
(sauf vit-variants :
vits16r224 : 0.0125
vitb16r224 : 0.0125
vitl16r224 : 0.001)

Multi-étiquette : 0.035
(sauf vit-variants :
vits16r224 : 0.025
vitb16r224 : 0.025
vitl16r224 : 0.002)

Détection d’objets : 0.005
(sauf yolov5 : 0.01)

Segmentation d’instances : 0.005
learning_rate_scheduler Type de planificateur du taux d’apprentissage.
Doit être warmup_cosine ou step.
warmup_cosine
step_lr_gamma Valeur de gamma quand le planificateur du taux d’apprentissage est step.
Doit être un nombre à virgule flottante dans la plage [0, 1].
0.5
step_lr_step_size Valeur de la taille de l’étape (« step ») quand le planificateur du taux d’apprentissage est step.
Cette valeur doit être un entier positif.
5
warmup_cosine_lr_cycles Valeur du cycle de cosinus quand le planificateur du taux d’apprentissage est warmup_cosine.
Doit être un nombre à virgule flottante dans la plage [0, 1].
0,45
warmup_cosine_lr_warmup_epochs Valeur des époques de préchauffage (warmup) quand le planificateur du taux d’apprentissage est warmup_cosine.
Cette valeur doit être un entier positif.
2
optimizer Type d’optimiseur.
Doit être sgd, adam, adamw.
sgd
momentum Valeur du momentum quand l’optimiseur est sgd.
Doit être un nombre à virgule flottante dans la plage [0, 1].
0.9
weight_decay Valeur de la perte de poids lorsque l’optimiseur est sgd, adam ou adamw.
Doit être un nombre à virgule flottante dans la plage [0, 1].
1e-4
nesterov Activez nesterov quand l’optimiseur est sgd.
Doit être 0 ou 1.
1
beta1 Valeur de beta1 quand l’optimiseur est adam ou adamw.
Doit être un nombre à virgule flottante dans la plage [0, 1].
0.9
beta2 Valeur de beta2 quand l’optimiseur est adam ou adamw.
Doit être un nombre à virgule flottante dans la plage [0, 1].
0.999
ams_gradient Activez ams_gradient quand l’optimiseur est adam ou adamw.
Doit être 0 ou 1.
0
evaluation_frequency Fréquence d’évaluation du jeu de données de validation pour obtenir les scores de métrique.
Cette valeur doit être un entier positif.
1
checkpoint_frequency Fréquence de stockage des points de contrôle du modèle.
Cette valeur doit être un entier positif.
Point de contrôle au niveau de l’époque avec la meilleure métrique principale lors de la validation.
checkpoint_run_id ID d’exécution de l’expérience qui a un point de contrôle préentraîné pour l’entraînement incrémentiel. pas de valeur par défaut
layers_to_freeze Nombre de couches à geler pour votre modèle. Par exemple, le fait de passer 2 comme valeur pour seresnext signifie figer couche0 et couche1 qui font référence aux informations de couche du modèle prises en charge ci-dessous.
Cette valeur doit être un entier positif.

- '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.']
pas de valeur par défaut

Hyperparamètres spécifiques à la classification d’image (multiclasse et multi-étiquette)

Le tableau suivant récapitule les hyperparamètres pour les tâches de classification d’images (multi-classe et multi-étiquette).

Nom du paramètre Description Default
model_name Nom du modèle à utiliser pour la tâche de classification d’images à portée de main.

Doit être un de mobilenetv2, resnet18, resnet34, resnet50, resnet101, resnet152, resnest50, resnest101, seresnext, vits16r224, vitb16r224vitl16r224.
seresnext
weighted_loss - 0 pour aucune perte de poids.
- 1 pour une perte de poids avec sqrt.(class_weights)
- 2 pour une perte de poids avec class_weights.
- Doit être 0 ou 1 ou 2.
0
validation_resize_size - Taille d’image à laquelle redimensionner avant le rognage du jeu de données de validation.
- Cette valeur doit être un entier positif.

Remarques :
- seresnext n’accepte pas une taille arbitraire.
- L’exécution de la formation peut aboutir à un manque de mémoire de CUDA si la taille est trop grande
.
256
validation_crop_size - Taille de rognage d’image qui est entrée dans votre réseau neural pour le jeu de données de validation.
- Cette valeur doit être un entier positif.

Remarques :
- seresnext n’accepte pas une taille arbitraire.
- ViT-variants doit avoir les mêmes validation_crop_size et training_crop_size.
- L’exécution de la formation peut aboutir à un manque de mémoire de CUDA si la taille est trop grande
.
224
training_crop_size - Taille de rognage d’image qui est entrée dans votre réseau neural pour le jeu de données d’entraînement.
- Cette valeur doit être un entier positif.

Remarques :
- seresnext n’accepte pas une taille arbitraire.
- ViT-variants doit avoir les mêmes validation_crop_size et training_crop_size.
- L’exécution de la formation peut aboutir à un manque de mémoire de CUDA si la taille est trop grande
.
224

Hyperparamètres spécifiques aux tâches de détection d’objets et segmentation d’instances

Les hyperparamètres suivants concernent les tâches de détection d’objets et de segmentation d’instances.

Avertissement

Ces paramètres ne sont pas pris en charge avec l’architecture yolov5. Consultez la section des hyperparamètres spécifiques au modèle pour connaître les hyperparamètres pris en charge par yolov5.

Nom du paramètre Description Default
model_name Nom du modèle à utiliser pour la tâche de classification d’images à portée de main.
- Pour la tâche de détection d’objet, doit être de yolov5, fasterrcnn_resnet18_fpn, fasterrcnn_resnet34_fpn, fasterrcnn_resnet50_fpn, fasterrcnn_resnet101_fpn, fasterrcnn_resnet152_fpn, retinanet_resnet50_fpn.
- Par exemple, la tâche de segmentation doit être de maskrcnn_resnet18_fpn, maskrcnn_resnet34_fpn, maskrcnn_resnet50_fpn, maskrcnn_resnet101_fpn, maskrcnn_resnet152_fpn
- Pour la tâche de détection d’objet, fasterrcnn_resnet50_fpn
- Pour la tâche de segmentation, maskrcnn_resnet50_fpn
validation_metric_type Méthode de calcul de métrique à utiliser pour les métriques de validation.
Doit être none, coco, voc ou coco_voc.
voc
validation_iou_threshold Seuil IOU pour la correspondance des boîtes lors du calcul des métriques de validation.
Doit être un nombre à virgule flottante dans la plage [0.1, 1].
0.5
min_size Taille minimale de l’image à remettre à l’échelle avant de l’alimenter à l’épine dorsale (backbone).
Cette valeur doit être un entier positif.

Remarque : L’exécution de l’entraînement peut aboutir à un manque de mémoire de CUDA si la taille est trop grande.
600
max_size Taille maximale de l’image à remettre à l’échelle avant de l’alimenter à l’épine dorsale (backbone).
Cette valeur doit être un entier positif.

Remarque : L’exécution de l’entraînement peut aboutir à un manque de mémoire de CUDA si la taille est trop grande.
1333
box_score_threshold Pendant l’inférence, retourne uniquement les propositions dont le score de classification est supérieur à box_score_threshold.
Doit être un nombre à virgule flottante dans la plage [0, 1].
0.3
nms_iou_threshold Seuil IOU (intersection over union) utilisé dans la suppression non maximale (NMS) pour la tête de prédiction. Utilisé pendant l’inférence.
Doit être un nombre à virgule flottante dans la plage [0, 1].
0.5
box_detections_per_image Nombre maximal de détections par image, pour toutes les classes.
Cette valeur doit être un entier positif.
100
tile_grid_size Taille de la grille à utiliser pour la mise en mosaïque de chaque image.
- tile_grid_size ne doit pas être None pour permettre une logique de détection de petits objets.
- tile_grid_size n’est pas pris en charge pour les tâches de segmentation d’instance.
Doit être passé sous forme de chaîne au format « 3x2 ». Exemple : --tile_grid_size '3x2'
Pas de valeur par défaut
tile_overlap_ratio Ratio de chevauchement entre les mosaïques adjacentes dans chaque dimension.
Doit être un nombre à virgule flottante dans la plage de [0, 1].
0,25
tile_predictions_nms_threshold Seuil IOU à utiliser pour effectuer une suppression non maximale tout en fusionnant les prédictions des mosaïques et de l’image. Utilisé dans la validation/l’inférence.
Doit être un nombre à virgule flottante dans la plage de [0, 1].
0,25

Étapes suivantes