ray.tune.search.zoopt.ZOOptSearch#
- class ray.tune.search.zoopt.ZOOptSearch(algo: str = 'asracos', budget: int | None = None, dim_dict: Dict | None = None, metric: str | None = None, mode: str | None = None, points_to_evaluate: List[Dict] | None = None, parallel_num: int = 1, **kwargs)[源代码]#
基类:
Searcher
一个围绕 ZOOpt 的包装器,用于提供试验建议。
ZOOptSearch 是一个用于无导数优化的库。它基于 ZOOpt 包。目前,Tune 中实现了异步顺序随机化坐标收缩(ASRacos)。
要使用 ZOOptSearch,请安装 zoopt (>=0.4.1):
pip install -U zoopt
。Tune 自动将搜索空间转换为 ZOOpt 的格式:
from ray import train, tune from ray.tune.search.zoopt import ZOOptSearch "config": { "iterations": 10, # evaluation times "width": tune.uniform(-10, 10), "height": tune.uniform(-10, 10) } zoopt_search_config = { "parallel_num": 8, # how many workers to parallel } zoopt_search = ZOOptSearch( algo="Asracos", # only support Asracos currently budget=20, # must match `num_samples` in `tune.TuneConfig()`. dim_dict=dim_dict, metric="mean_loss", mode="min", **zoopt_search_config ) tuner = tune.Tuner( my_objective, tune_config=tune.TuneConfig( search_alg=zoopt_search, num_samples=20 ), run_config=train.RunConfig( name="zoopt_search", stop={"timesteps_total": 10} ), param_space=config ) tuner.fit()
如果你想手动传递搜索空间,代码会是这样的:
from ray import train, tune from ray.tune.search.zoopt import ZOOptSearch from zoopt import ValueType dim_dict = { "height": (ValueType.CONTINUOUS, [-10, 10], 1e-2), "width": (ValueType.DISCRETE, [-10, 10], False), "layers": (ValueType.GRID, [4, 8, 16]) } "config": { "iterations": 10, # evaluation times } zoopt_search_config = { "parallel_num": 8, # how many workers to parallel } zoopt_search = ZOOptSearch( algo="Asracos", # only support Asracos currently budget=20, # must match `num_samples` in `tune.TuneConfig()`. dim_dict=dim_dict, metric="mean_loss", mode="min", **zoopt_search_config ) tuner = tune.Tuner( my_objective, tune_config=tune.TuneConfig( search_alg=zoopt_search, num_samples=20 ), run_config=train.RunConfig( name="zoopt_search", stop={"timesteps_total": 10} ), ) tuner.fit()
- 参数:
algo – 要在zoopt中指定要使用的算法。目前仅支持ASRacos。
budget – 样本数量。
dim_dict – 维度字典。对于连续维度:(continuous, search_range, precision);对于离散维度:(discrete, search_range, has_order);对于网格维度:(grid, grid_list)。更多详情可以在zoopt包中找到。
metric – 训练结果目标值属性。如果为 None 但传递了模式,则默认使用匿名度量
_metric
。mode – 其中之一 {min, max}。确定目标是最小化还是最大化指标属性。
points_to_evaluate – 初始参数建议首先运行。当你已经有一些好的参数想要首先运行以帮助算法为未来的参数做出更好的建议时,可以使用此功能。需要是一个包含配置的dict列表。
parallel_num – 并行工作的数量。注意初始阶段可能启动的工作者数量少于这个数字。更多详情可以在zoopt包中找到。
方法
传递从已单独评估的点获得的结果。
传递已单独评估的试验结果。
试用完成的通知。
训练期间结果的通知(可选)。
从给定的 checkpoint_dir 恢复搜索器的状态。
自动将给定的搜索器保存到 checkpoint_dir。
设置此搜索器可以运行的最大并发试验次数。
属性
训练结果目标值属性。
指定是否最小化或最大化指标。