pickle报错 ValueError: unsupported pickle protocol: 3

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)

你可能感兴趣的:(Python)