2016-11-08 11 views
7

मैं mnist चरित्र डाटासेट (ट्यूटोरियल यहां उनका उल्लेख निम्नलिखित: http://neuralnetworksanddeeplearning.com/chap1.html) लोड करने के लिए कोशिश कर रहा हूँ जब मैं load_data_wrapper समारोह मैं त्रुटि मिलती है चलानेअजगर अचार UnicodeDecodeError

UnicodeDecodeError: 'ascii' codec can't decode byte 0x90 in position 614: ordinal not in range(128) 

कोड रन है:

import numpy as np 
import gzip 


def load_data(): 
    f = gzip.open('../data/mnist.pkl.gz', 'rb') 
    training_data, validation_data, test_data = pickle.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 

अद्यतन: समस्या हो कि मैं अजगर 3.6 जो अजगर 2. x के साथ मसालेदार गया था के साथ unpickle कोशिश कर रहा हूँ लगता है

उत्तर

11

जैसा कि मुख्य समस्या पाइथन 2.x सीपीकल और पायथन 3.x अचार के बीच असंगतता साबित हुई है।

'लैटिन -1' में एन्कोडिंग सेट करने पर काम लगता है। Pickle incompatability of numpy arrays between Python 2 and 3

:

training_data, validation_data, test_data = pickle.load(f, encoding='latin1') 

उत्तर यहाँ बहुत मदद की

संबंधित मुद्दे