使用mongdb进行hyperopt的并行评估无效

时间:2018-04-04 12:39:59

标签: python mongodb

我是mongodb的新手,我想在hyperopt中使用它进行并行评估。到目前为止,我已经按照以下步骤进行了操作:

  1. MongoDB 3.7.3

  2. 安装C:/Mongodb
  3. 创建一个空数据库文件夹C:/Mongodb/test_trial

  4. 在命令提示符下启动mongod process,输入以下内容:

  5. "C:\Mongodb\bin\mongod.exe" --dbpath "C:\Mongodb\test_trial" --port 1234

    这样做,我得到了这个输出:

      

    2018-04-04T13:35:18.543 + 0200 I NETWORK [initandlisten]等待   端口1234上的连接

    1. 然后,我在spyder中测试以下python脚本,它在mongodb上使用hyperopt:
    2. 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控制台上收到了这条消息:

        

      覆盖旧域名审判附件

      可能是什么问题?

2 个答案:

答案 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。