5

我正在尝试使用Tune为 LSTM(纯 Tensorflow)执行超参数优化任务。我在hyperopt算法上遵循了他们的示例。在示例中,他们在“配置”部分中使用了以下行。

“num_samples”:如果 args.smoke_test 为 10,否则为 1000,

文档没有解释这是什么。我可以确定这是否是一段有用的代码,或者我应该如何为我的场景更改它。所以如果能知道这行代码的意思就好了。

可以通过此链接找到示例 hyperopt 代码

4

2 回答 2

4

您可以在 的文档中run_experiments找到该参数。

默认情况下,每个随机变量和网格搜索点都被采样一次。要获取多个随机样本,请将 num_samples: N 添加到实验配置中。如果 grid_search 作为参数提供,则网格将重复 num_samples 次。

本质上,该参数是配置的一部分,可用于多次采样数据,而不仅仅是一次。

但是,您的演示代码使用run_experiment

config = {
    "my_exp": {
        "run": "exp",
        "num_samples": 10 if args.smoke_test else 1000,
        "config": {
            "iterations": 100,
        },
        "stop": {
            "timesteps_total": 100
        },
    }
}
algo = HyperOptSearch(space, max_concurrent=4, reward_attr="neg_mean_loss")
scheduler = AsyncHyperBandScheduler(reward_attr="neg_mean_loss")
run_experiments(config, search_alg=algo, scheduler=scheduler)  # here the config is passed
于 2019-01-01T17:08:23.303 回答
1

根据文档:

num_samples (int) -- 从超参数空间中采样的次数。默认为 1。如果 grid_search 作为参数提供,则网格将重复 num_samples 次。

重复替换:

repeat (int) -- 已弃用并将在 Ray 的未来版本中删除。改用 num_samples

用法:

"num_samples": 10

num_samples=10

class ray.tune.Experiment(name,run,stop=None,config=None,trial_resources=None,
repeat=1,num_samples=1,local_dir=None,upload_dir=None,checkpoint_freq=0,
checkpoint_at_end=False,max_failures=3,restore=None)
于 2019-01-01T17:07:30.100 回答