场景
smac.场景 #
场景 dataclass
#
Scenario(
configspace: ConfigurationSpace,
name: str | None = None,
output_directory: Path = Path("smac3_output"),
deterministic: bool = False,
objectives: str | list[str] = "cost",
crash_cost: float | list[float] = inf,
termination_cost_threshold: float | list[float] = inf,
walltime_limit: float = inf,
cputime_limit: float = inf,
trial_walltime_limit: float | None = None,
trial_memory_limit: int | None = None,
n_trials: int = 100,
use_default_config: bool = False,
instances: list[str] | None = None,
instance_features: dict[str, list[float]] | None = None,
min_budget: float | int | None = None,
max_budget: float | int | None = None,
seed: int = 0,
n_workers: int = 1,
)
场景管理环境变量,因此提供了优化执行的上下文框架。
参数#
configspace : ConfigurationSpace 用于从中采样配置的配置空间。 name : str | None,默认为 None 运行的名称。如果未传递名称,SMAC 将根据元数据生成一个哈希值。指定此参数可方便地识别您的运行。 output_directory : Path,默认为 Path("smac3_output") 保存输出的目录。文件保存在 ./output_directory/name/seed
中。 deterministic : bool,默认为 False 如果 deterministic 设置为 true,则只向目标函数传递一个种子。否则,将向目标函数传递多个种子(如果强化器的 n_seeds 大于 1),以确保泛化。 objectives : str | list[str] | None,默认为 "cost" 要优化的目标(s)。多目标优化需要此参数。 crash_cost : float | list[float],默认为 np.inf 定义失败试验的成本。在多目标情况下,每个目标可以关联不同的成本。 termination_cost_threshold : float | list[float],默认为 np.inf 定义优化应停止的成本阈值。在多目标情况下,每个目标必须关联一个成本。当所有目标都超过阈值时,优化停止。 walltime_limit : float,默认为 np.inf SMAC 允许运行的最大时间(秒)。 cputime_limit : float,默认为 np.inf SMAC 允许运行的最大 CPU 时间(秒)。 trial_walltime_limit : float | None,默认为 None 试验允许运行的最大时间(秒)。如果未指定,则不强制任何约束。否则,将由 pynisher 启动进程。 trial_memory_limit : int | None,默认为 None 试验允许使用的最大内存(MB)。如果未指定,则不强制任何约束。否则,将由 pynisher 启动进程。 n_trials : int,默认为 100 要运行的最大试验次数(配置、种子、预算和实例的组合,具体取决于任务)。 use_default_config: bool,默认为 False。如果为 True,则在初始设计中评估 configspace 的默认配置。出于历史基准测试原因,默认情况下为 False。请注意,这将导致初始设计的配置数量为 n_configs + 1。考虑到 n_trials,这将导致优化中评估的配置少一个。 instances : list[str] | None,默认为 None 要使用的实例名称。如果为 None,则不使用实例。实例可以是数据集名称、种子、子集等。 instance_features : dict[str, list[float]] | None,默认为 None 实例可以关联特征。例如,可以包含数据集的元数据(均值、方差等),然后这些元数据进一步用于扩展代理模型的训练数据。 min_budget : float | int | None,默认为 None 用于优化的最小预算(轮次、子集大小、实例数量等)。如果您使用多保真度或实例优化,请使用此参数。 max_budget : float | int | None,默认为 None 用于优化的最大预算(轮次、子集大小、实例数量等)。如果您使用多保真度或实例优化,请使用此参数。 seed : int,默认为 0 种子用于使结果可重现。如果 seed 为 -1,SMAC 将生成一个随机种子。 n_workers : int,默认为 1 用于并行化的 worker 数量。如果 n_workers
大于 1,SMAC 将使用 Dask 进行优化并行化。
__post_init__ #
检查配置是否有效。
源代码位于 smac/scenario.py
count_instance_features #
count_instance_features() -> int
计算实例特征的数量。
源代码位于 smac/scenario.py
load staticmethod
#
从文件中加载场景和配置空间。
源代码位于 smac/scenario.py
make_serializable staticmethod
#
使场景可序列化。
源代码位于 smac/scenario.py
save #
将内部变量和配置空间保存到文件中。