PyTorch 中的 CIFAR-10 和 CIFAR-100 数据集

2025年3月17日 | 阅读 3 分钟

在前面的主题中,我们学习了如何使用 endless 数据集来识别数字图像。 endless 数据集由于其简单性,是深度学习的入门数据集。 endless 数据集是深度学习的 hello world。

CIFAR 10(加拿大高级研究所)的分类难度更大,并将带来我们需要克服的新障碍。 它是图像的集合,通常用于训练机器学习和计算机视觉算法。 CIFAR 10 数据集包含 50000 张训练图像和 10000 张验证图像,可以将图像分类为 10 个不同的类别。

CIFAR-10 数据集包含 60000 张 30x30 的彩色图像,分为 10 个类别,即每个类别 6000 张图像。 此数据集分为一个测试批次和五个训练批次。 每个批次包含 10000 张图像。 在测试批次中,有 1000 张图像是从每个类别中随机选择的。 训练批次包含随机顺序的剩余图像。 某些训练批次可能包含来自一个类别的比另一个类别的更多图像。

CIFAR-10 and CIFAR-100 Dataset in PyTorch

这些类将完全互斥。 汽车和卡车之间不会有重叠。 汽车包括类似于轿车和 SUV 的东西。 卡车类别仅包括大型卡车,不包括皮卡车。 与 MNIST 数据集相反,这些类中的对象本质上更复杂且变化极大。 如果我们浏览 CIFAR 数据集,我们会意识到不仅仅有一种类型的鸟或猫。 鸟类和猫类包含许多不同类型的鸟类和猫,其大小、颜色、放大倍数、不同角度和不同姿势各不相同。

对于 endless 数据集,虽然我们可以用多种方式书写数字 1 和数字 2。 但它并没有那么多样化,而且最重要的是,endless 数据集是灰度标量。 CIFAR 数据集包含更大的 32x32 彩色图像,并且每张图像都有三个不同的颜色通道。 现在我们最大的问题是,在 endless 数据集上表现如此出色的 LeNet 模型是否足以对 CIFAR 数据集进行分类?

CIFAR-100 数据集

它就像 CIFAR-10 数据集。 唯一的区别是它有 100 个类别,每个类别包含 600 张图像。 每个类别有 100 张测试图像和 500 张训练图像。 这 100 个类别分为 20 个超类,每张图像都带有“粗略”标签(它所属的超类)和“精细”标签(它所属的类)。

CIFAR-100 数据集中包含以下类别

序号超类
1.水生哺乳动物海狸、海豚、水獭、海豹、鲸鱼
2.兰花、罂粟花、玫瑰、向日葵、郁金香
3.观赏鱼、比目鱼、鳐鱼、鲨鱼、鳟鱼
4.食物容器瓶子、碗、罐头、杯子、盘子
5.家用电器时钟、电脑键盘、灯、电话、电视
6.水果和蔬菜苹果、蘑菇、橙子、梨、甜椒
7.家用家具床、椅子、沙发、桌子、衣柜
8.大型食肉动物熊、豹、狮子、老虎、狼
9.昆虫 蜜蜂、甲虫、蝴蝶、毛毛虫、蟑螂
10.大型人造户外事物桥、城堡、房屋、道路、摩天大楼
11.大型自然户外场景云、森林、山脉、平原、海洋
12.中型哺乳动物狐狸、豪猪、负鼠、浣熊、臭鼬
13.大型杂食动物和食草动物骆驼、牛、黑猩猩、大象、袋鼠
14.非昆虫无脊椎动物螃蟹、龙虾、蜗牛、蜘蛛、蠕虫
15.爬行动物鳄鱼、恐龙、蜥蜴、蛇、乌龟
16.人物婴儿、男孩、女孩、男人、女人
17.树木枫树、橡树、棕榈树、松树、柳树
18.小型哺乳动物仓鼠、老鼠、兔子、鼩鼱、松鼠
19.车辆 1自行车、公共汽车、摩托车、皮卡车、火车
20.车辆 2割草机、火箭、有轨电车、坦克、拖拉机