当前位置: 首页 > news >正文

Python的6万张图像数据集CIFAR-10和CIFAR-100说明

CIFAR-10和CIFAR-100数据集是8000万张微小图像数据集的标记子集。CIFAR-10和CIFAR-100都是由AlexKrizhevsky、VinodNair和GeoffreyHinton创建。数据集说明的网页:https://www.cs.toronto.edu/~kriz/cifar.html

一、CIFAR-10数据集

(一)CIFAR-10数据集说明

CIFAR-10数据集由10个类的60000张32x32彩色图像组成,每个类有6000张图像。有50000张训练图像10000张测试图像

数据集分为5个训练批次1个测试批次每个批次有10000张图像测试批次包含每个类中随机选择的1000张图像训练批次包含按随机顺序排列的剩余图像,但某些训练批次可能包含来自一个类的图像多于另一个类的图像。在它们之间,训练批次包含来自每个类的5000张图像。

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

这些类是完全互斥的。汽车和卡车之间没有重叠。“汽车”包括轿车、SUV等类似的东西。“卡车”仅包括大型卡车。两者都不包括皮卡车。

(二)CIFAR-10数据集下载

如果您打算使用此数据集,请引用本页底部的技术报告。

版本

大小

md5sum

CIFAR-10 python版本

163兆字节

c58f30108f718f92721af3b95e74349a

CIFAR-10 Matlab版本

175兆字节

70270af85842c9e89bb428ec9976c926

CIFAR-10二进制版本(适用于C程序)

162兆字节

c32a1d4ab5d03f1284b67883e8d87530

(三)基线结果

你可以在 cuda-convnet的项目页面上找到此数据集上的一些基线可复制结果。这些结果是通过卷积神经网络获得的。简而言之,在没有数据增强的测试误差为18%,有数据增强的测试误差为11%。此外,Jasper Snoek 在一篇新论文中,他使用贝叶斯超参数优化来找到权重衰减和其他超参数的不错设置,这使他能够在使用15%的网络架构能力的基础上,能够获得18%的测试错误率(没有数据增强)。

(四)数据集布局

1.Python/Matlab版本

这里描述Python版本数据集的布局。Matlab版本的布局是相同的。
存档包含文件 data_batch_1、 data_batch_2、...、 data_batch_5 以及 test_batch。这些文件中的每一个都是使用 cPickle 生成的Python“pickled”对象。

下载到本地并解压后的结果如下:

下面是一个python2例程,通过以下方法打开data_batch文件并返回一个字典

def unpickle(file):import cPicklewith open(file, 'rb') as fo:dict = cPickle.load(fo)return dict

python3版本:以以下方式加载,每个批处理data_batch文件都包含一个带有以下元素的字典

def unpickle(file):import picklewith open(file, 'rb') as fo:dict = pickle.load(fo, encoding='bytes')return dict

每个data_batch中:

(1)data :一个 uint8的numpy 数组大小是10000 x 3072 (每个批次10000张图像)。数组的每一行存储一个32x32彩色图像(图像总共有1024个像素点,每个像素点具有红绿蓝三个通道值,所以总共有3072个数值)。前1024个条目包含红色通道值,接下来的1024个条目包含绿色通道值,最后1024个条目包含蓝色通道值。图像按行优先顺序存储,因此数组的前32个是图像第一行的红色通道值

(2)labels(标签):范围0-9的10000个数字的列表。索引 i 处的数字表示数组数据中第 i张图像的标签。

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

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

2.二进制版本

二进制版本包含文件 data_batch_1.bin、data_batch_2.bin、...、data_batch_5.bin 以及 test_batch.bin。其中每个文件的格式如下:换句话说,第一个字节是第一个图像的标签,它是一个范围在0-9之间的数字。接下来的3072字节是图像像素的值。前1024个字节是红色通道值,接下来的1024个字节是绿色通道值,最后1024个字节是蓝色通道值。这些值按行优先顺序存储,因此前32个字节是图像第一行的红色通道值。
每个文件包含10000个3073字节的“行”图像,尽管没有分隔这些行的内容。因此,每个文件的长度应正好为30730000字节。
还有另一个名为 batches.meta.txt 的文件。这是一个ASCII文件,用于将0-9范围内的数字标签映射到有意义的类名称。它只是10个类名的列表,每行一个。第 i 行上的类名对应于数字标签 i。

<1 x label><3072 x pixel>...<1 x label><3072 x pixel>

二、CIFAR-100数据集

(一)CIFAR-100数据集说明

此数据集与CIFAR-10类似,不同之处在于它有100个类,每个类包含600张图像。每个类有500张训练图像和100张测试图像。CIFAR-100中的100个类被分为20个超类。每个图像都带有一个“fine”标签(它所属的类)和一个“coarse”标签(它所属的超类)。
以下是CIFAR-100中的类列表:

超类

水生哺乳动物

海狸,海豚,水獭,海豹,鲸鱼

观赏鱼,比目鱼,鳐鱼,鲨鱼,鳟鱼

兰花、罂粟花、玫瑰、向日葵、郁金香

食品容器

瓶子、碗、罐、杯、盘

水果和蔬菜

苹果、蘑菇、橙子、梨、甜椒

家用电器

时钟,电脑键盘,灯,电话,电视

家用家具

床、椅子、沙发、桌子、衣柜

昆虫

蜜蜂,甲虫,蝴蝶,毛毛虫,蟑螂

大型食肉动物

熊、豹、狮子、老虎、狼

大型人造户外物品

桥,城堡,房子,路,摩天大楼

大型自然户外场景

云,森林,山,平原,海

大型杂食动物和食草动物

骆驼,牛,黑猩猩,象,袋鼠

中型哺乳动物

狐狸,豪猪,负鼠,浣熊,臭鼬

非昆虫无脊椎动物

螃蟹,龙虾,蜗牛,蜘蛛,蠕虫

婴儿,男孩,女孩,男人,女人

爬行动物

鳄鱼,恐龙,蜥蜴,蛇,

小型哺乳动物

仓鼠,小鼠,兔子,鼩鼱,松鼠

枫树,橡树,棕榈树,松树,柳树

车辆1

自行车、公共汽车、摩托车、皮卡车、火车

载具2

割草机,火箭,有轨电车,坦克,拖拉机

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

下载

版本

大小

md5sum

CIFAR-100 python版本

161兆字节

eb9058c3a382ffc7106e4002c42a8d85

CIFAR-100 Matlab版本

175兆字节

6a4bfa1dcd5c9453dda6bb54194911f4

CIFAR-100 二进制版本(适用于C程序)

161兆字节

03b5dce01913d631647c71ecec9e9cb8

数据集布局

1.Python/Matlab版本

python和Matlab版本在布局上与CIFAR-10相同。

2.二进制版本

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>

三、原始8000万张微小图像数据集的索引

SivanSabato很好心地提供了这个文件,它将CIFAR-100图像映射到8000万张微小图像数据集中的图像。Sivan写道:

The file has 60000 rows, each row contains a single index into the tiny db,

where the first image in the tiny db is indexed "1". "0" stands for an image that is not from the tiny db.

The first 50000 lines correspond to the training set, and the last 10000 lines correspond

to the test set.

参考

本技术报告(第3章)更详细地描述了数据集和收集数据集时遵循的方法。如果您打算使用此数据集,请引用它。

Learning Multiple Layers of Features from Tiny Images, Alex Krizhevsky, 2009.

相关文章:

  • 软件工程概述:核心概念、模型与方法全解析
  • Linux编程:5、进程通信-命名管道
  • 从流量为王到留量为王:开源链动2+1模式、AI智能名片与S2B2C商城小程序的协同创新路径
  • Skrill是什么?中国用户能用吗?安全吗?完整指南
  • Spring Boot + MyBatis + Vue:全栈开发的深度剖析与实践指南
  • WINUI/WPF——Button不同状态下图标切换
  • DM8故障分析工具-AWR报告
  • mysql导入大sql(比如10GB的sql文件)
  • Kubernetes核心技术原理详解
  • Linux文件元信息完全指南:权限、链接与时间属性
  • 文本分类与聚类:让信息“各归其位”的实用方法
  • 用Python实现安全封装EXE文件加密保护工具
  • Windows IOCP(I/O Completion Port)模型详解
  • TCP 三次握手与四次挥手全流程详解
  • Android Studio 打 APK 包报错 Invalid keystore format 的解决方法
  • Linux运维新人自用笔记(Ubuntu磁盘命名规则、新磁盘分区、主流文件系统类型、mkfs命令格式化文件系统、临时和永久挂载、挂载报错、dd指令)
  • C++11 std::thread 多线程编程详解
  • 18年磨一剑!开利科技启动数字化增量投资新时代
  • 常见应用层协议介绍
  • MCP入门实战(Python版)
  • 供应链网站制作/高权重外链
  • 建立网站培训讲义/百度seo排名优化
  • 如何推动一个教学网站的建设/电商运营主要做什么
  • 网站建设需要几个阶段/seo搜索推广费用多少
  • 关于网站建设的好处/优化大师最新版本
  • 新网站优化怎么做/怎么建立自己的网站平台