Python3下UnicodeDecodeError和KeyError的解决方法
with open(os.path.join(CIFAR_DIR, "data_batch_1"), 'rb') as f: data = pickle.load(f, encoding='bytes') print(type(data)) print(data.keys()) print(type(data[b'data'])) print(type(data[b'labels'])) print(type(data[b'batch_label'])) print(type(data[b'filenames'])) print(data[b'data'].shape) print(data[b'data'][0:2]) print(data[b'labels'][0:2]) print(data[b'batch_label']) print(data[b'filenames'][0:2])
1.cPickle是python2的包,对应python3的话,import pickle 就行。
2.在cifar的网页上有标注python3需要在pickle.load的时候增加encoding=‘bytes’。
3.使用data的时候,需要b'data'和b'labels'来指定key。