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)[源代码]
一个
Trial的状态和结果。此类对象具有与
Trial相同的接口,但它不与任何Study关联,也没有任何指向Study的引用。因此,无法通过此对象本身对存储进行持久性更改,例如使用
set_user_attr()。它将建议存储在
params中的参数值,而不会从任何分布中采样值。它可以传递给目标函数(请参阅
optimize()),并且对于部署优化结果非常有用。示例
使用优化研究中的参数值重新评估目标函数。
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()将原地更新对象的用户属性。示例
被覆盖的属性。
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状态。
- value
目标函数的返回值。
value和values不能同时指定。
- values
目标函数值的序列。
Trial的目标函数值序列。如果问题是多目标优化,长度会大于 1。value和values不能同时指定。
- 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)建议是否应该修剪此 trial。
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)属性
返回完成 trial 所花费的经过时间。
返回 trial 中
intermediate_values的最大步长。- property last_step: int | None
返回 trial 中
intermediate_values的最大步长。- 返回:
中间值的最大步长。
- report(value, step)[源代码]
报告函数的接口。
由于
FrozenTrial不会被修剪,因此此 report 函数不执行任何操作。另请参阅
请参阅
should_prune()。- 参数:
value (float) – 从目标函数返回的值。
step (int) – trial 的步长(例如,神经网络训练的 epoch)。请注意,修剪器假定
step从零开始。例如,MedianPruner仅检查step是否小于n_warmup_steps以实现预热机制。
- 返回类型:
无
- set_system_attr(key, value)[源代码]
警告
已弃用 (v3.1.0)。此功能将在未来移除。此功能移除的计划时间为 v5.0.0,但此计划可能会有变动。请参阅 https://github.com/optuna/optuna/releases/tag/v3.1.0。
- should_prune()[源代码]
建议是否应该修剪此 trial。
无论采用何种修剪算法,建议值始终为
False。注意
FrozenTrial只采样一种参数组合。
- suggest_discrete_uniform(name, low, high, q)[源代码]
警告
v3.0.0 中已弃用。此功能将在未来版本中移除。此功能当前的移除计划是 v6.0.0,但此计划可能会更改。请参阅 https://github.com/optuna/optuna/releases/tag/v3.0.0。
请改用 suggest_float(…, step=…)。
- suggest_loguniform(name, low, high)[源代码]
警告
v3.0.0 中已弃用。此功能将在未来版本中移除。此功能当前的移除计划是 v6.0.0,但此计划可能会更改。请参阅 https://github.com/optuna/optuna/releases/tag/v3.0.0。
请改用 suggest_float(…, log=True)。