我有一个python程序,我想从cmd提示符运行,但每次尝试时,它都会给我一个错误“NameError:name cPickle not defined”。
我使用的是python 2.7,它是我安装的唯一版本。 我试图修改代码并使其导入pickle而不是import cPickle但它仍然不起作用。
import pickle
#import cPickle
import gzip
# Third-party libraries
import numpy as np
def load_data():
f = gzip.open('../data/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_wrapper():
tr_d, va_d, te_d = load_data()
training_inputs = [np.reshape(x, (784, 1)) for x in tr_d[0]]
training_results = [vectorized_result(y) for y in tr_d[1]]
training_data = zip(training_inputs, training_results)
validation_inputs = [np.reshape(x, (784, 1)) for x in va_d[0]]
validation_data = zip(validation_inputs, va_d[1])
test_inputs = [np.reshape(x, (784, 1)) for x in te_d[0]]
test_data = zip(test_inputs, te_d[1])
return (training_data, validation_data, test_data)
def vectorized_result(j):
e = np.zeros((10, 1))
e[j] = 1.0
return e
我改变了说
的行training_data, validation_data, test_data = cPickle.load(f)
到
training_data, validation_data, test_data = pickle.load(f)
这不起作用,由于某种原因我找不到在线安装cPickle包。有人可以帮我找出解决方案!
答案 0 :(得分:4)
处理cPickle
是否可用的不确定性的典型方法是尝试加载它,如果您的Python解释器没有提供此模块,则回退到pickle
:< / p>
try:
import cPickle as pickle
except ImportError:
import pickle
...之后,您可以在任何一种情况下无条件地使用pickle
名称。