cifar-10数据集整理解读

904 阅读5分钟

cifar-10数据集

下载方式: 官网:www.cs.toronto.edu/~kriz/cifar…

对网页进行解读:

CIFAR-10和CIFAR-100是8000万个微小图像的标记子集(people.csail.mit.edu/torralba/ti…) 数据集。它们由亚历克斯·克里兹耶夫斯基、维诺德·奈尔和杰弗里·辛顿收藏。

The CIFAR-10 dataset

CIFAR-10数据集包含60000个32x32彩色图像,分为10个类,每个类有6000个图像。有50000个训练图像和10000个测试图像。

数据集分为五个训练批和一个测试批,每个批有10000幅图像。测试批包含每个类中的1000个随机选择的图像。培训批次随机包含剩余图像,但有些培训批次可能包含来自一个类的图像多于另一个类。其中,培训批次中每节课的图片准确5000张。

123454.PNG

这些类是完全互斥的。汽车和卡车之间没有重叠。”“汽车”包括轿车,SUV,诸如此类的东西卡车“只包括大卡车。两者都不包括皮卡车。

Download(这里我们下载的就是CIFAR-10 python version)

If you're going to use this dataset, please cite the tech report at the bottom of this page.

VersionSizemd5sum
CIFAR-10 python version163 MBc58f30108f718f92721af3b95e74349a
CIFAR-10 Matlab version175 MB70270af85842c9e89bb428ec9976c926
CIFAR-10 binary version (suitable for C programs)162 MBc32a1d4ab5d03f1284b67883e8d87530

数据集布局

Python / Matlab versions

我将描述数据集的Python版本的布局。Matlab版本的布局是相同的。

存档包含文件 data_batch_1, data_batch_2, ..., data_batch_5以及test_batch。这些文件中的每一个都是用cPickle生成的Python“pickled”对象(www.python.org/doc/2.5/lib…). 它将打开这样一个文件并返回一个字典:

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

Loaded in this way, each of the batch files contains a dictionary with the following elements:

  • data -- UINT8的10000x3072 numpy阵列。阵列的每一行存储一个32x32色图像。前1024个条目包含红色通道值,后1024个条目包含绿色通道值,最后1024个条目包含蓝色通道值。图像按行主顺序存储,因此数组的前32个条目是图像第一行的红色通道值。
    • 说明:3072 是 32 * 32 = 1024 一个channel一共1024个像素,但是是彩色图片,包含3个通道, 1024 * 3 = 3072个像素,一共10000张图片,最终的阵列是10000 * 3072的样子。
  • labels -- 在0-9范围内包含10000个数字的列表。索引 i 处的数字表示数组数据中第 i 个图像的标签。

数据集包含另一个名为batches.meta的文件。它也包含一个Python字典对象。它包含以下条目:

  • label_names——一个由10个元素组成的列表,它为上述labels数组中的数字标签提供有意义的名称。例如,label_names[0]== “飞机”,label_names[1]==“汽车”,等等。

二进制版本

二进制版本包含文件 data_batch_1, data_batch_2, ..., data_batch_5以及test_batch。每个文件的格式如下:

<1 x标签><3072 x像素>

...

<1 x标签><3072 x像素>

换句话说,第一个字节是第一个图像的标签,它是一个0-9范围内的数字接下来的3072字节是图像像素的值。前1024字节是红色通道值,后1024字节是绿色通道值,最后1024字节是蓝色通道值。值按行主顺序存储,因此前32个字节是图像第一行的红色通道值

每个文件包含10000个这样的3073字节的图像“行”,尽管没有任何行的分隔。因此,每个文件的长度应该正好是30730000字节。

还有另一个文件,名为batches.meta.txt。这是一个ASCII文件,它将0-9范围内的数字标签映射到有意义的类名。它只是10个类名的列表,每行一个。第 i 行的类名对应于数字标签 i 。

The CIFAR-100 dataset

这个数据集与CIFAR-10类似,只是它有100个类,每个类包含600个图像。每个class有500张训练图片和100张测试图片。CIFAR-100中的100个类被分为20个超类。每个图像都有一个“精细”标签(它所属的类)和一个“粗糙”标签(它所属的超类)。

以下是CIFAR-100中的类列表:

SuperclassClasses
aquatic mammalsbeaver, dolphin, otter, seal, whale
fishaquarium fish, flatfish, ray, shark, trout
flowersorchids, poppies, roses, sunflowers, tulips
food containersbottles, bowls, cans, cups, plates
fruit and vegetablesapples, mushrooms, oranges, pears, sweet peppers
household electrical devicesclock, computer keyboard, lamp, telephone, television
household furniturebed, chair, couch, table, wardrobe
insectsbee, beetle, butterfly, caterpillar, cockroach
large carnivoresbear, leopard, lion, tiger, wolf
large man-made outdoor thingsbridge, castle, house, road, skyscraper
large natural outdoor scenescloud, forest, mountain, plain, sea
large omnivores and herbivorescamel, cattle, chimpanzee, elephant, kangaroo
medium-sized mammalsfox, porcupine, possum, raccoon, skunk
non-insect invertebratescrab, lobster, snail, spider, worm
peoplebaby, boy, girl, man, woman
reptilescrocodile, dinosaur, lizard, snake, turtle
small mammalshamster, mouse, rabbit, shrew, squirrel
treesmaple, oak, palm, pine, willow
vehicles 1bicycle, bus, motorcycle, pickup truck, train
vehicles 2lawn-mower, rocket, streetcar, tank, tractor

是的,我知道蘑菇不是真正的水果或蔬菜,熊也不是真正的食肉动物。

Download

VersionSizemd5sum
CIFAR-100 python version161 MBeb9058c3a382ffc7106e4002c42a8d85
CIFAR-100 Matlab version175 MB6a4bfa1dcd5c9453dda6bb54194911f4
CIFAR-100 binary version (suitable for C programs)161 MB03b5dce01913d631647c71ecec9e9cb8

Dataset layout

Python / Matlab versions

python和Matlab版本在布局上与CIFAR-10是相同的,所以我不会在这里浪费空间来描述它们。