首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hyperopt主要更改Trials()对象的值;热启动Hyperopt

Hyperopt主要更改Trials()对象的值;热启动Hyperopt
EN

Stack Overflow用户
提问于 2020-02-21 21:42:16
回答 1查看 204关注 0票数 0

我在寻找Warmstart Hyperopt的可能性。一种方法是用超参数手动填充列表Trials.trials这实际上是可能的,但我想知道这是否真的会影响优化,或者如果这个Trials.trials只是Trials对象和Hyperopt的可视部分。

EN

回答 1

Stack Overflow用户

发布于 2020-02-22 03:58:56

trials.trials列表没有包含所有信息!!还必须更改trials._dynamic_trials,因为baye.py中的刷新函数会使用trials.trials中的数据更新trials._dynamic_trials中的数据

一般来说,热启动应该是可能的。我在一个具有任意搜索空间和目标函数的新鲜trials对象上调用fmin,从而创建了一个与我的热启动状态大小相同的伪trials对象。在此之后,可以通过迭代trials.trials的长度并像这样设置值来更改trials对象:

代码语言:javascript
复制
list_of_coldstart_dict = [one_possible_and_evaluation,second_possible_and_evaluation,...]
fake_space = {
'test': 2-hp.loguniform('test_02',0.001, 0.1)
}
def Objective(params):
    return {"loss":0, 'status': STATUS_OK}
trials = Trials()
fmin(Objective,fake_space,
    algo=partial(tpe.suggest, n_startup_jobs=len(list_of_coldstart_dict)), max_evals=len(list_of_coldstart_dicts), 
        trials=new_trials,verbose=1)

for in in range(len(trials.trials):
    trials.trials[i] = list_of_coldstart_dict[i]
    trials._dynamic_trials[i] = list_of_coldstart_dict[i]
    trials.results[i] = trials.trials[i]['result']

注意在trials.trialsi中维护字典的必然结构

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60339842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档