CIFAR-10 数据集简介

文章目录


CIFAR-10 简介

官网:http://www.cs.toronto.edu/~kriz/cifar.html

CIFAR-10和CIFAR-100是8000个万小图像数据集的标记子集。它们由Alex Krizhevsky, Vinod Nair和Geoffrey Hinton收集。

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

数据集分为五个训练batches和一个测试batch,每个batch有10000张图像。测试batch包含从每个类中随机选择的1000个图像。训练batches以随机顺序包含剩余的图像,但有些训练batches可能包含一个类的图像多于另一个类的图像。在它们之间,训练batches包含来自每个类的5000张图像。

下面是数据集中的类,以及每个类的10张随机图片:

在这里插入图片描述

一共包含10 个类别的RGB 彩色图片:飞机( airplane )、汽车( automobile )、鸟类( bird )、猫( cat )、鹿( deer )、狗( dog )、蛙类( frog )、马( horse )、船( ship )和卡车( truck )。

这些类是完全相互排斥的。汽车和卡车之间没有重叠。“汽车”包括轿车、越野车之类的东西。“卡车”只包括大卡车。这两项都不包括皮卡。

该数据集的Python版本的布局:

存档包含文件data_batch_1, data_batch_2,…、data_batch_5以及test_batch。它们中各有10000 个样本。这些文件中的每一个都是使用 cPickle 生成的 Python“pickle” 对象(Python的序列化数据,详情参见:【Python】Python 中实现数据序列化)。下面是一个 Python2 的例子,它将打开这样一个文件并返回一个字典(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

以这种方式加载(反序列化后),每个批处理文件都包含一个字典,该字典包含以下元素:

  • 数据——10000(样本数)x3072 (1024*3个通道值)numpy阵列的uint8。数组的每一行存储一个32x32的彩色图像。前1024项包含红色通道值,中间1024项包含绿色通道值,最后1024项包含蓝色通道值。图像按以行为主(row-major)的顺序存储,因此数组的前32个条目是图像第一行的红色通道值。

  • 标签——从0到9的10000个数字的列表。索引 i 处的数字表示数组数据中第 i 个图像的标签。

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

  • Label_names——一个10个元素的列表,为上面描述的标签数组中的数字标签提供有意义的名称。例如,label_names[0] == “airplane”, label_names[1] == “automobile”,等等。

猜你喜欢

转载自blog.csdn.net/weixin_44211968/article/details/128111897