optuna.trial.FrozenTrial
- class optuna.trial.FrozenTrial(number, state, value, datetime_start, datetime_complete, params, distributions, user_attrs, system_attrs, intermediate_values, trial_id, *, values=None)[source]
Trial
的状态和结果。此类对象与
Trial
具有相同的方法,但与之不关联,也不引用Study
。因此,无法仅通过此对象对存储进行持久性更改,例如使用
set_user_attr()
。它将建议存储在
params
中的参数值,并且不会从任何分布中抽样值。它可以传递给目标函数(参见
optimize()
),对于部署优化结果非常有用。示例
使用优化后的 study 参数值重新评估目标函数。
import optuna def objective(trial): x = trial.suggest_float("x", -1, 1) return x**2 study = optuna.create_study() study.optimize(objective, n_trials=3) assert objective(study.best_trial) == study.best_value
注意
尽管名称如此,实例是可变的。例如,
set_user_attr()
将会原地更新对象的 user 属性。示例
覆盖的属性。
import copy import datetime import optuna def objective(trial): x = trial.suggest_float("x", -1, 1) # this user attribute always differs trial.set_user_attr("evaluation time", datetime.datetime.now()) return x**2 study = optuna.create_study() study.optimize(objective, n_trials=3) best_trial = study.best_trial best_trial_copy = copy.deepcopy(best_trial) # re-evaluate objective(best_trial) # the user attribute is overwritten by re-evaluation assert best_trial.user_attrs != best_trial_copy.user_attrs
注意
请参考
Trial
了解方法和属性的详细信息。- 参数:
number (int)
state (TrialState)
value (float | None)
datetime_start (datetime.datetime | None)
datetime_complete (datetime.datetime | None)
trial_id (int)
values (Sequence[float] | None)
- state
TrialState
的Trial
。
- params
包含建议参数的字典。
- user_attrs
包含使用
optuna.trial.Trial.set_user_attr()
设置的Trial
属性的字典。
- system_attrs
包含使用
optuna.trial.Trial.set_system_attr()
设置的Trial
属性的字典。
- intermediate_values
使用
optuna.trial.Trial.report()
设置的中间目标值。
方法
report
(value, step)报告函数的接口。
set_system_attr
(key, value)set_user_attr
(key, value)建议是否应该修剪试运行。
suggest_categorical
()suggest_discrete_uniform
(name, low, high, q)suggest_float
(name, low, high, *[, step, log])suggest_int
(name, low, high, *[, step, log])suggest_loguniform
(name, low, high)suggest_uniform
(name, low, high)属性
返回完成试运行所花费的时间。
返回试运行中
intermediate_values
的最大步长。- property last_step: int | None
返回试运行中
intermediate_values
的最大步长。- 返回:
中间值的最大步长。
- report(value, step)[source]
报告函数的接口。
由于
FrozenTrial
不会被修剪,此报告函数不执行任何操作。另请参阅
请参阅
should_prune()
。- 参数:
value (float) – 目标函数返回的值。
step (int) – 试运行的步长(例如,神经网络训练的 Epoch)。请注意,剪枝器假定
step
从零开始。例如,MedianPruner
简单地检查step
是否小于n_warmup_steps
作为热身机制。
- 返回类型:
None
- set_system_attr(key, value)[source]
警告
自 v3.1.0 起已弃用。此功能将在未来移除。此功能的移除目前计划在 v5.0.0 进行,但此计划可能会更改。参见 https://github.com/optuna/optuna/releases/tag/v3.1.0。
- should_prune()[source]
建议是否应该修剪试运行。
无论采用何种剪枝算法,建议总是
False
。注意
FrozenTrial
只抽样一个参数组合。
- suggest_discrete_uniform(name, low, high, q)[source]
警告
自 v3.0.0 起已弃用。此功能将在未来移除。此功能的移除目前计划在 v6.0.0 进行,但此计划可能会更改。参见 https://github.com/optuna/optuna/releases/tag/v3.0.0。
请改用 suggest_float(…, step=…)。
- suggest_loguniform(name, low, high)[source]
警告
自 v3.0.0 起已弃用。此功能将在未来移除。此功能的移除目前计划在 v6.0.0 进行,但此计划可能会更改。参见 https://github.com/optuna/optuna/releases/tag/v3.0.0。
请改用 suggest_float(…, log=True)。