optuna.study.copy_study

optuna.study.copy_study(*, from_study_name, from_storage, to_storage, to_study_name=None)[source]

将研究从一个存储复制到另一个存储。

研究中目标的方向、试验、用户属性和系统属性都会被复制。

注意

即使优化正在进行中,copy_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) – 要复制的研究的名称。

  • from_storage (str | BaseStorage) – 源数据库 URL,例如 sqlite:///example.db。详情请参阅 create_study() 的文档。

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

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

抛出:

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

返回类型:

None