optuna.samplers.PartialFixedSampler

class optuna.samplers.PartialFixedSampler(fixed_params, base_sampler)[source]

部分的に固定されたパラメータを持つサンプラー

使用例

最適化を数回行った後、y の値を固定して再最適化を行うことができます。

import optuna


def objective(trial):
    x = trial.suggest_float("x", -1, 1)
    y = trial.suggest_int("y", -1, 1)
    return x**2 + y


study = optuna.create_study()
study.optimize(objective, n_trials=10)

best_params = study.best_params
fixed_params = {"y": best_params["y"]}
partial_sampler = optuna.samplers.PartialFixedSampler(fixed_params, study.sampler)

study.sampler = partial_sampler
study.optimize(objective, n_trials=10)
Parameters:
  • fixed_params (dict[str, Any]) – 固定するパラメータの辞書

  • base_sampler (BaseSampler) – 未固定パラメータをサンプリングするサンプラー

Note

v2.4.0 で実験的機能として追加されました。インターフェースは予告なく変更される可能性があります。 詳細は https://github.com/optuna/optuna/releases/tag/v2.4.0 を参照してください。

メソッド

after_trial(study, trial, state, values)

Trial post-processing.

before_trial(study, trial)

Trial pre-processing.

infer_relative_search_space(study, trial)

Infer the search space that will be used by relative sampling in the target trial.

reseed_rng()

Reseed sampler's random number generator.

sample_independent(study, trial, param_name, ...)

Sample a parameter for a given distribution.

sample_relative(study, trial, search_space)

Sample parameters in a given search space.

after_trial(study, trial, state, values)[source]

トライアルの事後処理

目的関数が実行された後、トライアルが終了して状態が保存される直前に呼び出されます。

Note

v2.4.0 で実験的機能として追加されました。インターフェースは予告なく変更される可能性があります。 詳細は https://github.com/optuna/optuna/releases/tag/v2.4.0 を参照してください。

Parameters:
  • study (Study) – 対象のスタディオブジェクト

  • trial (FrozenTrial) – 対象のトライアルオブジェクト このオブジェクトを変更する前にコピーを取得してください

  • state (TrialState) – トライアルの最終状態

  • values (Sequence[float] | None) – トライアルの最終値 トライアルが成功した場合、None ではありません

Return type:

None

before_trial(study, trial)[source]

トライアルの事前処理

目的関数が呼び出される前、トライアルがインスタンス化された直後に呼び出されます。 より正確には、トライアルの初期化中、infer_relative_search_space() が呼び出される直前に このメソッドが実行されます。つまり、探索空間を推論する前に行うべき事前処理を担当します。

Note

v3.3.0 で実験的機能として追加されました。インターフェースは予告なく変更される可能性があります。 詳細は https://github.com/optuna/optuna/releases/tag/v3.3.0 を参照してください。

Parameters:
  • study (Study) – 対象のスタディオブジェクト

  • trial (FrozenTrial) – 対象のトライアルオブジェクト

Return type:

None

infer_relative_search_space(study, trial)[source]

対象トライアルで相対サンプリングに使用する探索空間を推論します

sample_relative() メソッドの直前に呼び出され、 このメソッドが返す探索空間が渡されます。探索空間に含まれないパラメータは sample_independent() メソッドでサンプリングされます。

Parameters:
  • study (Study) – 対象のスタディオブジェクト

  • trial (FrozenTrial) – 対象のトライアルオブジェクト このオブジェクトを変更する前にコピーを取得してください

Returns:

パラメータ名とパラメータの分布を含む辞書

Return type:

dict[str, BaseDistribution]

reseed_rng()[source]

サンプラーの乱数生成器のシードをリセットします

このメソッドは、n_jobs>1 オプションでトライアルを並列実行する際に Study インスタンスによって呼び出されます。 この場合、乱数生成器の状態を含めてサンプラーインスタンスが複製され、 同じ値が提案される可能性があります。この問題を防ぐため、 各乱数生成器に異なるシードを割り当てます

Return type:

None

sample_independent(study, trial, param_name, param_distribution)[source]

指定された分布からパラメータをサンプリングします

sample_relative() メソッドが返す探索空間に含まれない パラメータに対してのみ呼び出されます。このメソッドは、ランダムサンプリングや TPE など、 パラメータ間の関係を使用しないサンプリングアルゴリズムに適しています

Note

組み込みサンプラーは失敗したトライアルを無視して新しいパラメータをサンプリングします。 したがって、失敗したトライアルはサンプラーの観点では削除されたものとみなされます

Parameters:
  • study (Study) – 対象のスタディオブジェクト

  • trial (FrozenTrial) – 対象のトライアルオブジェクト このオブジェクトを変更する前にコピーを取得してください

  • param_name (str) – サンプリングするパラメータの名前

  • param_distribution (BaseDistribution) – サンプリングアルゴリズムの事前分布とスケールを指定する分布オブジェクト

Returns:

パラメータ値

Return type:

Any

sample_relative(study, trial, search_space)[source]

指定された探索空間からパラメータをサンプリングします

トライアルの開始時に1度だけ呼び出されます (目的関数の評価の直前に)。 このメソッドは、ガウス過程や CMA-ES など、パラメータ間の関係を利用する サンプリングアルゴリズムに適しています

Note

組み込みサンプラーは失敗したトライアルを無視して新しいパラメータをサンプリングします。 したがって、失敗したトライアルはサンプラーの観点では削除されたものとみなされます

Parameters:
  • study (Study) – 対象のスタディオブジェクト

  • trial (FrozenTrial) – 対象のトライアルオブジェクト このオブジェクトを変更する前にコピーを取得してください

  • search_space (dict[str, BaseDistribution]) – infer_relative_search_space() で返される探索空間

Returns:

パラメータ名と値を含む辞書

Return type:

dict[str, Any]