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)
- 参数:
方法
prune
(study, trial)根据报告的值判断是否应剪枝该试验。
- prune(study, trial)[source]
根据报告的值判断是否应剪枝该试验。
请注意,库用户不应直接调用此方法。相反,
optuna.trial.Trial.report()
和optuna.trial.Trial.should_prune()
提供了用户接口,用于在目标函数中实现剪枝机制。- 参数:
study (Study) – 目标研究的 Study 对象。
trial (FrozenTrial) – 目标试验的 FrozenTrial 对象。修改此对象前请创建副本。
- 返回:
一个布尔值,表示是否应剪枝该试验。
- 返回类型: