ray.tune.search.bayesopt.BayesOptSearch#

class ray.tune.search.bayesopt.BayesOptSearch(space: Dict | None = None, metric: str | None = None, mode: str | None = None, points_to_evaluate: List[Dict] | None = None, utility_kwargs: Dict | None = None, random_state: int = 42, random_search_steps: int = 10, verbose: int = 0, patience: int = 5, skip_duplicate: bool = True, analysis: ExperimentAnalysis | None = None)[源代码]#

基类:Searcher

使用 fmfn/BayesianOptimization 优化超参数。

fmfn/BayesianOptimization 是一个用于贝叶斯优化的库。更多信息可以在这里找到:fmfn/BayesianOptimization

此搜索器将自动过滤掉任何 NaN、inf 或 -inf 的结果。

您需要通过以下方式安装 fmfn/BayesianOptimization:

pip install bayesian-optimization

使用 space 初始化此搜索算法时,要求其采用 BayesianOptimization 搜索空间格式。否则,您应将 Tune 搜索空间传入 Tuner(param_space=...),搜索空间将自动为您转换。

请参阅此 贝叶斯优化示例笔记本 以获取示例。

参数:
  • space – 连续搜索空间。参数将从该空间中采样,用于运行试验。

  • metric – 训练结果目标值属性。如果为 None 但传递了模式,则默认使用匿名度量 _metric

  • mode – 其中之一 {min, max}。确定目标是最小化还是最大化指标属性。

  • points_to_evaluate – 初始参数建议首先运行。当你已经有一些好的参数想要首先运行以帮助算法为未来的参数做出更好的建议时,可以使用此功能。需要是一个包含配置的dict列表。

  • utility_kwargs – 定义效用函数的参数。默认值是一个包含三个键的字典:- kind: ucb (上置信界限) - kappa: 2.576 - xi: 0.0

  • random_state – 用于初始化贝叶斯优化。

  • random_search_steps – 初始随机搜索的数量。这是为了避免贝叶斯过程的初始局部过拟合。

  • verbose – 设置 BayesOpt 包的详细级别。

  • patience – 如果设置了耐心并且我们重复试验多次,我们将终止实验。

  • skip_duplicate – 跳过重复配置

  • analysis – 可选地,集成之前的分析。

Tune 自动将搜索空间转换为 BayesOptSearch 的格式:

from ray import tune
from ray.tune.search.bayesopt import BayesOptSearch

config = {
    "width": tune.uniform(0, 20),
    "height": tune.uniform(-100, 100)
}

bayesopt = BayesOptSearch(metric="mean_loss", mode="min")
tuner = tune.Tuner(
    my_func,
    tune_config=tune.TuneConfig(
        search_alg=baysopt,
    ),
    param_space=config,
)
tuner.fit()

如果你想手动传递搜索空间,代码会是这样的:

from ray import tune
from ray.tune.search.bayesopt import BayesOptSearch

space = {
    'width': (0, 20),
    'height': (-100, 100),
}
bayesopt = BayesOptSearch(space, metric="mean_loss", mode="min")
tuner = tune.Tuner(
    my_func,
    tune_config=tune.TuneConfig(
        search_alg=bayesopt,
    ),
)
tuner.fit()

方法

add_evaluated_point

传递从已单独评估的点获得的结果。

add_evaluated_trials

传递已单独评估的试验结果。

on_trial_complete

试用完成的通知。

on_trial_result

训练期间结果的通知(可选)。

register_analysis

将给定的分析整合到高斯过程中。

restore

恢复当前优化器状态。

restore_from_dir

从给定的 checkpoint_dir 恢复搜索器的状态。

save

存储当前优化器状态。

save_to_dir

自动将给定的搜索器保存到 checkpoint_dir。

set_max_concurrency

设置此搜索器可以运行的最大并发试验次数。

suggest

返回由黑箱函数探索的新点。

属性

CKPT_FILE_TMPL

FINISHED

metric

训练结果目标值属性。

mode

指定是否最小化或最大化指标。

optimizer