Définissez la configuration de votre balayage dans un fichier YAML si vous souhaitez initialiser un balayage et démarrer un agent de balayage depuis la ligne de commande. Définissez votre balayage dans un dictionnaire Python si vous initialisez un balayage et démarrez un agent de balayage entièrement dans un script ou notebook Python.
Structure de base
name), les paramètres à explorer (clé parameters), la méthode de recherche dans l’espace des paramètres (clé method), etc.
Par exemple, les extraits de code ci-dessous montrent la même configuration de balayage définie dans un fichier YAML et dans un dictionnaire Python. Cette configuration comporte cinq clés de premier niveau : program, name, method, metric et parameters.
- CLI
- Python script or notebook
Définissez une configuration de balayage dans un fichier YAML si vous souhaitez gérer des balayages de manière interactive depuis la ligne de commande (CLI)
config.yaml
parameters de premier niveau, les clés suivantes sont imbriquées : learning_rate, batch_size, epoch et optimizer. Pour chacune des clés imbriquées que vous définissez, vous pouvez fournir une ou plusieurs valeurs, une distribution, une probabilité, etc. Pour plus d’informations, voir la section parameters de Sweep configuration options.
Paramètres imbriqués sur deux niveaux
parameters supplémentaire sous le nom du paramètre de niveau supérieur.
L’exemple suivant montre une configuration de balayage avec trois paramètres imbriqués : nested_category_1, nested_category_2 et nested_category_3. Chaque paramètre imbriqué contient deux paramètres supplémentaires : momentum et weight_decay.
nested_category_1, nested_category_2 et nested_category_3 sont des espaces réservés. Remplacez-les par des noms adaptés à votre cas d’usage.- CLI
- Python script or notebook
Modèle de configuration de balayage
hyperparameter_name par le nom de votre hyperparamètre, ainsi que chaque valeur indiquée entre <>.
config.yaml
!!float, qui convertit la valeur en nombre à virgule flottante. Par exemple, min: !!float 1e-5. Voir Exemple de commande.
Exemples de configuration de balayage
- CLI
- Python script or notebook
config.yaml
Exemple avec Bayes Hyperband
early_terminate :
- Nombre maximal d'itérations
- Nombre minimal d'itérations
Les paliers de cet exemple sont :
[3, 3*eta, 3*eta*eta, 3*eta*eta*eta], ce qui correspond à [3, 9, 27, 81].Exemple de macros et d’arguments de ligne de commande personnalisés
sweep.yaml) définit une commande qui exécute un script Python (run.py), les macros ${env}, ${interpreter} et ${program} étant remplacées par les valeurs appropriées lors de l’exécution du balayage.
Les arguments --batch_size=${batch_size}, --test=True et --optimizer=${optimizer} utilisent des macros personnalisées pour transmettre les valeurs des paramètres batch_size, test et optimizer définis dans la configuration de balayage.
sweep.yaml
run.py) peut ensuite analyser ces arguments de la ligne de commande à l’aide du module argparse.
run.py
Arguments booléens
argparse ne prend pas en charge les arguments booléens par défaut. Pour définir un argument booléen, vous pouvez utiliser le paramètre action ou une fonction personnalisée pour convertir la représentation sous forme de chaîne de la valeur booléenne en type booléen.
Par exemple, vous pouvez utiliser l’extrait de code suivant pour définir un argument booléen. Passez store_true ou store_false comme argument à ArgumentParser.
str2bool, qui convertit une chaîne en valeur booléenne.