CIFAR-10和CIFAR-100是8000万个微型图像数据集的标记子集。它们是由亚历克斯·克里热夫斯基、维诺德·奈尔和杰弗里·辛顿收集的。
一、 CIFAR-10数据集
CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。有5万张训练图片和1万张测试图片。
数据集分为五个训练批和一个测试批,每个测试批有10000个图像。测试批包含从每个类中随机选择的1000个图像。训练批包含随机顺序的剩余图像,但某些训练批可能包含一个类的图像多于另一个类的图像。其中,训练批次包含每个类的5000幅图像。
以下是数据集中的类,以及来自每个类的10个随机图像:
这些类是完全互斥的。汽车和卡车之间没有重叠。”汽车“包括轿车,越野车,诸如此类的东西。”“卡车”只包括大卡车。也不包括皮卡。
1 下载
如果你要使用这个数据集,请引用本页底部的技术报告。
版本 | 大小 | md5 校验和 |
---|---|---|
CIFAR-10 python版本 | 163 MB | c58f30108f718f92721af3b95e74349a |
CIFAR-10 Matlab版本 | 175 MB | 70270af85842c9e89bb428ec9976c926 |
CIFAR-10二进制版本(适用于C程序) | 162 MB | c32a1d4ab5d03f1284b67883e8d87530 |
2 基线结果
在 cuda convnet 的项目页面上,您可以在此数据集上找到一些可复制的基线结果。这些结果是用卷积神经网络得到的。简言之,在不增加数据的情况下,它们的测试误差为18%,而在增加数据的情况下,它们的测试误差为11%。此外,Jasper Snoek还发表了一篇新的论文,他使用贝叶斯超参数优化来寻找权重衰减和其他超参数的良好设置,使得他能够使用得到18%的网络结构获得15%的测试错误率(无需数据增加)。
3 其他结果
Rodrigo Benenson 在他的网站上收集了CIFAR-10/100 和其他数据集的结果;点击这里查看。
4 数据集布局
4.1 Python/Matlab版本
我将描述数据集的Python版本的布局。Matlab版本的布局是相同的。
存档文件包含 data_batch_1
、data_batch_2
、…、data_batch_5
以及 test_batch
。这些文件中的每一个都是用cPickle生成的Python“pickled”对象。下面是 python2 例程,它将打开这样的文件并返回字典:
def unpickle(file):
import cPickle
with open(file, 'rb') as fo:
dict = cPickle.load(fo)
return dict
python3 版本:
def unpickle(file):
import pickle
with open(file, 'rb') as fo:
dict = pickle.load(fo, encoding='bytes')
return dict
以这种方式加载的每个批处理文件都包含一个字典,其中包含以下元素:
- 数据——一个10000x3072 numpy的uint8s数组。数组的每一行存储一个32x32彩色图像。前1024个条目包含红色通道值,后1024个条目包含绿色通道值,最后1024个条目包含蓝色通道值。图像以行主顺序存储,因此数组的前32个条目是图像第一行的红色通道值。
- 标签——10000个数字的列表,范围为0-9。索引i处的数字表示数组数据中第i个图像的标签。
数据集包含另一个名为 batches.meta
的文件。它也包含一个Python字典对象。它有以下条目:
- 标签名称列表(label_names)——一个10个元素的列表,为上面描述的labels数组中的数字标签提供有意义的名称。例如,label_names[0]=“飞机”,label_names[1]=“汽车”,等等。
4.2 二进制版本
二进制版本包含文件data_batch_1.bin、data_batch_2.bin、…、data_batch_5.bin以及test_batch.bin。这些文件的格式如下:
<1 x label><3072 x pixel>
...
<1 x label><3072 x pixel>
换句话说,第一个字节是第一个图像的标签,它是一个0-9范围内的数字。接下来的3072字节是图像像素的值。前1024字节是红色通道值,后1024字节是绿色通道值,最后1024字节是蓝色通道值。这些值按行主顺序存储,因此前32个字节是图像第一行的红色通道值。
每个文件包含10000个这样的3073字节的“行”图像,尽管没有任何限制行的内容。因此,每个文件的长度应该正好是30730000字节。
还有一个文件,名为batches.meta.txt。这是一个ASCII文件,它将0-9范围内的数字标签映射到有意义的类名。它只是10个类名的列表,每行一个。第i行上的类名对应于数字标签i。
二、CIFAR-100数据集
这个数据集和CIFAR-10一样,只是它有100个类,每个类包含600个图像。每节课有500张训练图片和100张测试图片。CIFAR-100中的100个类被分为20个超类。每个图像都有一个“精细”标签(它所属的类)和一个“粗糙”标签(它所属的超类)。
以下是CIFAR-100中的类列表:
Superclass | Classes |
---|---|
aquatic mammals | beaver, dolphin, otter, seal, whale |
fish | aquarium fish, flatfish, ray, shark, trout |
flowers | orchids, poppies, roses, sunflowers, tulips |
food containers | bottles, bowls, cans, cups, plates |
fruit and vegetables | apples, mushrooms, oranges, pears, sweet peppers |
household electrical devices | clock, computer keyboard, lamp, telephone, television |
household furniture | bed, chair, couch, table, wardrobe |
insects | bee, beetle, butterfly, caterpillar, cockroach |
large carnivores | bear, leopard, lion, tiger, wolf |
large man-made outdoor things | bridge, castle, house, road, skyscraper |
large natural outdoor scenes | cloud, forest, mountain, plain, sea |
large omnivores and herbivores | camel, cattle, chimpanzee, elephant, kangaroo |
medium-sized mammals | fox, porcupine, possum, raccoon, skunk |
non-insect invertebrates | crab, lobster, snail, spider, worm |
people | baby, boy, girl, man, woman |
reptiles | crocodile, dinosaur, lizard, snake, turtle |
small mammals | hamster, mouse, rabbit, shrew, squirrel |
trees | maple, oak, palm, pine, willow |
vehicles 1 | bicycle, bus, motorcycle, pickup truck, train |
vehicles 2 | lawn-mower, rocket, streetcar, tank, tractor |
是的,我知道蘑菇不是真正的水果或蔬菜,熊也不是真正的食肉动物。
1 下载
版本 | 大小 | md5校验和 |
---|---|---|
CIFAR-100 python version | 161 MB | eb9058c3a382ffc7106e4002c42a8d85 |
CIFAR-100 Matlab version | 175 MB | 6a4bfa1dcd5c9453dda6bb54194911f4 |
CIFAR-100 binary version (suitable for C programs) | 161 MB | 03b5dce01913d631647c71ecec9e9cb8 |
2 数据集布局
2.1 Python/Matlab版本
python和Matlab版本在布局上与CIFAR-10相同,因此我不会在这里浪费空间来描述它们。
二进制版本
CIFAR-100的二进制版本与CIFAR-10的二进制版本相同,只是每个图像有两个标签字节(粗略和精细)和3072个像素字节,所以二进制文件如下所示:
<1 x coarse label><1 x fine label><3072 x pixel>
...
<1 x coarse label><1 x fine label><3072 x pixel>
2.2 索引到原始的8000万个小图像数据集
Sivan Sabato非常友好地提供了这个文件,它将CIFAR-100图像映射到8000万个微型图像数据集中的图像。Sivan 写道:
该文件有60000行,每行包含一个到tiny db的索引,其中 tiny db 中的第一个图像被索引为“1”、"0“表示不是来自 tiny db 的图像。前5万行对应训练集,后1万行对应测试集。
三、引用本数据集的要求
本技术报告(第3章)详细描述了收集数据集时所遵循的方法。如果你想使用这个数据集,请引用它。
- 从微小图像中学习多层特征,Alex Krizhevsky,2009。