optuna.copy_study

optuna.copy_study(*, from_study_name, from_storage, to_storage, to_study_name=None)[源代码]

将一个 study 从一个存储复制到另一个存储。

study 中 objective 的方向、trials、用户属性和系统属性都会被复制。

注意

copy_study() 即使在优化进行中也会复制 study。这意味着用户会得到一个包含未完成 trial 的复制 study。

示例

import optuna


def objective(trial):
    x = trial.suggest_float("x", -10, 10)
    return (x - 2) ** 2


study = optuna.create_study(
    study_name="example-study",
    storage="sqlite:///example.db",
)
study.optimize(objective, n_trials=3)

optuna.copy_study(
    from_study_name="example-study",
    from_storage="sqlite:///example.db",
    to_storage="sqlite:///example_copy.db",
)

study = optuna.load_study(
    study_name=None,
    storage="sqlite:///example_copy.db",
)
参数:
  • from_study_name (str) – study 的名称。

  • from_storage (str | BaseStorage) – 源数据库 URL,例如 sqlite:///example.db。有关更多详细信息,请参阅 create_study() 的文档。

  • to_storage (str | BaseStorage) – 目标数据库 URL。

  • to_study_name (str | None) – 创建的 study 的名称。如果省略,则使用 from_study_name

引发:

DuplicatedStudyError – 如果目标存储中已存在同名的 study。

返回类型:

None