ray.tune.search.nevergrad.NevergradSearch#

class ray.tune.search.nevergrad.NevergradSearch(optimizer: nevergrad.optimization.Optimizer | Type[nevergrad.optimization.Optimizer] | nevergrad.optimization.base.ConfiguredOptimizer | None = None, optimizer_kwargs: Dict | None = None, space: Dict | nevergrad.p.Parameter | None = None, metric: str | None = None, mode: str | None = None, points_to_evaluate: List[Dict] | None = None)[源代码]#

基类:Searcher

使用 Nevergrad 优化超参数。

Nevergrad 是 Facebook 的一个开源无导数优化工具。更多信息可以在以下网址找到:facebookresearch/nevergrad

您需要通过以下命令安装 Nevergrad:

$ pip install nevergrad
参数:
  • optimizer – 来自 Nevergrad 的优化器类。可用的优化器请参见此处:https://facebookresearch.github.io/nevergrad/optimizers_ref.html#optimizers。这也可以是 ConfiguredOptimizer 的一个实例。请参阅上述链接中关于配置优化器的部分。

  • optimizer_kwargs – 实例化 优化器 时传入的 Kwargs

  • space – 在实例化优化器时要传递的 Nevergrad 参数化,或者如果你传递了一个优化器对象,则为参数名称列表。

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

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

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

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

import nevergrad as ng

config = {
    "width": tune.uniform(0, 20),
    "height": tune.uniform(-100, 100),
    "activation": tune.choice(["relu", "tanh"])
}

current_best_params = [{
    "width": 10,
    "height": 0,
    "activation": relu",
}]

ng_search = NevergradSearch(
    optimizer=ng.optimizers.OnePlusOne,
    metric="mean_loss",
    mode="min",
    points_to_evaluate=current_best_params)

run(my_trainable, config=config, search_alg=ng_search)

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

import nevergrad as ng

space = ng.p.Dict(
    width=ng.p.Scalar(lower=0, upper=20),
    height=ng.p.Scalar(lower=-100, upper=100),
    activation=ng.p.Choice(choices=["relu", "tanh"])
)

ng_search = NevergradSearch(
    optimizer=ng.optimizers.OnePlusOne,
    space=space,
    metric="mean_loss",
    mode="min")

run(my_trainable, search_alg=ng_search)

方法

add_evaluated_point

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

add_evaluated_trials

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

on_trial_complete

试用完成的通知。

on_trial_result

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

restore_from_dir

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

save_to_dir

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

set_max_concurrency

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

属性

CKPT_FILE_TMPL

FINISHED

metric

训练结果目标值属性。

mode

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