Flu*_*uxy 0 python pickle scikit-learn
我在集群中训练了一个模型,下载了它(pkl 格式)并尝试在本地加载。我知道 sklearn 的 joblib 版本用于保存模型mymodel.pkl
(但我不知道到底是哪个版本......)。
from sklearn.externals import joblib
print(joblib.__version__)
model = joblib.load("mymodel.pkl")
Run Code Online (Sandbox Code Playgroud)
0.13.0
我本地使用sklearn的joblib版本。
这是我得到的错误:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-100-d0a3c42e5c53> in <module>
3 print(joblib.__version__)
4
----> 5 model = joblib.load("mymodel.pkl")
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\externals\joblib\numpy_pickle.py in load(filename, mmap_mode)
596 return load_compatibility(fobj)
597
--> 598 obj = _unpickle(fobj, filename, mmap_mode)
599
600 return obj
~\AppData\Local\Continuum\anaconda3\lib\site-packages\sklearn\externals\joblib\numpy_pickle.py in _unpickle(fobj, filename, mmap_mode)
524 obj = None
525 try:
--> 526 obj = unpickler.load()
527 if unpickler.compat_mode:
528 warnings.warn("The file '%s' has been generated with a "
~\AppData\Local\Continuum\anaconda3\lib\pickle.py in load(self)
1083 raise EOFError
1084 assert isinstance(key, bytes_types)
-> 1085 dispatch[key[0]](self)
1086 except _Stop as stopinst:
1087 return stopinst.value
KeyError: 239
Run Code Online (Sandbox Code Playgroud)
更新:
我也尝试过,但出现错误AttributeError: 'str' object has no attribute 'readable'
:
with io.BufferedReader("mymodel.pkl") as pickle_file:
model = pickle.load(pickle_file)
Run Code Online (Sandbox Code Playgroud)
小智 6
你试图用 转储它joblib.dump('pipeline','mymodel.pkl')
。这仅转储了字符串“pipeline”!不是您实际的管道对象。
正确转储它:
joblib.dump(pipeline,'mymodel.pkl')
Run Code Online (Sandbox Code Playgroud)
...然后读回:
model = joblib.load('mymodel.pkl')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18300 次 |
最近记录: |