3

我使用压缩的 pickle 使用以下代码保存 sklearn gridsearch 的结果。

import pickle
import bz2
from sklearn.model_selection import RandomizedSearchCV

search = RandomizedSearchCV(estimator, param_distributions=param_dist,
                                   cv = cv, 
                                   n_jobs = 6
                                   )
with bz2.open('gridsearch.bz2', 'wb') as f:
        pickle.dump(search, f)

然后我使用下面的代码来获取搜索对象。

with bz2.open('gridsearch.bz2', 'rb') as f:
    search = pickle.load(f)

当我在终端的虚拟环境中运行时,pickle 加载有效,但如果我在 jupyter 实验室中运行代码,它会报告以下错误。我检查了泡菜的版本。虚拟环境和 jupyter 实验室都使用 pickle 4.0。

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-11-06b38588a6ad> in <module>
---> 23 with bz2.open('gridsearch.bz2', 'rb') as f:
     24    search = pickle.load(f)

~/.pyenv/versions/3.7.4/lib/python3.7/site-packages/scipy/stats/_distn_infrastructure.py in __setstate__(self, state)
    623 
    624     def __setstate__(self, state):
--> 625         ctor_param, r = state
    626         self.__init__(**ctor_param)
    627         self._random_state = r

ValueError: too many values to unpack (expected 2)

顺便说一句,我也尝试使用 .pickle 文件而不是 bz2。这个问题仍然存在。任何意见和建议将不胜感激。

4

0 回答 0