cPickle.UnpicklingError: invalid load key, ' '.?
cPickle.UnpicklingError: invalid load key, ' '.?
我正在尝试将 mnist_data 用于手写数字 recognition.Now 我尝试使用此代码加载数据。
import cPickle
import numpy as np
def load_data():
f = open('G:/thesis paper/data sets/mnist.pkl.gz', 'rb')
training_data, validation_data, test_data = cPickle.load(f)
f.close()
return (training_data, validation_data, test_data)
def load_data_nn():
training_data, validation_data, test_data = load_data()
inputs = [np.reshape(x, (784, 1)) for x in training_data[0]]
results = [vectorized_result(y) for y in training_data[1]]
training_data = zip(inputs, results)
test_inputs = [np.reshape(x, (784, 1)) for x in test_data[0]]
return (training_data, test_inputs, test_data[1])
def vectorized_result(j):
e = np.zeros((10, 1))
e[j] = 1.0
return e
if __name__ == '__main__':
tr_data,test_inp,test_data=load_data_nn()
但是我收到了这个错误。
File "D:/NeuralNet/mnist_loader.py", line 42, in load_data
training_data, validation_data, test_data = cPickle.load(f) cPickle.UnpicklingError: invalid load key, ''.
我无法理解该错误的意思以及如何消除此错误。提前致谢。
解决所有 pickle 问题的第一个解决方案是使用 "pickle" 而不是 "cPickle",直到您调试完所有内容。您将获得更好的错误消息,并且可以更好地进行调试。
您似乎已经压缩了 pickle。您需要在加载前解压缩。
pickle 是你自己的软件生成的吗,你确定要unpickle 的对象是元组吗?
您传递给 cPickle.load() 的参数必须是 .pkl 文件。
mnist.pkl 在 mnist.pkl.gz
内提供
所以,您必须先打开那个 .gz。试试这个:
import gzip
f = gzip.open('mnist.pkl.gz', 'rb')
train_set, valid_set, test_set = cPickle.load(f)
这对我有用:
f = gzip.open('../data/mnist.pkl.gz', 'rb')
training_data, validation_data, test_data = cPickle.load(f,encoding='latin1')
f.close()
我正在尝试将 mnist_data 用于手写数字 recognition.Now 我尝试使用此代码加载数据。
import cPickle
import numpy as np
def load_data():
f = open('G:/thesis paper/data sets/mnist.pkl.gz', 'rb')
training_data, validation_data, test_data = cPickle.load(f)
f.close()
return (training_data, validation_data, test_data)
def load_data_nn():
training_data, validation_data, test_data = load_data()
inputs = [np.reshape(x, (784, 1)) for x in training_data[0]]
results = [vectorized_result(y) for y in training_data[1]]
training_data = zip(inputs, results)
test_inputs = [np.reshape(x, (784, 1)) for x in test_data[0]]
return (training_data, test_inputs, test_data[1])
def vectorized_result(j):
e = np.zeros((10, 1))
e[j] = 1.0
return e
if __name__ == '__main__':
tr_data,test_inp,test_data=load_data_nn()
但是我收到了这个错误。
File "D:/NeuralNet/mnist_loader.py", line 42, in load_data
training_data, validation_data, test_data = cPickle.load(f) cPickle.UnpicklingError: invalid load key, ''.
我无法理解该错误的意思以及如何消除此错误。提前致谢。
解决所有 pickle 问题的第一个解决方案是使用 "pickle" 而不是 "cPickle",直到您调试完所有内容。您将获得更好的错误消息,并且可以更好地进行调试。
您似乎已经压缩了 pickle。您需要在加载前解压缩。
pickle 是你自己的软件生成的吗,你确定要unpickle 的对象是元组吗?
您传递给 cPickle.load() 的参数必须是 .pkl 文件。 mnist.pkl 在 mnist.pkl.gz
内提供所以,您必须先打开那个 .gz。试试这个:
import gzip
f = gzip.open('mnist.pkl.gz', 'rb')
train_set, valid_set, test_set = cPickle.load(f)
这对我有用:
f = gzip.open('../data/mnist.pkl.gz', 'rb')
training_data, validation_data, test_data = cPickle.load(f,encoding='latin1')
f.close()