局部搜索
smac.acquisition.maximizer.local_search #
LocalSearch #
LocalSearch(
configspace: ConfigurationSpace,
acquisition_function: AbstractAcquisitionFunction
| None = None,
challengers: int = 5000,
max_steps: int | None = None,
n_steps_plateau_walk: int = 10,
vectorization_min_obtain: int = 2,
vectorization_max_obtain: int = 64,
seed: int = 0,
)
基类: AbstractAcquisitionMaximizer
SMAC 局部搜索的实现。
参数#
configspace : ConfigurationSpace acquisition_function : AbstractAcquisitionFunction challengers : int, 默认为 5000 挑战者数量。 max_steps: int | None, 默认为 None 局部搜索将执行的最大迭代次数。 n_steps_plateau_walk: int, 默认为 10 局部搜索终止前在平稳期行走的步数。 vectorization_min_obtain : int, 默认为 2 对于每个局部搜索的向量化调用,一次性获得的最小邻居数量。可以调整此参数以减少 SMAC 的开销。 vectorization_max_obtain : int, 默认为 64 对于每个局部搜索的向量化调用,一次性获得的最大邻居数量。可以调整此参数以减少 SMAC 的开销。 seed : int, 默认为 0
源代码位于 smac/acquisition/maximizer/local_search.py
acquisition_function property
writable
#
acquisition_function: AbstractAcquisitionFunction | None
用于最大化的采集函数。
maximize #
maximize(
previous_configs: list[Configuration],
n_points: int | None = None,
random_design: AbstractRandomDesign | None = None,
) -> Iterator[Configuration]
使用 _maximize
(由子类实现)最大化采集函数。
参数#
previous_configs: list[Configuration] 先前评估过的配置。 n_points: int, 默认为 None 要采样的点数和要返回的配置数量。如果未指定 n_points,则使用 self._challengers。语义取决于具体实现。 random_design: AbstractRandomDesign, 默认为 None 返回的 ChallengerList 的一部分,以便我们可以通过随机设计定义的方案交错插入随机配置。此函数末尾会调用 random_design.next_iteration() 方法。
返回值#
challengers : Iterator[Configuration] 由配置组成的迭代器。