TypeError: "set_postfix() argument after ** must be a mapping, not str" using Hyperopt

TypeError: "set_postfix() argument after ** must be a mapping, not str" using Hyperopt

我尝试运行这个简单的例子:

from hyperopt import fmin, tpe, hp

best = fmin(
fn=lambda x: (x-1)**2,
space=hp.uniform('x', -2, 2),
algo=tpe.suggest,
max_evals=100)

print(best)

但这是我在控制台中得到的:

...\WinPython\python-3.6.5.amd64\Lib\site-packages\tqdm\_tqdm.py", line 792, in __init__
self.set_postfix(refresh=False, **postfix)

TypeError: set_postfix() ** 之后的参数必须是一个映射,而不是 str

为什么?

提前致谢!

不确定这是否有帮助。当我尝试调整随机森林分类器模型时,我遇到了同样的错误。我将 objective 函数参数从 **params 更改为 *args 并修复了错误:)