抽象串行运行器
smac.runner.abstract_serial_runner #
AbstractSerialRunner #
继承自: AbstractRunner
源代码位于 smac/runner/abstract_runner.py
中
run 抽象方法
#
run(
config: Configuration,
instance: str | None = None,
budget: float | None = None,
seed: int | None = None,
) -> tuple[
StatusType, float | list[float], float, float, dict
]
使用给定的配置,在单一的实例-预算-种子组合(即试验)上运行目标函数。
参数#
config : Configuration 传递给目标函数的配置。 instance : str | None,默认为 None 问题实例。 budget : float | None,默认为 None 一个正的实数值,表示目标函数内部处理的任意限制。 seed : int,默认为 None
返回值#
status : StatusType 试验状态。 cost : float | list[float] 试验产生的成本。 runtime : float 目标函数的运行时间。 cpu_time : float 目标函数在硬件上的运行时间。 additional_info : dict 所有其他的试验附加信息。
源代码位于 smac/runner/abstract_runner.py
中
run_wrapper #
run_wrapper(
trial_info: TrialInfo,
**dask_data_to_scatter: dict[str, Any]
) -> tuple[TrialInfo, TrialValue]
run() 方法的包装器,用于执行并检查给定配置的执行。此函数封装了常见的处理/流程,从而简化了 run() 方法的实现。
参数#
trial_info : RunInfo 包含足够信息以独立执行配置运行的对象。 dask_data_to_scatter: dict[str, Any] 当用户将其本地进程中的数据分散到分布式网络时,这些数据会以轮询方式根据核心数量进行分组分发。粗略地说,我们可以将这些数据保存在内存中,这样在每次希望使用大数据集执行目标函数时,就不必(反)序列化数据。例如,当您的目标函数有一个在所有目标函数中共享的大数据集时,此参数非常有用。
返回值#
info : TrialInfo 包含已启动配置的对象。 value : TrialValue 包含配置状态/性能信息。
源代码位于 smac/runner/abstract_runner.py
中
submit_trial #
submit_trial(trial_info: TrialInfo) -> None
此函数以串行方式提交一个 trial_info 对象。由于此任务只有一个工作器,此接口可以视为对 run
方法的包装器。
结果和异常都可以在此步骤完全确定,因此两个列表都被正确填充。
参数#
trial_info : TrialInfo 包含已启动配置的对象。
源代码位于 smac/runner/abstract_serial_runner.py
中
wait #
SMBO/强化器可能需要在试验完成后才能做出决策。对于串行运行器,无需等待,因为结果会立即可用。