首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hyperas没有返回最佳结果

Hyperas没有返回最佳结果
EN

Stack Overflow用户
提问于 2019-10-25 07:47:54
回答 1查看 245关注 0票数 1

我正在使用hyperas来优化一个函数,它并没有返回最好的结果。在运行过程中,打印输出如下所示

代码语言:javascript
复制
100%|██████████| 100/100 [7:01:47<00:00, 411.15s/it, best loss: 5.1005506645909895e-05]

但是后来当我打印出最好的模型的结果时

代码语言:javascript
复制
5.8413380939757486e-05

这种情况已经发生过几次了,我不明白为什么。我写了一个可重复的例子,我也遇到了同样的问题。

代码语言:javascript
复制
def test_function():
    x={{uniform(-23,23)}}
    function=x**2+x

    return {'loss': function, 'status': STATUS_OK, 'model': function}

###just a dummy function to get the optimization to run, my real function uses real data
def data_example():
    print('skip')
    return [0,1,2]

trials=Trials()
#    trials=pickle.load(open(trials_file, "rb"))
print('started new set of optimization runs')

if __name__ == '__main__':
    best_run, best_model = optim.minimize(model=test_function,
                                          data=data_example,
                                          algo=tpe.suggest,
                                          trials=trials,
                                          max_evals=100)

print(best_run)    

上次我运行这个状态栏显示

代码语言:javascript
复制
100%|██████████| 100/100 [00:00<00:00, 498.77it/s, best loss: -0.24773021221244024]

print(best_run)显示

代码语言:javascript
复制
{'x': -0.5476422899067598}

为什么我的best_run结果没有在优化运行中损失最小?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-25 08:08:25

你认为best_runbest loss不是一回事吗?

best_run返回损失的and,这实际上是f(x) = x**2+xx = -1/2best loss返回它的min值,即f(-1/2) = -1/4

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

https://stackoverflow.com/questions/58554301

复制
相关文章

相似问题

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