模式识别-数据集


在训练神经网络进行图像识别分类时,常会用到一些通用的数据集合。利用这些数据集合可以对比不同模型的性能差异。下文整理常用的图片数据集合(持续更新中)。
基本信息对比表格:

数据集合 类别数 图像数/类 训练集 测试集 图像大小 格式 数据集大小 图像内容
CIFAR-10 10 6k 5w 1w 32*32 RGB 163M 交通工具,动物
MNIST 10

1 CIFAR-10

CIFAR-10是RGB 彩色图像数据集,是Hinton的学生Alex标注整理发布。
数据集发布网站:http://www.cs.toronto.edu/~kriz/cifar.html

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

每个图片的尺寸为32 × 32 ,每个类别有6000个图像,数据集中一共有50000 张训练图片和10000 张测试图片。训练数据背分别放在5个.bin文件中,测试数据放在1个文件中。

一个样本由32323=3073 个字节组成,第一个字节为标签label ,剩下3072 个字节为图像数据。样本和样本之间没高多余的字节分割, 每个二进制文件的大小是30730000 字节。

数据集合的文件目录如下:
模式识别(1)--数据集CIFAR-10
通过pytorch 读入cifar-10数据文件:

transform=transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)), ])

训练集,将目录./data下的cifar-10-batches-py文件夹中的全部训练数据(50000张训练图片)加载到内存中,若download为True时,会自动从网上下载数据并解压

trainset = torchvision.datasets.CIFAR10(root=’./data’, train=True, download=True, transform=transform)

将训练集的50000张图片划分成12500份,每份4张图,用于mini-batch输入。shffule=True在不同epoch的数据遍历时,打乱顺序重新分组。num_workers=2:使用两个子进程来加载数据

trainloader = torch.utils.data.DataLoader(trainset, batch_size=4, shuffle=True, num_workers=2)

测试集,将目录./data下的cifar-10-batches-py文件夹中的全部测试数据(10000张测试图片)加载到内存中,若download为True时,会自动从网上下载数据并解压

testset = torchvision.datasets.CIFAR10(root=’./data’, train=False, download=False, transform=transform)

将测试集的10000张图片划分成2500份,每份4张图,用于mini-batch输入。

testloader = torch.utils.data.DataLoader(testset, batch_size=4, shuffle=False, num_workers=2)

用for 循环enumerate在trainloader和testloader 中取批次数据即可。

for i, data in enumerate(trainloader, 0):

参考资料:https://blog.csdn.net/qq_41185868/article/details/82793025

2.MNIST

3.LUN

相关文章: