CIFAR-10和CIFAR-100被标记为
8000万个小图像
数据集的子集。他们由Alex Krizhevsky,Vinod Nair和Geoffrey Hinton收集。
数据集分为五个训练批次和一个测试批次,每个批次和10000个图像。测试批次包含来自每个类的正好1000个随机选择的图像。训练批次以随机顺序包含剩余的图像,但是一些训练批次可能包含来自一个课程的更多图像。在他们之间,培训批次包含每个类别的正好5000个图像。
以下是数据集中的类,以及每个类的10个随机图像:
这些课程是完全相互排斥的。汽车和卡车之间没有重叠。“汽车”包括轿车,SUV,这样的事情。“卡车”只包括大型卡车。既不包括皮卡车。
归档包含文件 data_batch_1 , data_batch_2 ,..., data_batch_5 以及 test_batch 。这些文件中的每一个都是使用 cPickle 生成的Python“腌制”对象。这是一个python2例程,它将打开这样一个文件并返回一个字典:
数据集包含另一个名为 batches.meta的 文件。它也包含一个Python字典对象。它具有以下条目:
每个文件包含10000个这样的3073字节的“行”的图像,尽管 没有分隔行 。因此,每个文件应该是30730000字节长。
还有一个名为batches.meta.txt的文件 。这是一个ASCII文件,将范围为0-9的数字标签映射到有意义的类名。它只是10个类名的列表,每行一个。行 i 上的类名称对应于数字标签 i 。
以下是CIFAR-100中的课程列表:
是的,我知道蘑菇不是真的水果或蔬菜,而熊不是真正的食肉动物。
CIFAR-10数据集
CIFAR-10数据集由10个类别的60000个32x32彩色图像组成,每个类别有6000个图像。有50000个训练图像和10000个测试图像。数据集分为五个训练批次和一个测试批次,每个批次和10000个图像。测试批次包含来自每个类的正好1000个随机选择的图像。训练批次以随机顺序包含剩余的图像,但是一些训练批次可能包含来自一个课程的更多图像。在他们之间,培训批次包含每个类别的正好5000个图像。
以下是数据集中的类,以及每个类的10个随机图像:
飞机 | ||||||||||
汽车 | ||||||||||
鸟 | ||||||||||
猫 | ||||||||||
鹿 | ||||||||||
狗 | ||||||||||
青蛙 | ||||||||||
马 | ||||||||||
船 | ||||||||||
卡车 |
这些课程是完全相互排斥的。汽车和卡车之间没有重叠。“汽车”包括轿车,SUV,这样的事情。“卡车”只包括大型卡车。既不包括皮卡车。
下载
如果您要使用此数据集,请引用本页底部的技术报告。版 | 尺寸 | 的md5sum |
CIFAR-10 python版本 | 163 MB | c58f30108f718f92721af3b95e74349a |
CIFAR-10 Matlab版本 | 175 MB | 70270af85842c9e89bb428ec9976c926 |
CIFAR-10二进制版本(适用于C程序) | 162 MB | c32a1d4ab5d03f1284b67883e8d87530 |
基线结果
您可以 在cuda-convnet的项目页面 上找到关于此数据集的一些基线可复制结果。这些结果是用卷积神经网络获得的。简而言之,它们在没有数据增加的情况下是18%的测试错误,而11%的测试错误。此外, Jasper Snoek 还有一篇 新文章 ,他使用贝叶斯超参数优化来找到重量衰减和其他超参数的漂亮设置,这使得他能够使用网络架构获得15%的测试错误率(无数据增加)有18%。其他结果
Rodrigo Benenson 已经很善于在他的网站上收集CIFAR-10/100和其他数据集的结果; 点击这里 查看。数据集布局
Python / Matlab版本
我将描述数据集的Python版本的布局。Matlab版本的布局是一样的。归档包含文件 data_batch_1 , data_batch_2 ,..., data_batch_5 以及 test_batch 。这些文件中的每一个都是使用 cPickle 生成的Python“腌制”对象。这是一个python2例程,它将打开这样一个文件并返回一个字典:
def unpickle(file): 导入cPickle 用open(file,'rb')作为fo: dict = cPickle.load(fo) 返回字典和一个python3版本:
def unpickle(file): 进口泡菜 用open(file,'rb')作为fo: dict = pickle.load(fo,encoding ='bytes') 返回字典以这种方式加载,每个批处理文件都包含一个具有以下元素的字典:
- 数据 -一个10000x3072 numpy的阵列UINT8秒。阵列的每一行都存储32x32彩色图像。前1024个条目包含红色通道值,接下来的1024个绿色,最后1024个蓝色。图像以行主顺序存储,因此阵列的前32个条目是图像的第一行的红色通道值。
- 标签 - 范围为0-9的10000个数字的列表。索引i处的数字表示阵列数据中第i个图像的标号。
数据集包含另一个名为 batches.meta的 文件。它也包含一个Python字典对象。它具有以下条目:
- label_names - 一个10元素列表,为上述标签数组中的数字标签提供有意义的名称。例如,label_names [0] ==“airplane”,label_names [1] ==“汽车”等
二进制版本
二进制版本包含文件 data_batch_1.bin , data_batch_2.bin ,..., data_batch_5.bin 以及 test_batch.bin 。这些文件的格式如下:<1 x label> <3072 x像素> ... <1 x label> <3072 x像素>换句话说,第一个字节是第一个图像的标签,它是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中的课程列表:
超 | 类 |
水生哺乳动物 | 海狸,海豚,水獭,印章,鲸鱼 |
鱼 | 水族馆鱼,鲽鱼,ray鱼,鲨鱼,鳟鱼 |
花卉 | 兰花,罂粟花,玫瑰,向日葵,郁金香 |
食品容器 | 瓶,碗,罐,杯子,盘子 |
水果和蔬菜 | 苹果,蘑菇,橙子,梨,甜椒 |
家用电器 | 时钟,电脑键盘,灯,电话,电视 |
家用家具 | 床,椅子,沙发,桌子,衣柜 |
昆虫 | 蜜蜂,甲虫,蝴蝶,毛虫,蟑螂 |
大食肉动物 | 熊,豹,狮,虎,狼 |
大型人造户外用品 | 桥,城堡,房子,道路,摩天大楼 |
大自然户外场景 | 云,森林,山,平原,海 |
大型杂食动物和食草动物 | 骆驼,牛,黑猩猩,大象,袋鼠 |
中型哺乳动物 | 狐狸,豪猪,负鼠,浣熊,臭鼬 |
非昆虫无脊椎动物 | 螃蟹,龙虾,蜗牛,蜘蛛,蠕虫 |
人 | 宝贝,男孩,女孩,男人,女人 |
爬行动物 | 鳄鱼,恐龙,蜥蜴,蛇,龟 |
小型哺乳动物 | 仓鼠,老鼠,兔,rew,松鼠 |
树木 | 枫树,橡树,棕榈,松树,柳树 |
车辆1 | 自行车,公共汽车,摩托车,皮卡车,火车 |
车辆2 | 割草机,火箭,有轨电车,坦克,拖拉机 |
是的,我知道蘑菇不是真的水果或蔬菜,而熊不是真正的食肉动物。
下载
版 | 尺寸 | 的md5sum |
CIFAR-100 python版本 | 161 MB | eb9058c3a382ffc7106e4002c42a8d85 |
CIFAR-100 Matlab版本 | 175 MB | 6a4bfa1dcd5c9453dda6bb54194911f4 |
CIFAR-100二进制版本(适用于C程序) | 161 MB | 03b5dce01913d631647c71ecec9e9cb8 |
数据集布局
Python / Matlab版本
python和matlab版本的布局与CIFAR-10相同,所以我不会浪费在这里描述的空间。二进制版本
CIFAR-100的二进制版本就像CIFAR-10的二进制版本,不同之处在于每个图像都有两个标签字节(粗略和精细)和3072像素字节,因此二进制文件如下所示:<1 x粗标签> <1 x精细标签> <3072 x像素> ... <1 x粗标签> <1 x精细标签> <3072 x像素>
指数进入原始的8000万个小图像数据集
Sivan Sabato很善于提供 这个文件 ,它将CIFAR-100图像映射到8000万个小图像数据集中的图像。Sivan写:该文件有60000行,每行包含单个索引到小数据库, 其中小数据库中的第一个图像被索引为“1”。“0”表示不是从小数据库的图像。 前50000行对应于训练集,最后10000行对应 到测试集。