我是mongodb的新手,我想在hyperopt中使用它进行并行评估。到目前为止,我已经按照以下步骤进行了操作:
在MongoDB 3.7.3
C:/Mongodb
创建一个空数据库文件夹C:/Mongodb/test_trial
在命令提示符下启动mongod process
,输入以下内容:
"C:\Mongodb\bin\mongod.exe" --dbpath "C:\Mongodb\test_trial" --port 1234
这样做,我得到了这个输出:
2018-04-04T13:35:18.543 + 0200 I NETWORK [initandlisten]等待 端口1234上的连接
import math
from hyperopt import fmin, tpe, hp
from hyperopt.mongoexp import MongoTrials
trials = MongoTrials('mongo://localhost:1234/test_trial/jobs', exp_key='exp1')
best = fmin(math.sin, hp.uniform('x', -2, 2), trials=trials, algo=tpe.suggest, max_evals=10)
运行脚本时,ipython控制台上似乎没有任何结果,我收到此消息:
没有找到last_id,重新尝试
然后我创建一个名为C:/Mongodb/test_trial/jobs
的新文件夹,然后重新运行上一个脚本。似乎没有任何事情发生,我在iPython控制台上收到了这条消息:
覆盖旧域名审判附件
可能是什么问题?
答案 0 :(得分:1)
您似乎并没有启动 hyperopt-mongo-worker 来倾听并响应https://github.com/hyperopt/hyperopt/wiki/Parallelizing-Evaluations-During-Search-via-MongoDB
中的请求hyperopt-mongo-worker --mongo=localhost:1234/test_trial --poll-interval=0.1
希望这可以解决问题。
答案 1 :(得分:0)
hyperopt-mongo-worker
文件并未针对Windows环境上的使用进行完全优化。无法在MongoDB上运行hyperopt。