这篇教程KeyError:’data’写得很实用,希望能帮到您。 KeyError:’data’
出现了KeyError:’data’。 经过查询也没有发现问题所在。出错的代码是这一段
def load_CIFAR_batch(filename): """ load single batch of cifar """ with open(filename, 'rb') as f: datadict = pickle.load(f, encoding='bytes') Y = datadict['labels'] X = datadict['data'] X = X.reshape(10000, 3, 32, 32).transpose(0,2,3,1).astype("float") Y = np.array(Y) return X, Y
因为这个问题就是说字典datadict里面没有data这个字段罢了,所以百度了也没有办法。后来进行了debug,观察了datadict的数据发现,在key值data和labels 的前面都有一个b,后来了我就加了一个b在data和labels 前面。如下
Y = datadict[b'labels'] X = datadict[b'data']
1 2
然后正常了…… 百度之后才发现这个是python2和python3的问题,我使用了官方给的一个代码库,不过这个是用python2写的,而官方的训练数据也是使用python2生成的。结果我使用的python3去运行,就出现了这个错误。 这里是百度之后的结果: 深度学习入门之对图像进行简单分类(cifar10数据集)理解卷积计算 python实现cifar10数据集的可视化cifar10数据集转为图像 |