CIFAR-10/CIFAR-100数据集解析
参考文献 CIFAR-10/CIFAR-100数据集
CIFAR-10和CIFAR-100被标记为8000万个微小图像数据集的子集。他们由Alex Krizhevsky,Vinod Nair和Geoffrey Hinton收集。
CIFAR-10数据集
CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。有50000个训练图像和10000个测试图像。 数据集分为五个训练批次和一个测试批次,每个批次有10000个图像。测试批次包含来自每个类别的恰好1000个随机选择的图像。训练批次以随机顺序包含剩余图像,但一些训练批次可能包含来自一个类别的图像比另一个更多。总体来说,五个训练集之和包含来自每个类的正好5000张图像。 以下是数据集中的类,以及来自每个类的10个随机图像:
这些类完全相互排斥。汽车和卡车之间没有重叠。“汽车”包括轿车,SUV,这类东西。“卡车”只包括大卡车。都不包括皮卡车。 airplane/automobile/bird/cat/deer/dog/frog/horse/ship/truck
CIFAR-10下载
CIFAR-10 python版本 CIFAR-10 Matlab版本 CIFAR-10二进制版本(适用于C程序)
数据集布局
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 uint8的numpy数组。阵列的每一行存储32x32彩色图像即每一行存储32323=3072个数字信息。前1024个条目包含红色通道值,下一个1024个绿色,最后1024个蓝色。图像以行优先顺序存储,以便数组的前32个条目是图像第一行的红色通道值。 标签 - 范围为0-9的10000个数字的列表。索引i处的数字表示阵列数据中第i个图像的标签。 该数据集包含另一个名为batches.meta的文件。它也包含一个Python字典对象。它有以下条目: label_names - 一个10个元素的列表,它为上述标签数组中的数字标签赋予了有意义的名称。例如,label_names [0] ==“飞机”,label_names [1] ==“汽车”等
二进制版本
二进制版本包含文件data_batch_1.bin,data_batch_2.bin,...,data_batch_5.bin以及test_batch.bin。这些文件中的每一个格式如下:
<1×标签> <3072×像素>
...
<1×标签> <3072×像素>
换句话说,第一个字节是第一个图像的标签,它是一个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中的类别列表:
超类 |
类别 |
---|---|
水生哺乳动物 |
海狸,海豚,水獭,海豹,鲸鱼 |
鱼 |
水族馆的鱼,比目鱼,射线,鲨鱼,鳟鱼 |
花卉 |
兰花,罂粟花,玫瑰,向日葵,郁金香 |
食品容器 |
瓶子,碗,罐子,杯子,盘子 |
水果和蔬菜 |
苹果,蘑菇,橘子,梨,甜椒 |
家用电器 |
时钟,电脑键盘,台灯,电话机,电视机 |
家用家具 |
床,椅子,沙发,桌子,衣柜 |
昆虫 |
蜜蜂,甲虫,蝴蝶,毛虫,蟑螂 |
大型食肉动物 |
熊,豹,狮子,老虎,狼 |
大型人造户外用品 |
桥,城堡,房子,路,摩天大楼 |
大自然的户外场景 |
云,森林,山,平原,海 |
大杂食动物和食草动物 |
骆驼,牛,黑猩猩,大象,袋鼠 |
中型哺乳动物 |
狐狸,豪猪,负鼠,浣熊,臭鼬 |
非昆虫无脊椎动物 |
螃蟹,龙虾,蜗牛,蜘蛛,蠕虫 |
人 |
宝贝,男孩,女孩,男人,女人 |
爬行动物 |
鳄鱼,恐龙,蜥蜴,蛇,乌龟 |
小型哺乳动物 |
仓鼠,老鼠,兔子,母老虎,松鼠 |
树木 |
枫树,橡树,棕榈,松树,柳树 |
车辆1 |
自行车,公共汽车,摩托车,皮卡车,火车 |
车辆2 |
割草机,火箭,有轨电车,坦克,拖拉机 |
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 |
CIFAR-100下载
CIFAR-100 python版本 CIFAR-100 Matlab版本 CIFAR-100二进制版本(适用于C程序)
数据集布局
Python/matlab版本
python和Matlab版本的布局与CIFAR-10相同.
二进制版本
CIFAR-100的二进制版本与CIFAR-10的二进制版本相似,只是每个图像都有两个标签字节(粗略和细小)和3072像素字节,所以二进制文件如下所示:
<1 x粗标签> <1 x精标签> <3072 x像素>
...
<1 x粗标签> <1 x精标签> <3072 x像素>
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法