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,
)

See also

RDBStorage を参照してください。

Parameters:
  • max_retry (int | None) – トライアルを再試行する最大回数。None または整数を指定します。 None を指定すると無制限に再試行します。整数を指定するとその回数まで再試行します。

  • inherit_intermediate_values (bool) – 失敗したトライアルの optuna.trial.Trial.report() で報告された trial.intermediate_values を引き継ぐオプション。 デフォルトは False です。

Note

v2.8.0 で実験的機能として追加されました。今後のバージョンで予告なくインターフェースが変更される可能性があります。 詳細は https://github.com/optuna/optuna/releases/tag/v2.8.0 を参照してください。

メソッド

retried_trial_number(trial)

Return the number of the original trial being retried.

retry_history(trial)

Return the list of retried trial numbers with respect to the specified trial.

static retried_trial_number(trial)[source]

再試行されている元のトライアルの番号を返します。

Parameters:

trial (FrozenTrial) – トライアルオブジェクト

Returns:

最初の失敗トライアルの番号。前のトライアルの再試行でない場合、None を返します。

Return type:

int | None

static retry_history(trial)[source]

指定したトライアルに対する再試行されたトライアル番号のリストを返します。

Parameters:

trial (FrozenTrial) – トライアルオブジェクト

Returns:

再試行されたトライアル番号の昇順リスト。リストの最初の項目は retried_trial_number() と同じ元のトライアルを示し、 最後の項目は指定したトライアルの直前のトライアルを示します。指定したトライアルが 他のトライアルの再試行でない場合、空のリストを返します。

Return type:

list[int]

static retry_history(trial)[source]
Parameters:

trial (FrozenTrial)

Return type:

list[int]