Tune of Ray软件包中“ num_samples”的用途,用于超参数优化

时间:2019-01-01 16:18:32

标签: python-3.x tensorflow deep-learning hyperparameters ray

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

  

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

文档说明不能解释这是什么。我可以确定这是否是一段有用的代码,或者应该如何针对我的方案进行更改。因此,如果我能知道这一行代码的含义,那将是很棒的。

可以通过this link

找到示例hyperopt代码。

2 个答案:

答案 0 :(得分:2)

您可以找到参数in the documentation of 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

答案 1 :(得分:1)

根据文档:

  

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

重复的替代品

  

repeat(int)–已过时,将在以后删除   雷的版本。改用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)