繁体   English   中英

在AWS EC2实例中加载泡菜包

[英]Loading a pickle package in AWS EC2 instance

我已经使用pickle(Windows Python 3.6)在本地保存了一个模型,我需要该模型在EC2 Linux实例上运行(使用Python 2.7)进行预测。 现在,当我尝试使用以下代码加载模型时,我已经使用Filezilla将保存的模型从笔记本电脑转移到EC2实例:

filename = 'Customer_segmentation_model_xgb_final.sav'
loaded_model = pickle.load(open(filename,'rb'))

它给出以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.7/pickle.py", line 1384, in load
    return Unpickler(file).load()
  File "/usr/lib64/python2.7/pickle.py", line 864, in load
    dispatch[key](self)
  File "/usr/lib64/python2.7/pickle.py", line 892, in load_proto
    raise ValueError, "unsupported pickle protocol: %d" % proto
ValueError: unsupported pickle protocol: 3

有人建议我做错了什么,需要做什么。

似乎有兼容性问题,我建议您在服务器上安装相同版本的Python(Python 3.6),因为pickle模块是Python标准库的一部分:

sudo apt-get install python3.6

您也可以在最初转储时强制使用较低的协议( 编辑 :如注释中建议的那样):

pickle.dump(model, file, protocol=2)

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM