Study

class optuna.multi_objective.study.MultiObjectiveStudy(study: optuna.study.Study)[源代码]

多目标优化对应的 study 对象,也就是 trial 的集合。

该对象提供了一系列接口,可用于运行新的 Trial 、获取 trial 历史记录和设置/获取用户定义属性。

注意,我们并不推荐直接使用该构造函数。要创建或者加载一个 study 的话,请参考 create_study()load_study()

注解

在 v1.4.0 中作为试验性特性引入,在未来版本中,该接口可能在没有预先告知的情况下被改变。参考 https://github.com/optuna/optuna/releases/tag/v1.4.0.

property directions

返回优化方向列表。

返回

一个包含了每一个目标函数值的优化方向的列表。

enqueue_trial(params: Dict[str, Any])None[源代码]

将一个指定参数值的 trial 送入队列。

你可以固定在下一次目标函数求值中将用到的采样参数。

更多细节请参考 optuna.study.Study.enqueue_trial() 的文档。

参数

params -- 传递给目标函数的参数值。

get_pareto_front_trials() → List[optuna.multi_objective.trial.FrozenMultiObjectiveTrial][源代码]

返回属于该 study 的帕累托前言面的 trial 。

如果没有其他 trial 能决定整个 trial 的话,该 trial 属于对应的帕累托前沿面。我们称一个 trial t0 决定了另一个 trial t1 if `` 如果 all(v0 <= v1) for v0, v1 in zip(t0.values, t1.values) 而且 any(v0 < v1) for v0, v1 in zip(t0.values, t1.values) 成立的话。

返回

一个由 FrozenMultiObjectiveTrial 对象构成的列表。

get_trials(deepcopy: bool = True) → List[optuna.multi_objective.trial.FrozenMultiObjectiveTrial][源代码]

返回该 study 中所有的 trial 。

返回的 trial 根据 trial number 排序。

对库用户来说,我们推荐使用更上手的 trials 属性来获取 trial。

参数

deepcopy -- 用于控制是否对 trial 应用 copy.deepcopy() 的选项。注意,如果你将该选项设置成 False , 那就不要修改任何返回 trial 中的东西。否则 study 的内部状态可能会改变并且发生无法预知的行为。

返回

一个由 FrozenMultiObjectiveTrial 对象构成的列表。

property n_objectives

返回目标函数的数量。

返回

目标函数的数量。

optimize(objective: Callable[[multi_objective.trial.MultiObjectiveTrial], Tuple[float]], timeout: Optional[int] = None, n_trials: Optional[int] = None, n_jobs: int = 1, catch: Union[Tuple[()], Tuple[Type[Exception]]] = (), callbacks: Optional[List[Callable[[multi_objective.study.MultiObjectiveStudy, multi_objective.trial.FrozenMultiObjectiveTrial], None]]] = None, gc_after_trial: bool = True, show_progress_bar: bool = False)None[源代码]

优化一个目标函数。

除了接受一个返回多个目标函数值的目标函数外,该方法和 optuna.study.Study.optimize() 是一样的。

更多细节请参考 optuna.study.Study.optimize() 的文档。

property sampler

返回 sampler 。

返回

A BaseMultiObjectiveSampler object.

set_user_attr(key: str, value: Any)None[源代码]

设定一个该 study 的用户属性。

参数
  • key -- 属性键

  • value -- 属性值,该值应当是可 JSON 序列化的。

property trials

返回该 study 中所有的 trial 。

返回的 trial 根据 trial number 排序。

这是 self.get_trials(deepcopy=True) 的简写形式。

返回

一个由 FrozenMultiObjectiveTrial 对象构成的列表。

property user_attrs

返回用户属性。

返回

包含所有用户属性的字典。

optuna.multi_objective.study.create_study(directions: List[str], study_name: Optional[str] = None, storage: Union[None, str, optuna.storages._base.BaseStorage] = None, sampler: Optional[multi_objective.samplers.BaseMultiObjectiveSampler] = None, load_if_exists: bool = False)optuna.multi_objective.study.MultiObjectiveStudy[源代码]

创建一个新的 MultiObjectiveStudy

参数
返回

MultiObjectiveStudy 对象。

注解

在 v1.4.0 中作为试验性特性引入,在未来版本中,该接口可能在没有预先告知的情况下被改变。参考 https://github.com/optuna/optuna/releases/tag/v1.4.0.

optuna.multi_objective.study.load_study(study_name: str, storage: Union[str, optuna.storages._base.BaseStorage], sampler: Optional[multi_objective.samplers.BaseMultiObjectiveSampler] = None)optuna.multi_objective.study.MultiObjectiveStudy[源代码]

加载指定名称的 MultiObjectiveStudy

参数
  • study_name -- Study 名。每个 study 都有一个唯一名称作为标识符。

  • storage -- 像 sqlite:///example.db 这样的数据库 URL 。 更多细节请参考 create_study()

  • sampler -- A sampler object that implements background algorithm for value suggestion. If None is specified, RandomMultiObjectiveSampler is used as the default. See also samplers.

返回

MultiObjectiveStudy 对象。

注解

在 v1.4.0 中作为试验性特性引入,在未来版本中,该接口可能在没有预先告知的情况下被改变。参考 https://github.com/optuna/optuna/releases/tag/v1.4.0.