我正在尝试使用Tune为LSTM(纯Tensorflow)执行超参数优化任务。我遵循了hyperopt算法的示例。在示例中,他们在“ config”部分中使用了以下行。
“ num_samples”:如果args.smoke_test则为10,否则为1000,
文档说明不能解释这是什么。我可以确定这是否是一段有用的代码,或者应该如何针对我的方案进行更改。因此,如果我能知道这一行代码的含义,那将是很棒的。
可以通过this link
找到示例hyperopt代码。答案 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)