Smbo
smac.main.smbo #
SMBO #
SMBO(
scenario: Scenario,
runner: AbstractRunner,
runhistory: RunHistory,
intensifier: AbstractIntensifier,
overwrite: bool = False,
)
实现了主要的贝叶斯优化循环。
参数#
scenario : Scenario 场景对象,包含所有环境信息。
runner : AbstractRunner 运行器(包含目标函数)在内部被调用以评估试验性能。
runhistory : Runhistory 运行历史记录存储所有试验。
intensifier : AbstractIntensifier 强化器决定接下来应该运行哪个试验(配置、种子、预算和实例的组合)。
overwrite: bool, 默认为 False 当为 True 时,如果找到与当前设置元数据不一致的先前运行结果,则覆盖运行结果。如果 overwrite
设置为 False,则会询问用户确切行为(完全覆盖、保存旧运行或使用旧结果)。
警告#
此模型只能通过 facade 进行初始化。
源代码位于 smac/main/smbo.py
ask #
ask() -> TrialInfo
向强化器询问下一个试验。
返回值#
info : TrialInfo 关于试验的信息(配置、实例、种子、预算)。
源代码位于 smac/main/smbo.py
exists #
检查与运行相关的文件是否已存在。检查由优化器创建的所有文件。
参数#
filename : str | Path SMAC 运行文件夹的名称。
源代码位于 smac/main/smbo.py
load #
从场景中指定的输出目录加载优化器、强化器和运行历史。
源代码位于 smac/main/smbo.py
optimize #
运行贝叶斯优化循环。
参数#
data_to_scatter: dict[str, Any] | None 当用户将数据从本地进程散布到分布式网络时,这些数据会以轮询方式按核心数量分组分发。粗略地说,我们可以将这些数据保存在内存中,这样每次执行带有大数据集的目标函数时,就不必对数据进行(反)序列化。例如,当你的目标函数有一个跨所有目标函数共享的大数据集时,这个参数非常有用。
返回值#
incumbent : Configuration 找到的最佳配置。
源代码位于 smac/main/smbo.py
257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 |
|
print_stats #
打印所有统计信息。
源代码位于 smac/main/smbo.py
register_callback #
注册一个回调函数,用于在贝叶斯优化循环之前、期间和之后调用。
默认情况下,回调函数被附加到列表中。
参数#
callback : Callback 要注册的回调函数。
index : int | None, optional 回调函数应该注册的索引。默认为 None。如果为 None,则将回调函数附加到列表中。
源代码位于 smac/main/smbo.py
reset #
重置优化器、强化器和运行历史的内部变量。
源代码位于 smac/main/smbo.py
save #
保存当前的统计信息、运行历史和强化器。
源代码位于 smac/main/smbo.py
tell #
tell(
info: TrialInfo, value: TrialValue, save: bool = True
) -> None
将试验结果添加到运行历史并更新统计对象。
参数#
info : TrialInfo 描述要处理结果的试验。
value : TrialValue 包含有关试验执行的相关信息。
save : bool, optional to True 是否应保存运行历史。
源代码位于 smac/main/smbo.py
update_acquisition_function #
update_acquisition_function(
acquisition_function: AbstractAcquisitionFunction,
) -> None
更新采集函数,包括相关的模型和采集优化器。
源代码位于 smac/main/smbo.py
update_model #
update_model(model: AbstractModel) -> None
更新模型并更新采集函数。
源代码位于 smac/main/smbo.py
validate #
在优化过程中使用的种子之外的其他种子以及最高预算(如果预算类型是实值)上验证配置。不超过场景中定义的配置调用或种子的最大数量。
参数#
config : Configuration 要验证的配置。
In case that the budget type is real-valued budget, this argument is ignored.
seed : int | None, defaults to None 如果为 None,则使用场景中的种子。
返回值#
cost : float | ndarray[float] 配置的平均成本。在多保真度的情况下,每个目标的成本都将平均。