optuna.pruners.ThresholdPruner
- class optuna.pruners.ThresholdPruner(lower=None, upper=None, n_warmup_steps=0, interval_steps=1)[source]
トライアルの異常値を検出するプルーナー。
メトリクスが上限閾値を超えた場合、下限閾値を下回った場合、 または
nan
に達した場合にプルーニングを実行します。使用例
from optuna import create_study from optuna.pruners import ThresholdPruner from optuna import TrialPruned def objective_for_upper(trial): for step, y in enumerate(ys_for_upper): trial.report(y, step) if trial.should_prune(): raise TrialPruned() return ys_for_upper[-1] def objective_for_lower(trial): for step, y in enumerate(ys_for_lower): trial.report(y, step) if trial.should_prune(): raise TrialPruned() return ys_for_lower[-1] ys_for_upper = [0.0, 0.1, 0.2, 0.5, 1.2] ys_for_lower = [100.0, 90.0, 0.1, 0.0, -1] study = create_study(pruner=ThresholdPruner(upper=1.0)) study.optimize(objective_for_upper, n_trials=10) study = create_study(pruner=ThresholdPruner(lower=0.0)) study.optimize(objective_for_lower, n_trials=10)
- Parameters:
lower (float | None) – プルーナーがプルーニングを実行するかどうかを決定する最小値。 中間値がこの値より小さい場合にプルーニングを実行します。
upper (float | None) – プルーナーがプルーニングを実行するかどうかを決定する最大値。 中間値がこの値より大きい場合にプルーニングを実行します。
n_warmup_steps (int) – 指定されたウォームアップステップ数未満のステップではプルーニングが無効になります。
interval_steps (int) – プルーニングチェック間のステップ間隔(ウォームアップステップをオフセット)。 プルーニングチェック時点で値が報告されていない場合、 そのチェックは値が報告されるまで延期されます。値は少なくとも1である必要があります。
メソッド
prune
(study, trial)Judge whether the trial should be pruned based on the reported values.
- prune(study, trial)[source]
報告された値に基づいてトライアルをプルーニングするかどうかを判断します。
このメソッドはライブラリのユーザーが直接呼び出すことを想定していません。代わりに、
optuna.trial.Trial.report()
とoptuna.trial.Trial.should_prune()
が 目的関数内でプルーニング機構を実装するためのインターフェースを提供します。- Parameters:
study (Study) – 対象のスタディオブジェクト。
trial (FrozenTrial) – 対象のトライアルオブジェクト(FrozenTrial)。 このオブジェクトを変更する前にコピーを作成してください。
- Returns:
トライアルをプルーニングするかどうかを表すブール値。
- Return type: