我正在尝试使用Tune为 LSTM(纯 Tensorflow)执行超参数优化任务。我在hyperopt算法上遵循了他们的示例。在示例中,他们在“配置”部分中使用了以下行。
“num_samples”:如果 args.smoke_test 为 10,否则为 1000,
文档没有解释这是什么。我可以确定这是否是一段有用的代码,或者我应该如何为我的场景更改它。所以如果能知道这行代码的意思就好了。
您可以在 的文档中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
根据文档:
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)