0

Я пытаюсь прочитать наборы данных CIFAR10, заданные партиями от https://www.cs.toronto.edu/~kriz/cifar.html>. Я пытаюсь помещать его в кадр данных, используя pickle и читаю «данные». Но я получаю эту ошибку.Чтение набора данных Cifar10 в партиях

KeyError         Traceback (most recent call last) 
<ipython-input-24-8758b7a31925> in <module>() 
----> 1 unpickle('datasets/cifar-10-batches-py/test_batch') 

<ipython-input-23-04002b89d842> in unpickle(file) 
     3  fo = open(file, 'rb') 
     4  dict = pickle.load(fo, encoding ='bytes') 
----> 5  X = dict['data'] 
     6  fo.close() 
     7  return dict 

KeyError: 'data'.

я использую IPython и вот мой код:

def unpickle(file): 

fo = open(file, 'rb') 
dict = pickle.load(fo, encoding ='bytes') 
X = dict['data'] 
fo.close() 
return dict 

unpickle('datasets/cifar-10-batches-py/test_batch') 
+0

добавить печать dict.keys() и посмотреть, что находится внутри – lejlot

+0

@lejlot dict_keys ([б 'batch_label', b'data ', b'labels', b'filenames ']) .. – decipher

+1

попытайтесь сделать 'X = dict [b'data']' then – lejlot

ответ

0

Попробуйте

def unpickle(file): import cPickle with open(file, 'rb') as fo: data = cPickle.load(fo) return data

+1

Зачем нужно «ОП» это"? ** Хороший ответ ** всегда будет объяснять, что было сделано и почему это было сделано таким образом, не только для OP, но и для будущих посетителей SO. –

Смежные вопросы