我试图实现多维超参数优化。我有一个有很多参数的函数,但只有 4 个需要优化。
我想知道如何将其传递给 hypteropt。
我认为这样的事情应该在测试功能中起作用:
from hyperopt import hp, fmin, tpe, Trials
def testFuntion(x,arg1='arg1',arg2='arg2',arg3='arg3'):
print(arg1,arg2,arg3)
#args1,arg2,arg3 = args
return x[0]-x[1]-x[2]+x[3]
space = ((hp.uniform('a', 0.0, 1.0),hp.uniform('b', 0.0, 1.0),hp.uniform('c', 0.0, 1.0)),hp.uniform('d', 0.0, 1.0),'blub1','blub2','blub3')
trials = Trials()
best = fmin(testFuntion, space, algo=tpe.suggest, max_evals=100)
但是该函数试图以某种方式比较我的字符串并引发 Error: TypeError: unsupported operand type(s) for -: 'tuple' and 'float'
我究竟做错了什么?