首页 > 解决方案 > hyperopt 0.2.4 中的嵌套参数

问题描述

我想搜索其中一个依赖于另一个的参数,这与StackOverflow question 中描述的非常相似,但是当我运行时,我遇到了以下问题:

TypeError: len of pyll.Apply either undefined or unknown

阅读对问题的评论看起来像是在 hyperopt 的 0.2.3 版中发生了变化。知道如何在当前版本上处理此类问题吗?下面的代码重现了我面临的错误。

from hyperopt import fmin, tpe, hp, STATUS_OK

def f(x):
    return {'loss': x['foo']*x['bar'], 'status':STATUS_OK}


_foo = hp.uniform('foo', 0, 1)
_bar = hp.uniform('bar', _foo, 1)

space = {
    'foo': _foo,
    'bar': _bar
}

best = fmin(
    f,
    space=space,
    max_evals=100,
    algo=tpe.suggest
)
print(best)

标签: pythonoptimizationhyperparametershyperopt

解决方案


推荐阅读