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

S’APPLIQUE À :Kit de développement logiciel (SDK) Python azureml v1

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’algorithme du modèle et balayer les hyperparamètres. Ces algorithmes 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’algorithme 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
img_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 xlarge.

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_thresh Pendant l’inférence, retourne uniquement les propositions dont le score est supérieur à box_score_thresh. 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_thresh 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
Tuple de deux entiers passés sous forme de chaîne. Exemple : --tile_grid_size "(3, 2)"
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_thresh 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.
grad_accumulation_step L’accumulation de gradients consiste à exécuter un nombre configuré de grad_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
lr_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
amsgrad Activez amsgrad 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
checkpoint_dataset_id ID du FileDataset contenant un ou plusieurs points de contrôle préentraînés pour l’entraînement incrémentiel. Veillez à passer checkpoint_filename avec checkpoint_dataset_id. pas de valeur par défaut
checkpoint_filename Nom de fichier du point de contrôle préentraîné dans FileDataset pour l’apprentissage incrémentiel. Veillez à passer checkpoint_dataset_id avec checkpoint_filename. 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
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
valid_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
    valid_crop_size
  • Taille de rognage d’image qui est entrée dans votre réseau neuronal 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 valid_crop_size et train_crop_size.
  • L’exécution de la formation peut aboutir à un manque de mémoire de CUDA si la taille est trop grande.
  • 224
    train_crop_size
  • Taille de rognage d’image qui est entrée dans votre réseau neuronal 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 valid_crop_size et train_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’algorithme 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
    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_thresh Pendant l’inférence, retourne uniquement les propositions dont le score de classification est supérieur à box_score_thresh.
    Doit être un nombre à virgule flottante dans la plage [0, 1].
    0.3
    nms_iou_thresh 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_img 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.
    Remarque : tile_grid_size ne doit pas être None pour permettre une logique de détection de petits objets
    Tuple de deux entiers passés sous forme de chaîne. Exemple : --tile_grid_size "(3, 2)"
    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_thresh 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