黑盒外观
smac.facade.blackbox_facade #
BlackBoxFacade #
BlackBoxFacade(
scenario: Scenario,
target_function: Callable | str | AbstractRunner,
*,
model: AbstractModel | None = None,
acquisition_function: AbstractAcquisitionFunction
| None = None,
acquisition_maximizer: AbstractAcquisitionMaximizer
| None = None,
initial_design: AbstractInitialDesign | None = None,
random_design: AbstractRandomDesign | None = None,
intensifier: AbstractIntensifier | None = None,
multi_objective_algorithm: AbstractMultiObjectiveAlgorithm
| None = None,
runhistory_encoder: AbstractRunHistoryEncoder
| None = None,
config_selector: ConfigSelector | None = None,
logging_level: int
| Path
| Literal[False]
| None = None,
callbacks: list[Callback] = None,
overwrite: bool = False,
dask_client: Client | None = None
)
源代码位于 smac/facade/abstract_facade.py
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 |
|
get_acquisition_function 静态方法
#
返回预期改进采集函数。
参数#
scenario : Scenario xi : float, 默认为 0.0 控制采集函数的探索与利用之间的平衡。
源代码位于 smac/facade/blackbox_facade.py
get_acquisition_maximizer 静态方法
#
get_acquisition_maximizer(
scenario: Scenario,
*,
challengers: int = 1000,
local_search_iterations: int = 10
) -> LocalAndSortedRandomSearch
返回本地搜索和排序随机搜索作为采集最大化器。
参数#
challengers : int, 默认为 1000 挑战者数量。local_search_iterations: int, 默认为 10 局部搜索迭代次数。
源代码位于 smac/facade/blackbox_facade.py
get_config_selector 静态方法
#
get_config_selector(
scenario: Scenario,
*,
retrain_after: int = 1,
retries: int = 16
) -> ConfigSelector
返回默认配置选择器。
源代码位于 smac/facade/blackbox_facade.py
get_initial_design 静态方法
#
get_initial_design(
scenario: Scenario,
*,
n_configs: int | None = None,
n_configs_per_hyperparamter: int = 8,
max_ratio: float = 0.25,
additional_configs: list[Configuration] = None
) -> SobolInitialDesign
返回 Sobol 设计实例。
参数#
scenario : Scenario n_configs : int | None, 默认为 None 初始配置的数量(禁用参数 n_configs_per_hyperparameter
)。n_configs_per_hyperparameter: int, 默认为 8 每个超参数的初始配置数量。例如,如果我的配置空间包含五个超参数且 n_configs_per_hyperparameter
设置为 10,则将采样 50 个初始配置。max_ratio: float, 默认为 0.25 在初始设计中最多使用 scenario.n_trials
* max_ratio
数量的配置。附加配置不受此参数影响。additional_configs: list[Configuration], 默认为 [] 向初始设计添加附加配置。
源代码位于 smac/facade/blackbox_facade.py
get_intensifier 静态方法
#
get_intensifier(
scenario: Scenario,
*,
max_config_calls: int = 3,
max_incumbents: int = 20
) -> Intensifier
返回 Intensifier
作为强化器。使用 race_against
的默认配置。
参数#
scenario : Scenario max_config_calls : int, 默认为 3 最大配置评估次数。基本上,对于一个配置最多应该评估多少个实例-种子键。max_incumbents : int, 默认为 10 在多目标情况下跟踪多少个最优配置。
源代码位于 smac/facade/blackbox_facade.py
get_kernel 静态方法
#
返回高斯过程代理模型的核函数。
核函数是根据超参数类型组成的复合核函数:分类(HammingKernel)、连续(Matern)和噪声核函数(White)。
源代码位于 smac/facade/blackbox_facade.py
get_model 静态方法
#
get_model(
scenario: Scenario,
*,
model_type: str | None = None,
kernel: Kernel | None = None
) -> AbstractGaussianProcess
返回高斯过程代理模型。
参数#
scenario : Scenario model_type : str | None, 默认为 None 应选择哪种高斯过程模型。在 vanilla
和 mcmc
之间选择。kernel : kernels.Kernel | None, 默认为 None 代理模型中使用的核函数。
返回#
model : GaussianProcess | MCMCGaussianProcess 实例化的 Gaussian Process。
源代码位于 smac/facade/blackbox_facade.py
get_multi_objective_algorithm 静态方法
#
get_multi_objective_algorithm(
scenario: Scenario,
*,
objective_weights: list[float] | None = None
) -> MeanAggregationStrategy
返回多目标算法的平均聚合策略。
参数#
scenario : Scenario objective_weights : list[float] | None, 默认为 None 用于加权平均目标的权重。必须与目标数量长度相同。
源代码位于 smac/facade/blackbox_facade.py
get_random_design 静态方法
#
get_random_design(
scenario: Scenario,
*,
probability: float = 0.08447232371720552
) -> ProbabilityRandomDesign
返回 ProbabilityRandomDesign
用于交错配置。
参数#
probability : float, 默认为 0.08447232371720552 随机抽取配置的概率。
源代码位于 smac/facade/blackbox_facade.py
get_runhistory_encoder 静态方法
#
get_runhistory_encoder(
scenario: Scenario,
) -> RunHistoryEncoder
optimize #
优化算法的配置。
参数#
data_to_scatter: dict[str, Any] | None 我们首先注意到此参数仅对 dask_runner 有效!当用户将其本地进程中的数据分散到分布式网络时,此数据将以轮循方式按核心数量分组分发。粗略地说,我们可以将此数据保留在内存中,这样就不必每次需要执行带有大型数据集的目标函数时都进行(反)序列化。例如,当您的目标函数共享大型数据集时,此参数非常有用。
返回#
incumbent : Configuration 找到的最佳配置。
源代码位于 smac/facade/abstract_facade.py
tell #
tell(
info: TrialInfo, value: TrialValue, save: bool = True
) -> None
将试验结果添加到运行历史并更新强化器。
参数#
info: TrialInfo 描述要处理结果的试验。value: TrialValue 包含与试验执行相关的有用信息。save : bool, 可选,默认为 True 是否应保存运行历史。
源代码位于 smac/facade/abstract_facade.py
validate #
在与优化过程中使用的种子不同的种子以及最高预算(如果预算类型为实数值)上验证配置。
参数#
config : Configuration 要验证的配置。instances : list[str] | None, 默认为 None 要验证的实例。如果为 None,则使用场景中指定的所有实例。如果预算类型为实数值,则忽略此参数。seed : int | None, 默认为 None 如果为 None,则使用场景中的种子。
返回#
cost : float | list[float] 配置的平均成本。在多保真度情况下,每个目标的成本都会被平均。