#911·hyperopt

在进行多次评估后, Cloudpickle 出现错误

作者: btyukodi创建于 2024年1月10日更新于 2026年7月24日

我正在使用 hyperopt 与 Mongo。对于许多函数评估,它似乎运行得很好,但随着时间的推移,我越来越多地遇到以下错误:

"error" : [
        "<class 'AttributeError'>",
        "Can't get attribute '_make_function' on <module 'cloudpickle.cloudpickle' from '/home/btyukodi/anaconda3/lib/python3.9/site-packages/cloudpickle/cloudpickle.py'>"
    ]
最终,越来越少的工作程序同时运行,直到所有工作程序停止。完整输出如下:

INFO:hyperopt.mongoexp:Error while unpickling. INFO:hyperopt.mongoexp:job exception: Can't get attribute '_make_function' on <module 'cloudpickle.cloudpickle' from '/home/btyukodi/anaconda3/lib/python3.9/site-packages/cloudpickle/cloudpickle.py'> Traceback (most recent call last): File "/home/btyukodi/anaconda3/bin/hyperopt-mongo-worker", line 8, in sys.exit(main()) File "/home/btyukodi/anaconda3/lib/python3.9/site-packages/hyperopt/mongoexp.py", line 1329, in main sys.exit(main_worker()) File "/home/btyukodi/anaconda3/lib/python3.9/site-packages/hyperopt/mongoexp.py", line 1411, in main_worker return main_worker_helper(options, args) File "/home/btyukodi/anaconda3/lib/python3.9/site-packages/hyperopt/mongoexp.py", line 1322, in main_worker_helper mworker.run_one(reserve_timeout=float(options.reserve_timeout)) File "/home/btyukodi/anaconda3/lib/python3.9/site-packages/hyperopt/mongoexp.py", line 1093, in run_one domain = pickler.loads(blob) AttributeError: Can't get attribute '_make_function' on <module 'cloudpickle.cloudpickle' from '/home/btyukodi/anaconda3/lib/python3.9/site-packages/cloudpickle/cloudpickle.py'> 我到目前为止还无法确定这种情况发生的规律,并且它在后期阶段出现(在之前成功的评估之后),这使我感到茫然。任何帮助都将非常感谢。

内容来源: hyperopt/hyperopt