11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

optunaの設定方法(探索空間の書き方)

Last updated at Posted at 2020-06-27

#Optunaでハイパーパラメーターを設定する方法をメモします。

ハイパーパラメータを最適化するフレームワークのOptunaの使い方。これは Preferred Networks が作ったものです。

公式チュートリアル
https://optuna.readthedocs.io/en/stable/tutorial/first.html
APIリファレンス
https://optuna.readthedocs.io/en/stable/reference/index.html

目的関数と探索空間を定義します。
次にstudyインスタンスを建て、optimizeメソッドで最適化を行います。

import optuna

#目的関数の定義
def objective(trial):
    #ここに探索空間を記載


    return ***目的関数**最大化でも最小化でも良い***

探査空間は、
trial.suggest_ で設定します。
整数、カテゴリーなどで、以下のように渡します。

suggest_categorical(name, choices)では、例では、'kernel'というパラメーターに3つを選んで入ります。
suggest_int(name, low, high, step=1, log=False)では、整数パラメータの値を与えます。
suggest_uniform(name, low, high)では、lowhighの間で、線形で連続値を与えます
suggest_loguniform(name, low, high)では、対数区間での連続値を与えます。
suggest_float(name:str、low:float、high:float、*、step:Optional [float] = None)では、浮動小数点パラメーターの値が入ります。
suggest_discrete_uniform(name, low, high, q)で,値はlowhighの範囲からサンプリングされ、離散化の数値はステップqで与えられます。

def objective(trial):
#探索空間の与え方
    # 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)
# ハイパーパラメータの自動最適化
study = optuna.create_study()
#n_trials で探索する繰り返し回数を設定します。
study.optimize(objective, n_trials = 100)

11
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?