用于超参数优化的 Tune of Ray 包中“num_samples”的目的

Sul*_*_28 5 python-3.x ray deep-learning hyperparameters tensorflow

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

“num_samples”:10 如果 args.smoke_test 其他 1000,

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

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

Pat*_*ner 5

您可以在 的文档中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
Run Code Online (Sandbox Code Playgroud)


小智 2

根据文档:

\n\n
\n

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

\n
\n\n

重复的替代:

\n\n
\n

Repeat (int) \xe2\x80\x93 已弃用,并将在 Ray 的未来版本中删除。使用 num_samples 代替

\n
\n\n

用法:

\n\n
"num_samples": 10\n\nnum_samples=10\n\nclass ray.tune.Experiment(name,run,stop=None,config=None,trial_resources=None,\nrepeat=1,num_samples=1,local_dir=None,upload_dir=None,checkpoint_freq=0,\ncheckpoint_at_end=False,max_failures=3,restore=None)\n
Run Code Online (Sandbox Code Playgroud)\n