ray.tune.search.hebo.HEBOSearch#
- class ray.tune.search.hebo.HEBOSearch(space: Dict | hebo.design_space.design_space.DesignSpace | None = None, metric: str | None = None, mode: str | None = None, points_to_evaluate: List[Dict] | None = None, evaluated_rewards: List | None = None, random_state_seed: int | None = None, max_concurrent: int = 8, **kwargs)[源代码]#
基类:
Searcher
使用 HEBO(异方差进化贝叶斯优化)来优化超参数。
HEBO 是由华为诺亚方舟实验室创建的尖端黑箱优化框架。更多信息可以在这里找到:huawei-noah/HEBO。
space
可以是 HEBO 的DesignSpace
对象,也可以是 Tune 搜索空间的字典。请注意,前几次试验将是随机的,用于启动搜索过程。为了获得良好的结果,我们建议将试验次数设置为至少16次。
最大并发试验次数由
max_concurrent
参数决定。试验将以max_concurrent
试验为一批次进行。如果此搜索器在ConcurrencyLimiter
中使用,传递给它的max_concurrent
值将覆盖此处传递的值。- 参数:
space – 一个将参数名称映射到 Tune 搜索空间或 HEBO DesignSpace 对象的字典。
metric – 训练结果目标值属性。如果为 None 但传递了模式,则默认使用匿名度量
_metric
。mode – 其中之一 {min, max}。确定目标是最小化还是最大化指标属性。
points_to_evaluate – 初始参数建议首先运行。当你已经有一些好的参数想要首先运行以帮助算法为未来的参数做出更好的建议时,可以使用此功能。需要是一个包含配置的dict列表。
evaluated_rewards – 如果你之前已经评估了作为 points_to_evaluate 传递的参数,你可以通过传递奖励属性作为列表来避免重新运行这些试验,这样优化器就可以被告知结果而不需要重新计算试验。必须与 points_to_evaluate 的长度相同。
random_state_seed – 可重复结果的种子。默认为 None。请注意,将其设置为某个值将更改初始化和从检查点加载时
numpy
和torch
的全局随机状态。max_concurrent – 最大并发试验次数。如果此搜索器用于
ConcurrencyLimiter
,传递给它的max_concurrent
值将覆盖此处传递的值。**kwargs – 关键字参数将被传递给
HEBO()`
。
Tune 自动将搜索空间转换为 HEBO 的格式:
from ray import tune from ray.tune.search.hebo import HEBOSearch config = { "width": tune.uniform(0, 20), "height": tune.uniform(-100, 100) } hebo = HEBOSearch(metric="mean_loss", mode="min") tuner = tune.Tuner( trainable_function, tune_config=tune.TuneConfig( search_alg=hebo ), param_space=config ) tuner.fit()
或者,您可以手动将 HEBO
DesignSpace
对象传递给 Searcher:from ray import tune from ray.tune.search.hebo import HEBOSearch from hebo.design_space.design_space import DesignSpace space_config = [ {'name' : 'width', 'type' : 'num', 'lb' : 0, 'ub' : 20}, {'name' : 'height', 'type' : 'num', 'lb' : -100, 'ub' : 100}, ] space = DesignSpace().parse(space_config) hebo = HEBOSearch(space, metric="mean_loss", mode="min") tuner = tune.Tuner( trainable_function, tune_config=tune.TuneConfig( search_alg=hebo ) ) tuner.fit()
方法
传递已单独评估的试验结果。
试用完成的通知。
训练期间结果的通知(可选)。
恢复当前优化器状态。
从给定的 checkpoint_dir 恢复搜索器的状态。
存储当前优化器状态。
自动将给定的搜索器保存到 checkpoint_dir。
属性
训练结果目标值属性。
指定是否最小化或最大化指标。