python pickle UnicodeDecodeError' latin1'不工作

时间:2017-09-29 14:52:57

标签: python python-3.x neural-network gzip pickle

我试图做一些神经网络工作,但我用Python 2.7编写了文件,我有Python 3.6。那是我的代码:

import _pickle as cPickle
import gzip
import numpy as np
def load_data():
    k = gzip.open('../data/mnist.pkl.gz', 'rb')
    training_data, validation_data, test_data = cPickle.load(k, encoding='latin1')
    k.close()
    return (training_data, validation_data, test_data)

这就是我不断得到的错误:

  

文件" mnist_loader.py",第44行,在load_data中       training_data,validation_data,test_data = cPickle.load(k,encoding =' latin1')

     

UnicodeDecodeError:' ascii'编解码器不能解码位置614中的字节0x90:序数不在范围(128)

通过StackOverflow,我看到有人说我应该把' encode =' latin1''''''''''''''''''' 

非常感谢!

1 个答案:

答案 0 :(得分:0)

最后,我尝试了这个:

with gzip.open('../data/mnist.pkl.gz', 'rb') as k:
    training_data, validation_data, test_data = cPickle.load(k, encoding='latin1')
    k.close()
return (training_data, validation_data, test_data)

它似乎有效,但我不知道为什么;)

谢谢大家!