optuna.storages.RetryFailedTrialCallback

class optuna.storages.RetryFailedTrialCallback(max_retry=None, inherit_intermediate_values=False)[source]

最多重试失败的 trial 指定次数。

当 trial 失败时,可以将此回调与 optuna.storages 中的某个类一起使用,以便在 TrialState.WAITING 中重新创建 trial,将其排队以便再次运行。

可以通过 retried_trial_number() 函数识别失败的 trial。即使发生重复失败(重试的 trial 再次失败),此方法也会返回原始 trial 的编号。要获取包含重试 trial 编号及其原始 trial 的完整列表,请调用 retry_history() 函数。

此回调对于 trial 可能因外部原因(例如被其他进程抢占)而失败的环境很有帮助。

用法

import optuna
from optuna.storages import RetryFailedTrialCallback

storage = optuna.storages.RDBStorage(
    url="sqlite:///:memory:",
    heartbeat_interval=60,
    grace_period=120,
    failed_trial_callback=RetryFailedTrialCallback(max_retry=3),
)

study = optuna.create_study(
    storage=storage,
)

另请参阅

请参阅 RDBStorage

参数:
  • max_retry (int | None) – trial 可以重试的最大次数。必须设置为 None 或整数。如果设置为默认值 None,将无限重试。如果设置为整数,将只重试该次数。

  • inherit_intermediate_values (bool) – 从失败的 trial 继承 optuna.trial.Trial.report() 报告的 trial.intermediate_values 的选项。默认为 False

注意

在 v2.8.0 中作为实验性功能添加。接口在后续版本中可能在没有事先通知的情况下发生更改。请参阅 https://github.com/optuna/optuna/releases/tag/v2.8.0

方法

retried_trial_number(trial)

返回正在重试的原始 trial 的编号。

retry_history(trial)

返回与指定 trial 相关的重试 trial 编号列表。

static retried_trial_number(trial)[source]

返回正在重试的原始 trial 的编号。

参数:

trial (FrozenTrial) – trial 对象。

返回:

首次失败的 trial 的编号。如果不是对先前 trial 的重试,则返回 None

返回类型:

int | None

注意

在 v2.8.0 中作为实验性功能添加。接口在后续版本中可能在没有事先通知的情况下发生更改。请参阅 https://github.com/optuna/optuna/releases/tag/v2.8.0

static retry_history(trial)[source]

返回与指定 trial 相关的重试 trial 编号列表。

参数:

trial (FrozenTrial) – trial 对象。

返回:

按重试 trial 系列的升序排列的 trial 编号列表。列表的第一个元素表示原始 trial,它与 retried_trial_number() 相同,最后一个元素是重试系列中指定 trial 前面的那个。如果指定 trial 不是任何 trial 的重试,则返回一个空列表。

返回类型:

list[int]

注意

在 v3.0.0 中作为实验性功能添加。接口在后续版本中可能在没有事先通知的情况下发生更改。请参阅 https://github.com/optuna/optuna/releases/tag/v3.0.0