optuna.trial.FrozenTrial
- class optuna.trial.FrozenTrial(number, state, value, datetime_start, datetime_complete, params, distributions, user_attrs, system_attrs, intermediate_values, trial_id, *, values=None)[source]
Trial
の状態と結果を保持するクラス。このクラスのインスタンスは
Trial
と同じメソッドを持ちますが、Study
とは関連付けられておらず、参照も持ちません。そのため、
set_user_attr()
のようなメソッドを使って ストレージに永続的な変更を加えることはできません。params
に保存されたパラメータ値を提案し、どの分布からもサンプリングしません。目的関数の評価に使用でき (
optimize()
参照)、 最適化結果のデプロイに便利です。使用例
最適化済みのパラメータ値で目的関数を再評価する例。
import optuna def objective(trial): x = trial.suggest_float("x", -1, 1) return x**2 study = optuna.create_study() study.optimize(objective, n_trials=3) assert objective(study.best_trial) == study.best_value
Note
名前とは異なり、インスタンスは変更可能です。 例えば
set_user_attr()
は オブジェクトのユーザ属性をその場で更新します。例:
上書きされた属性
import copy import datetime import optuna def objective(trial): x = trial.suggest_float("x", -1, 1) # このユーザ属性は常に異なります trial.set_user_attr("評価時間", datetime.datetime.now()) return x**2 study = optuna.create_study() study.optimize(objective, n_trials=3) best_trial = study.best_trial best_trial_copy = copy.deepcopy(best_trial) # 再評価 objective(best_trial) # 再評価によりユーザ属性が上書きされます assert best_trial.user_attrs != best_trial_copy.user_attrs
Note
メソッドとプロパティの詳細は
Trial
を参照してください。- Parameters:
number (int)
state (TrialState)
value (float | None)
datetime_start (datetime.datetime | None)
datetime_complete (datetime.datetime | None)
trial_id (int)
values (Sequence[float] | None)
- state
Trial
の状態 (TrialState
)。
- params
提案されたパラメータを含む辞書。
- user_attrs
optuna.trial.Trial.set_user_attr()
で設定されたTrial
の属性を含む辞書。
- system_attrs
optuna.trial.Trial.set_system_attr()
で設定されたTrial
の属性を含む辞書。
- intermediate_values
optuna.trial.Trial.report()
で設定された中間目的関数値。
メソッド
report
(value, step)Interface of report function.
set_system_attr
(key, value)set_user_attr
(key, value)Suggest whether the trial should be pruned or not.
suggest_categorical
()suggest_discrete_uniform
(name, low, high, q)suggest_float
(name, low, high, *[, step, log])suggest_int
(name, low, high, *[, step, log])suggest_loguniform
(name, low, high)suggest_uniform
(name, low, high)属性
Return the elapsed time taken to complete the trial.
Return the maximum step of
intermediate_values
in the trial.- property last_step: int | None
トライアルの
intermediate_values
における最大ステップを返します。- Returns:
中間値の最大ステップ。
- report(value, step)[source]
- Parameters:
value (float) – 目的関数から返された値。
step (int) – トライアルのステップ(例:ニューラルネットワークのエポック数)。 プルーナーは
step
が0から始まると仮定します。例えば、MedianPruner
はウォームアップ機構としてstep
がn_warmup_steps
未満かどうかを単純にチェックします。
- Return type:
None
- set_system_attr(key, value)[source]
Warning
v3.1.0 で非推奨になりました。この機能は将来的に削除される予定です。 この機能の削除は現在 v5.0.0 で予定されていますが、このスケジュールは変更される可能性があります。 https://github.com/optuna/optuna/releases/tag/v3.1.0 を参照してください。
- should_prune()[source]
トライアルをプルーニングすべきかどうかを提案します。
プルーニングアルゴリズムに関係なく、提案は常に
False
です。Note
FrozenTrial
はパラメータの組み合わせを1つしかサンプリングしません。
- suggest_discrete_uniform(name, low, high, q)[source]
Warning
v3.0.0 で非推奨になりました。この機能は将来的に削除される予定です。 この機能の削除は現在 v6.0.0 で予定されていますが、このスケジュールは変更される可能性があります。 https://github.com/optuna/optuna/releases/tag/v3.0.0 を参照してください。
代わりに suggest_float(…, step=…) を使用してください。
- suggest_loguniform(name, low, high)[source]
Warning
v3.0.0 で非推奨になりました。この機能は将来的に削除される予定です。 この機能の削除は現在 v6.0.0 で予定されていますが、このスケジュールは変更される可能性があります。 https://github.com/optuna/optuna/releases/tag/v3.0.0 を参照してください。
代わりに suggest_float(…, log=True) を使用してください。
- suggest_uniform(name, low, high)[source]
Warning
v3.0.0 で非推奨になりました。この機能は将来的に削除される予定です。 この機能の削除は現在 v6.0.0 で予定されていますが、このスケジュールは変更される可能性があります。 https://github.com/optuna/optuna/releases/tag/v3.0.0 を参照してください。
代わりに suggest_float を使用してください。