1. CIFAR简介
CIFAR是一个图像分类的数据集,包含60,000张32*32的图片,分十个类别(飞机、机动车、鸟类等等),每个类有1000张图片。整个数据集被分成50,000和10,000两部分,50,000是training set,用来做训练;10,000是test set,用来做验证
2. CIFAR结构介绍
官方数据源提供多种语言的数据集,如果你从官方数据源下载CIFAR的python版的数据集的话,数据集的结构是这样的:
- batches.meta
- data_batch_1
- data_batch_2
- data_batch_3
- data_batch_4
- data_batch_5
- test_batch
- readme.html
其中batches.meta保存的是元数据,是一个字典结构,包括
- num_cases_per_batch: 每一个batch的数据的数据的多少,这里是10,000
- label_names:标签的名称,在数据集中标签是按index分类,相应的index的名字就在这里
- num_vis:数据的维度,这里是3072
3. 读取CIFAR中的Image和Label
3.0 CIFAR数据集的数据结构
CIFAR是按一个字典的方式进行组织的,的每一个batch包含以下的内容
1. data:图片的信息,组织成10,000 * 3072的大小,3072就是把原来3* 32 * 32的图片序列化以后的大小,原来32*32的RGB图像按照R、G、B三个通道分别摆放成一个向量,所以恢复的时候会分别恢复出三个通道,在显示图像的时候要merge一下
2. labels:对应data里面每一个图片,所属的label
3. batch_label:当前所使用的的batch的编号
4. filenames:数据集里面每一张图片所对应的的文件名(这个不太重要)
CIFAR的数据集是用python的pickle包进行组织的,要读取数据集,首先要了解pickle的使用方法
3.1用pickle进行数据的序列化,保存到磁盘
pickle.dump( obj, file, protocol )
obj:你想要序列化的对象
file:一个指向硬盘上你想要持久化保存的那个对象,一般是一个具有write()方法的文件对象
protocol:文件序列化的协议,默认为False,就是按ASCII码保存,压缩率比较低;如果为True,就以二

本文介绍了CIFAR图像分类数据集,包括其结构、内容和如何使用Python的pickle模块进行序列化和反序列化操作来读取数据。CIFAR包含60,000张32x32像素的图片,分为10个类别,数据集分为训练集和测试集。CIFAR数据由多个批次组成,每个批次包含图片数据和对应的标签。示例代码展示了如何读取CIFAR数据集。"
122130971,9672968,JetBrains Fleet: 一站式IDE初体验,"['前端开发', 'IDE', '协作工具', '智能编程', '代码编辑器']
最低0.47元/天 解锁文章
853





