1、报错含义
 
不支持用 Python2 读取 Python3 生成的 pkl 文件。
 
2、解决办法
 
如果知道会是在 Python2 环境中执行读取 pkl 文件,则在生成 pkl 文件时加入 protocol=2:
 
import pickle
pickle.dump(model_name,open('example.pkl', 'wb'), protocol=2) 
这样就是用 Python3 生成了能用 Python2 读取的 pkl 文件。
 
3、补充
 
Python2 生成的 pkl 导入方式:  
 
    import cPickle
 
    with open('data.pkl', 'rb') as f:
 
         samples, labels = cPickle.load(f)
 
Python3 生成的pkl 导入方式:
 
    import pickle
 
    with open('data.pkl', 'rb') as f:
 
        samples, labels = pickle.load(f)