Hyperparamètres pour les tâches de vision par ordinateur dans le Machine Learning automatisé (v1)
S’APPLIQUE À : 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.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 |
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 |
Remarques : seresnext n’accepte pas une taille arbitraire. |
256 |
valid_crop_size |
Remarques : seresnext n’accepte pas une taille arbitraire. valid_crop_size et train_crop_size . |
224 |
train_crop_size |
Remarques : seresnext n’accepte pas une taille arbitraire. valid_crop_size et train_crop_size . |
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 |