python2报错代码:
import cPickle
f = gzip.open('./dataset/mnist.pkl.gz', 'rb')
cPickle.load(f)
python3.x报错代码:
import _pickle as cPickle
f = gzip.open('./dataset/mnist.pkl.gz', 'rb')
cPickle.load(f)
报错信息:
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0x88 in position
157: ordinal not in range(128)
报错原因:
看报错的英文意思,是Unicode编码除了问题,就是说cPickle.load()这个函数不能分辨我们的文件是什么编码类型的。
解决方法:
在该函数参数里设置一个encoding=‘bytes’,指定他是字节类型编码即可。
cPickle.load(f, encoding='bytes')
简单粗暴,不需要搞别的花里胡哨的方法,没啥用。。。