Comment utiliser Optuna, un framework d'optimisation des hyperparamètres. Il a été créé par Preferred Networks.
Tutoriel officiel https://optuna.readthedocs.io/en/stable/tutorial/first.html Référence API https://optuna.readthedocs.io/en/stable/reference/index.html
Définissez la fonction objectif et l'espace de recherche.
Ensuite, construisez une instance study et optimisez-la avec la méthode ʻoptimize`.
import optuna
#Définition de la fonction objective
def objective(trial):
    #Décrivez l'espace de recherche ici
    return ***Fonction objective**Peut être maximisé ou minimisé***
L'espace d'exploration est
Défini avec trial.suggest_.
Passez-le comme un entier, une catégorie, etc. comme suit.
Dans suggest_categorical (nom, choix), dans l'exemple, sélectionnez 3 pour le paramètre'kernel '.
suggest_int (name, low, high, step = 1, log = False) donne la valeur d'un paramètre entier.
suggest_uniform (name, low, high) donne une valeur linéaire et continue entre low et high
suggest_loguniform (nom, faible, élevé) donne des valeurs continues dans des intervalles logarithmiques.
suggest_float (nom: str, low: float, high: float, *, step: facultatif [float] = None) contiendra la valeur du paramètre à virgule flottante.
Avec suggest_discrete_uniform (name, low, high, q), la valeur est échantillonnée à partir de la plage low, high, et la valeur de dispersion est donnée à l'étape q.
def objective(trial):
#Comment donner un espace de recherche
    # Categorical parameter
    kernel = trial.suggest_categorical('kernel', ['linear', 'poly', 'rbf'])
    # Int parameter
    num_layers = trial.suggest_int('num_layers', 1, 3)
    # Uniform parameter
    dropout_rate = trial.suggest_uniform('dropout_rate', 0.0, 1.0)
    # Loguniform parameter
    learning_rate = trial.suggest_loguniform('learning_rate', 1e-5, 1e-2)
    # Discrete-uniform parameter
    drop_path_rate = trial.suggest_discrete_uniform('drop_path_rate', 0.0, 1.0, 0.1)
#Optimisation automatique des hyper paramètres
study = optuna.create_study()
#n_Définit le nombre d'itérations à rechercher dans les essais.
study.optimize(objective, n_trials = 100)
        Recommended Posts