[PYTHON] Comment définir optuna (comment écrire un espace de recherche)

Notez comment définir les hyperparamètres dans Optuna.

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

Comment définir optuna (comment écrire un espace de recherche)
Comment configurer SVM à l'aide d'Optuna
Comment configurer XG Boost à l'aide d'Optuna
Comment configurer une forêt aléatoire à l'aide d'Optuna
Comment configurer une forêt aléatoire à l'aide d'Optuna
XPath Basics (2) - Comment écrire XPath
Comment écrire sobrement avec des pandas
Réutilisation du flacon Comment écrire du HTML
Comment écrire une image de base Docker
Comment utiliser l'API Bing Search
Comment écrire un fichier wsgi.py indépendant de l'environnement Django1.9
Remarques sur la rédaction de requirements.txt
Qiita (1) Comment écrire un nom de code
Comment régler l'heure du serveur sur l'heure japonaise
Comment écrire des commentaires de document Python (Docstrings)
Comment rechercher Google Drive dans Google Colaboratory
Comment écrire ce processus en Perl?
Comment écrire Ruby to_s en Python
Résumé de l'écriture d'AWS Lambda
Comment écrire des commentaires pydoc et multi-lignes
Comment écrire un test unitaire pour l'extraction d'URL dans GAE / P
Comment définir l'emplacement du navigateur dans Headless Chrome
Comment définir la base de données de Django sur Mongodb Visual Studio 2019
Réponse à "Comment écrire le problème F02 en temps réel hors ligne"
Comment ajouter un chemin de recherche de module Python
Comment écrire une instruction ShellScript Bash for
Réponse à "Comment écrire un problème F01 en temps réel hors ligne"
Comment configurer un serveur de développement local
Comment rechercher des données HTML à l'aide de Beautiful Soup
Réponse au "Problème d'écriture en temps réel hors ligne E13"
Comment écrire un document tuple nommé en 2020
[Go] Comment écrire ou appeler une fonction
Comment écrire une instruction de cas bash ShellScript
Comment définir l'affinité du processeur pour les threads de processus
Comment configurer l'authentification par clé publique avec SSH
20e Comment écrire des problèmes en temps réel hors ligne en Python
Comment écrire une interface graphique à l'aide de la commande maya
Comment configurer un environnement Python à l'aide de pyenv
Comment écrire une concaténation de chaînes sur plusieurs lignes en Python
Comment exécuter python dans l'espace virtuel (pour MacOS)
Comment écrire un type liste / dictionnaire de Python3
Comment configurer Layer sur Lambda à l'aide d'AWS SAM
[Python] Comment écrire une docstring conforme à PEP8
[Blender] Comment définir dynamiquement les sélections EnumProperty
[Introduction à Udemy Python3 + Application] 30. Comment utiliser l'ensemble
Comment configurer et compiler l'environnement Cython
Comment écrire plus rapidement en utilisant numpy comme deque
Comparez comment écrire le traitement des listes par langue
[Introduction à Python] Comment écrire des instructions répétitives à l'aide d'instructions for
[AWS] Comment étendre l'espace disque sur Amazon Linux
Comment utiliser xml.etree.ElementTree
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
Comment utiliser virtualenv
Grattage 2 Comment gratter
Comment utiliser Seaboan
Comment utiliser la correspondance d'image
Comment utiliser le shogun