ray.tune.search.bohb.TuneBOHB#
- class ray.tune.search.bohb.TuneBOHB(space: Dict | ConfigSpace.ConfigurationSpace | None = None, bohb_config: Dict | None = None, metric: str | None = None, mode: str | None = None, points_to_evaluate: List[Dict] | None = None, seed: int | None = None, max_concurrent: int = 0)[源代码]#
基类:
Searcher
BOHB 建议组件。
需要安装 HpBandSter 和 ConfigSpace。你可以通过以下命令安装 HpBandSter 和 ConfigSpace:
pip install hpbandster ConfigSpace
。这应与 HyperBandForBOHB 结合使用。
- 参数:
space – 连续的 ConfigSpace 搜索空间。参数将从该空间中采样,用于运行试验。
bohb_config – HpBandSter BOHB 算法的配置
metric – 训练结果目标值属性。如果为 None 但传递了模式,则默认使用匿名度量
_metric
。mode – 其中之一 {min, max}。确定目标是最小化还是最大化指标属性。
points_to_evaluate – 初始参数建议首先运行。当你已经有一些好的参数想要首先运行以帮助算法为未来的参数做出更好的建议时,可以使用此功能。需要是一个包含配置的dict列表。
seed – 可选的随机种子以初始化随机数生成器。设置此项应在每次运行时导致相同的初始配置。
max_concurrent – 最大并发试验次数。如果此搜索器用于
ConcurrencyLimiter
中,传递给它的max_concurrent
值将覆盖此处传递的值。设置为 <= 0 表示没有并发限制。
Tune 自动将搜索空间转换为 TuneBOHB 的格式:
config = { "width": tune.uniform(0, 20), "height": tune.uniform(-100, 100), "activation": tune.choice(["relu", "tanh"]) } algo = TuneBOHB(metric="mean_loss", mode="min") bohb = HyperBandForBOHB( time_attr="training_iteration", metric="mean_loss", mode="min", max_t=100) run(my_trainable, config=config, scheduler=bohb, search_alg=algo)
如果你想手动传递搜索空间,代码会是这样的:
import ConfigSpace as CS config_space = CS.ConfigurationSpace() config_space.add_hyperparameter( CS.UniformFloatHyperparameter("width", lower=0, upper=20)) config_space.add_hyperparameter( CS.UniformFloatHyperparameter("height", lower=-100, upper=100)) config_space.add_hyperparameter( CS.CategoricalHyperparameter( name="activation", choices=["relu", "tanh"])) algo = TuneBOHB( config_space, metric="mean_loss", mode="min") bohb = HyperBandForBOHB( time_attr="training_iteration", metric="mean_loss", mode="min", max_t=100) run(my_trainable, scheduler=bohb, search_alg=algo)
方法
传递从已单独评估的点获得的结果。
传递已单独评估的试验结果。
从给定的 checkpoint_dir 恢复搜索器的状态。
自动将给定的搜索器保存到 checkpoint_dir。
属性
训练结果目标值属性。
指定是否最小化或最大化指标。