Hyperparamètres pour les tâches de vision par ordinateur dans le Machine Learning automatisé
S’APPLIQUE À :Extension Azure CLI v2 (actuelle)
Kit de développement logiciel (SDK) Python azure-ai-ml v2 (version actuelle)
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.0125vitb16r224 : 0.0125vitl16r224 : 0.001) Multi-étiquette : 0.035 (sauf vit-variants : vits16r224 : 0.025vitb16r224 : 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 , vitb16r224 vitl16r224 . |
seresnext |
weighted_loss |
- 0 pour aucune perte de poids. - 1 pour la perte pondérée 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 |