Hyperparamètres de classification d'images - Amazon SageMaker

Hyperparamètres de classification d'images

Les hyperparamètres sont des paramètres définis avant qu'un modèle de Machine Learning ne commence à apprendre. Les hyperparamètres suivants sont pris en charge par l'algorithme de classification d'images Amazon SageMaker intégré. Consultez Réglage d'un modèle de classification d'images pour obtenir des informations sur le réglage des hyperparamètres de classification des images.

Nom du paramètre Description
num_classes

Nombre de classes de sortie. Ce paramètre définit les dimensions de la sortie du réseau et est généralement défini en fonction du nombre de classes dans le jeu de données.

Outre la classification multiclasse, la classification à plusieurs étiquettes est également prise en charge. Reportez-vous à Interface d'entrée/de sortie pour l'algorithme de classification d'images pour plus de détails sur la façon de travailler avec la classification à plusieurs étiquettes avec des fichiers manifestes augmentés.

Obligatoire

Valeurs valides : nombre entier positif

num_training_samples

Nombre d'exemples d'entraînement dans le jeu de données en entrée.

En cas de différence entre cette valeur et le nombre d'échantillons dans l'ensemble d'entraînement, le comportement du paramètre lr_scheduler_step n'est pas défini et la précision de l'entraînement distribué peut être affectée.

Obligatoire

Valeurs valides : nombre entier positif

augmentation_type

Type d'augmentation des données. Les images d'entrée peuvent être augmentées de diverses manières comme indiqué ci-dessous.

  • crop : rognage aléatoire et basculement horizontal de l'image

  • crop_color : en complément de « crop », trois valeurs aléatoires dans la plage [- 36, 36], [- 50, 50] et [- 50, 50] sont respectivement ajoutées aux canaux Hue-Saturation-Lightness

  • crop_color_transform : en complément de crop_color, des transformations aléatoires (incluant des rotations, des distorsions et des variations de proportion) sont appliquées à l'image. L'angle maximal de rotation est de 10 degrés, le rapport de distorsion maximal est de 0,1 et le rapport de modification d'aspect maximal et de 0,25.

Facultatif

Valeurs valides : crop, crop_color ou crop_color_transform.

Valeur par défaut : aucune valeur par défaut

beta_1

Valeur beta1 pour adam (taux de dégradation exponentiel pour l'estimation initiale).

Facultatif

Valeurs valides : valeur flottante. Plage [0, 1].

Valeur par défaut : 0.9

beta_2

Valeur beta2 pour adam (taux de dégradation exponentiel pour l'estimation secondaire).

Facultatif

Valeurs valides : valeur flottante. Plage [0, 1].

Valeur par défaut : 0.999

checkpoint_frequency

Période de stockage des paramètres de modèle (en nombre d'époques).

Veuillez noter que tous les fichiers de point de contrôle sont enregistrés sous le fichier de modèle final « model.tar.gz » et chargés dans S3 à l'emplacement de modèle spécifié. Cela augmente la taille du fichier de modèle proportionnellement au nombre de points de contrôle enregistrés pendant l'entraînement.

Facultatif

Valeurs valides : nombre entier positif inférieur ou égal à epochs.

Valeur par défaut : aucune (Enregistrer un point de contrôle à l'époque possédant la plus haute précision de validation).

early_stopping

True pour utiliser une logique d'arrêt anticipé pendant l'entraînement. False pour ne pas l'utiliser.

Facultatif

Valeurs valides : True ou False

Valeur par défaut: False

early_stopping_min_epochs

Nombre minimum d'époques devant être exécutées avant de pouvoir invoquer une logique d'arrêt anticipé. Paramètre utilisé uniquement si early_stopping = True.

Facultatif

Valeurs valides : nombre entier positif

Valeur par défaut : 10

early_stopping_patience

Le nombre d'époques doit attendre la fin de l'entraînement si aucune amélioration n'est effectuée dans la métrique appropriée. Paramètre utilisé uniquement si early_stopping = True.

Facultatif

Valeurs valides : nombre entier positif

Valeur par défaut : 5

early_stopping_tolerance

Tolérance relative pour mesurer une amélioration de la métrique de validation de la précision. Si le ratio de l'amélioration de précision divisé par la meilleure précision précédente est inférieur à la valeur early_stopping_tolerance définie, l'arrêt anticipé estime qu'il n'y a aucune amélioration. Paramètre utilisé uniquement si early_stopping = True.

Facultatif

Valeurs valides : 0 ≤ valeur flottante ≤ 1

Valeur par défaut : 0.0

epochs

Nombre d'époques d'entraînement.

Facultatif

Valeurs valides : nombre entier positif

Valeur par défaut : 30

eps

Valeur epsilon pour adam et rmsprop. Généralement défini sur une petite valeur pour éviter la division par 0.

Facultatif

Valeurs valides : valeur flottante. Plage [0, 1].

Valeur par défaut : 1e-8

gamma

Valeur gamma pour rmsprop, facteur de dégradation de la moyenne mobile du gradient au carré.

Facultatif

Valeurs valides : valeur flottante. Plage [0, 1].

Valeur par défaut : 0.9

image_shape

Dimensions de l'image d'entrée, de la même taille que la couche d'entrée du réseau. Le format est défini comme « num_channels, hauteur, largeur ». La dimension de l'image peut prendre n'importe quelle valeur, le réseau pouvant gérer différentes dimensions pour l'entrée. Toutefois, il peut y avoir des contraintes de mémoire si une dimension d'image importante est utilisée. Les modèles pré-entraînés ne peuvent utiliser qu'une taille d'image fixe de 224 x 224. Les dimensions d'image typiques pour la classification d'images sont « 3, 224, 224 ». Cela est similaire à l'ensemble de données ImageNet.

Pour l'entraînement, si une image d'entrée est plus petite que ce paramètre dans n'importe quelle dimension, l'entraînement échoue. Si une image est plus grande, une partie de l'image est rognée et la zone rognée est spécifiée par ce paramètre. Si l'hyperparamètre augmentation_type est défini, la coupe est aléatoire ; sinon, elle est effectuée au centre.

Au moment de l'inférence, les images d'entrée sont redimensionnées en fonction de la forme image_shape qui a été utilisée pendant l'entraînement. Les proportions ne sont pas conservées et les images ne sont pas rognées.

Facultatif

Valeurs valides : chaîne

Valeur par défaut : « 3, 224, 224 »

kv_store

Mode de synchronisation de mise à jour de poids lors de l'entraînement distribué. Les mises à jour de poids peuvent être effectuées de manière synchrone ou asynchrone sur plusieurs machines. En général, les mises à jour synchrones offrent une meilleure précision que les mises à jour asynchrones, mais elles peuvent être plus lentes. Pour plus de détails, consultez les informations sur l'entraînement distribué dans MXNet.

Ce paramètre n'est pas applicable à l'entraînement de machine unique.

  • dist_sync: les dégradés sont synchronisés après chaque lot avec tous les exécuteurs. Avec dist_sync, la taille de lot représente désormais la taille de lot utilisée sur chaque machine. Par conséquent, si vous disposez de n machines et que vous utilisez la taille de lot b, dist_sync se comporte comme local avec une taille de lot n*b

  • dist_async: effectue des mises à jour asynchrones. Les poids sont mis à jour chaque fois que des dégradés sont reçus de n'importe quelle machine ; les mises à jour de poids sont atomiques. Toutefois, l'ordre n'est pas garanti.

Facultatif

Valeurs valides : dist_sync ou dist_async

Valeur par défaut : aucune valeur par défaut

learning_rate

Taux de formation initial.

Facultatif

Valeurs valides : valeur flottante. Plage [0, 1].

Valeur par défaut : 0.1

lr_scheduler_factor

Rapport de réduction du taux de formation utilisé en conjonction avec le paramètre lr_scheduler_step, défini comme lr_new = lr_old * lr_scheduler_factor.

Facultatif

Valeurs valides : valeur flottante. Plage [0, 1].

Valeur par défaut : 0.1

lr_scheduler_step

Époques auxquelles le taux de formation est réduit. Comme expliqué pour le paramètre lr_scheduler_factor, le taux de formation est réduit de lr_scheduler_factor à ces époques. Par exemple, si la valeur est définie sur « 10, 20 », le taux de formation est réduit delr_scheduler_factor après la 10e époque et à nouveau de lr_scheduler_factor après la 20e époque. Les époques sont délimitées par « , ».

Facultatif

Valeurs valides : chaîne

Valeur par défaut : aucune valeur par défaut

mini_batch_size

Taille de lot pour l'entraînement. Dans un paramètre de machine unique à plusieurs GPU, chaque GPU gère mini_batch_size/num_gpu échantillons d'entraînement. Pour l'entraînement à plusieurs machines en mode dist_sync, la taille de lot réelle est mini_batch_size* nombre de machines. Consultez la documentation MXNet pour plus de détails.

Facultatif

Valeurs valides : nombre entier positif

Valeur par défaut : 32

momentum

Valeur momentum pour sgd et nag, ignorée pour les autres optimiseurs.

Facultatif

Valeurs valides : valeur flottante. Plage [0, 1].

Valeur par défaut : 0.9

multi_label

Indicateur à utiliser pour la classification à plusieurs étiquettes, où chaque exemple peut être attribué à plusieurs étiquettes. La précision moyenne sur l'ensemble des classes est consignée.

Facultatif

Valeurs valides : 0 ou 1

Valeur par défaut : 0

num_layers

Nombre de couches pour le réseau. Pour des données avec une taille d'image importante (par exemple, 224 x 224 - comme ImageNet), nous recommandons de sélectionner le nombre de couches à partir de l'ensemble [18, 34, 50, 101, 152, 200]. Pour des données avec une petite taille d'image (par exemple, 28 x 28 - comme CIFAR), nous recommandons de sélectionner le nombre de couches à partir de l'ensemble [20, 32, 44, 56, 110]. Le nombre de couches dans chaque ensemble est basé sur le document ResNet. Pour la formation de transfert, le nombre de couches définit l'architecture du réseau de base et, par conséquent, peut être sélectionné uniquement à partir de l'ensemble [18, 34, 50, 101, 152, 200].

Facultatif

Valeurs valides : nombre entier positif parmi [18, 34, 50, 101, 152, 200] ou [20, 32, 44, 56, 110]

Valeur par défaut : 152

optimizer

Type d'optimiseur. Pour plus d'informations sur les paramètres pour les optimiseurs, consultez l'API de MXNet.

Facultatif

Valeurs valides : sgd, adam, rmsprop ou nag.

Valeur par défaut: sgd

precision_dtype

Précision des pondérations utilisées pour l'entraînement. Pour les pondérations, l'algorithme peut utiliser une précision simple (float32) ou moitié moins précise (float16). Le recours à une pondération moitié moins précise réduit la consommation de mémoire.

Facultatif

Valeurs valides : float32 ou float16

Valeur par défaut: float32

resize

Nombre de pixels dans le côté le plus court d'une image après son redimensionnement pour l'entraînement. Si le paramètre n'est pas défini, les données d'entraînement sont utilisées en l'état, sans aucun redimensionnement. Le paramètre doit être plus grand que les composants largeur et hauteur de image_shape pour éviter l'échec de l'entraînement.

Obligatoire lors de l'utilisation de types de contenu d'image

Facultatif lors de l'utilisation du type de contenu RecordIO

Valeurs valides : nombre entier positif

Valeur par défaut : aucune valeur par défaut

top_k

Reporte la précision top-k au cours de l'entraînement. Ce paramètre doit être supérieur à 1, la précision d'entraînement top-1 étant identique à la précision d'entraînement normale déjà signalée.

Facultatif

Valeurs valides : nombre entier positif supérieur à 1.

Valeur par défaut : aucune valeur par défaut

use_pretrained_model

Indicateur spécifiant d'utiliser un modèle préentraîné pour l'entraînement. Lorsque cet indicateur est défini sur 1, le modèle préentraîné avec le nombre de couches correspondant est chargé et utilisé pour l'entraînement. Seule la couche supérieure entièrement gérée est réinitialisée avec des pondérations aléatoires. Dans le cas contraire, le réseau est intégralement entraîné.

Facultatif

Valeurs valides : 0 ou 1

Valeur par défaut : 0

use_weighted_loss

Indicateur spécifiant d'utiliser la perte d'entropie croisée pondérée pour la classification à plusieurs étiquettes (utilisée uniquement si multi_label = 1), où les pondérations sont calculées en fonction de la distribution des classes.

Facultatif

Valeurs valides : 0 ou 1

Valeur par défaut : 0

weight_decay

Coefficient de dégradation de pondération pour sgd et nag, ignoré pour les autres optimiseurs.

Facultatif

Valeurs valides : valeur flottante. Plage [0, 1].

Valeur par défaut : 0.0001