python的joblib,joblib.dump()

  python的joblib,joblib.dump()

  在python2中加载python3训练和保存的模型时出错:

  -237 clf=joblib。加载( clf 300 _ all。模型’)

  238 pred_y=clf.predict_proba(X)

  /usr/local/anaconda 2/lib/python 2.7/site-packages/sk learn/externals/joblib/numpy _ pickle。负载中的比重(文件名,mmap_mode)

  576返回负载兼容性(fobj)

  577

  - 578 obj=_unpickle(fobj,filename,mmap_mode)

  579

  580返回对象

  /usr/local/anaconda 2/lib/python 2.7/site-packages/sk learn/externals/joblib/numpy _ pickle。pyc in _ un pickle(fobj,文件名,mmap_mode)

  经过查阅资料:

  跨大蟒版本的joblib.dump()和joblib.load()

  跨大蟒版本的兼容性

  不完全支持跨大蟒版本的joblib泡菜兼容性。注意,对于一组非常有限的对象来说,用python 2保存泡菜并用python 3加载它时,这似乎是可行的,但是强烈建议不要依赖它。

  如果在大蟒版本之间切换,需要为每个大蟒版本保存不同的joblib泡菜.

  以下是一些例子或例外:

  用python 2保存joblib泡菜,尝试用python 3加载它:

  回溯(最近一次呼叫):

  文件/home/les teve/dev/joblib/joblib/numpy _ pickle。py ,第453行,加载中

  obj=unpickler.load()

  文件/home/les teve/minicon da3/lib/python 3.4/pickle。py ,第1038行,在加载中

  分派[键[0]](自己)

  load_binstring中的文件"/home/les teve/minicon da3/lib/python 3.4/pickle。py”,第1176行

  追加(self ._decode_string(data))

  文件/home/les teve/minicon da3/lib/python 3.4/pickle。py ,第1158行,输入解码字符串

  返回值。解码(自编码、自错误)

  回溯(最近一次呼叫):

  文件""中的第一行

  文件/home/les teve/dev/joblib/joblib/numpy _ pickle。py ,第462行,加载中

  引发new_exc

  用python 3保存joblib泡菜,尝试用python 2加载:

  回溯(最近一次呼叫):

  文件""中的第一行

  文件 joblib/numpy_pickle.py ,第453行,加载中

  obj=unpickler.load()

  文件/home/les teve/mini conda 3/envs/py27/lib/python 2.7/pickle。py ,第858行,加载中

  派遣[钥匙](自己)

  负载_原型中的文件/home/les teve/mini conda 3/envs/py27/lib/python 2.7/pickle。py ,第886行尊敬的秋天,不支持的泡菜协议:%d % proto

  =================================================================================================================================================

  不完全支持跨大蟒版本的joblib泡菜的兼容性。请注意,对于一组非常有限的对象,当使用python 2保存泡菜并使用python 3加载它时,这可能会起作用,但强烈建议不要依赖它。

  如果要在大蟒版本之间切换,则需要为每个大蟒版本保存不同的joblib泡菜。

  ==================================================================================================================================================

  另外:不同大蟒版本的pickle.dump()和pickle.load()是可以相互转换和支持的

  在Python 3中,应该使用较低的协议号来编写腌制的数据Python 3.0引入了一个编号为3的新协议(并将其用作默认协议),因此切换回Python 2可以读取的值2。

  检查泡菜。转储中的协议参数。

  泡菜.转储(你的对象,你的文件,协议=2)

  文件中没有协议参数,因为泡菜可以从文件中确定协议。

  泡菜使用不同的协议将你的数据转换成二进制流。

  在python 2中,有3种不同的协议(0,1,2),缺省值是0。

  在python 3中有5种不同的协议(0,1,2,3,4),缺省值是3。

  为了能够在python 2中加载数据,您必须在python 3中指定低于3的协议。调用泡菜。转储时,可以指定草案参数

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: