optuna.storages.RetryFailedTrialCallback

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

最多重试失败的试验达到最大次数。

当试验失败时,此回调函数可与 optuna.storages 中的类一起使用,以在 TrialState.WAITING 状态下重新创建试验,从而将其排队等待再次运行。

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

此回调函数在试验可能因外部条件(例如被其他进程抢占)而失败的环境中非常有用。

用法

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) – 试验可以重试的最大次数。必须设置为 None 或一个整数。如果设置为默认值 None,则会无限重试。如果设置为一个整数,则只会重试那么多次。

  • inherit_intermediate_values (bool) – 是否从失败的试验中继承由 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)

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

retry_history(trial)

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

static retried_trial_number(trial)[source]

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

参数:

trial (FrozenTrial) – 试验对象。

返回:

第一个失败试验的编号。如果不是之前试验的重试,则返回 None

返回类型:

int | None

注意

在 v2.8.0 中作为实验性功能添加。接口可能在更新版本中更改,恕不另行通知。请参阅 https://github.com/optuna/optuna/releases/tag/v2.8.0

static retry_history(trial)[source]

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

参数:

trial (FrozenTrial) – 试验对象。

返回:

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

返回类型:

list[int]

注意

在 v3.0.0 中作为实验性功能添加。接口可能在更新版本中更改,恕不另行通知。请参阅 https://github.com/optuna/optuna/releases/tag/v3.0.0