模式识别-数据集
在训练神经网络进行图像识别分类时,常会用到一些通用的数据集合。利用这些数据集合可以对比不同模型的性能差异。下文整理常用的图片数据集合(持续更新中)。
基本信息对比表格:
| 数据集合 | 类别数 | 图像数/类 | 训练集 | 测试集 | 图像大小 | 格式 | 数据集大小 | 图像内容 |
|---|---|---|---|---|---|---|---|---|
| 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 字节。
数据集合的文件目录如下:
通过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