MNIST 数据集
MNIST MNIST(美国国家标准与技术研究院)数据集是一个大型手写数字数据库,通常用于训练各种图像处理系统和机器学习模型。它是通过对 NIST 原始数据集中的样本进行 "重新混合 "而创建的,已成为评估图像分类算法性能的基准。
主要功能
- MNIST 包含 60,000 张手写数字训练图像和 10,000 张测试图像。
- 该数据集包含大小为 28×28 像素的灰度图像。
- 这些图像经过归一化处理,以适应28×28像素的边界框并进行抗锯齿处理,从而引入灰度级别。
- MNIST 广泛用于机器学习领域的训练和测试,尤其是图像分类任务。
数据集结构
MNIST 数据集分为两个子集:
- 训练集: 该子集包含 60,000 张手写数字图像,用于训练机器学习模型。
- 测试集:此子集包含 10,000 张用于测试和评估已训练模型的图像。
数据集访问
- 原始文件:如果想直接控制预处理,可从Yann LeCun 的MNIST 页面下载 gzip 压缩包。
- Ultralytics 装载机:使用
data="mnist"(或data="mnist160"的子集),数据集将被下载、转换为 PNG 并自动缓存。
数据集中的每张图像都标有相应的数字(0-9),使其成为一个用于分类任务的理想监督学习数据集。
扩展的MNIST (EMNIST)
扩展MNIST (EMNIST) 是 NIST 开发并发布的一个较新的数据集,是MNIST 的继承者。MNIST 仅包含手写数字的图像,而 EMNIST 则包含 NIST 第 19 号特殊数据库中的所有图像,这是一个包含手写大小写字母和数字的大型数据库。EMNIST 中的图像通过与MNIST 图像相同的流程转换成相同的 28×28 像素格式。因此,使用较早的、较小的MNIST 数据集的工具很可能可以不加修改地使用 EMNIST。
应用
MNIST 数据集广泛用于训练和评估图像分类任务中的深度学习模型,如卷积神经网络(CNN)、支持向量机(SVM)和其他各种机器学习算法。该数据集格式简单、结构合理,是机器学习和计算机视觉领域研究人员和从业人员的重要资源。
一些常见的应用包括:
- 对新的分类算法进行基准测试
- 用于教学机器学习概念的教育目的
- 图像识别系统原型设计
- 测试模型优化技术
用法
要在图像大小为 28×28 的MNIST 数据集上对 CNN 模型进行 100次历时训练,可以使用以下代码片段。有关可用参数的完整列表,请参阅模型训练页面。
训练示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="mnist", epochs=100, imgsz=28)
# Start training from a pretrained *.pt model
yolo classify train data=mnist model=yolo11n-cls.pt epochs=100 imgsz=28
Sample Images 和注释
MNIST 数据集包含手写数字的灰度图像,为图像分类任务提供了一个结构良好的数据集。下面是该数据集中的一些图像示例:

该示例展示了MNIST 数据集中手写数字的多样性和复杂性,突出了多样化数据集对训练强大图像分类模型的重要性。
引用和致谢
如果您在研究或开发工作中使用MNIST 数据集,请引用以下论文:
@article{lecun2010mnist,
title={MNIST handwritten digit database},
author={LeCun, Yann and Cortes, Corinna and Burges, CJ},
journal={ATT Labs [Online]. Available: http://yann.lecun.com/exdb/mnist},
volume={2},
year={2010}
}
感谢 Yann LeCun、Corinna Cortes 和 Christopher J.C. Burges 创建并维护MNIST 数据集,使其成为机器学习和计算机视觉研究界的宝贵资源。有关MNIST 数据集及其创建者的更多信息,请访问MNIST 数据集网站。
MNIST160 快速测试
需要快速回归测试?Ultralytics 还提供 data="mnist160",一个包含来自每个数字类别的首批八个样本的 160 图像切片。它镜像了 MNIST 目录结构,因此您可以在不更改任何其他参数的情况下交换数据集:
使用 MNIST160 训练示例
yolo classify train data=mnist160 model=yolo11n-cls.pt epochs=5 imgsz=28
在提交完整的 70,000 个图像数据集之前,将此子集用于 CI 管道或合理性检查。
常见问题
什么是MNIST 数据集,为什么它在机器学习中很重要?
MNIST MNIST数据集,即修改后的美国国家标准与技术研究院数据集,是一个广泛使用的手写数字集合,用于训练和测试图像分类系统。它包括 60,000 张训练图像和 10,000 张测试图像,所有图像均为灰度,大小为 28×28 像素。该数据集的重要性在于它是评估图像分类算法的标准基准,帮助研究人员和工程师比较各种方法并track 该领域的进展。
如何使用Ultralytics YOLO 在MNIST 数据集上训练模型?
要使用Ultralytics YOLO 在MNIST 数据集上训练模型,可以按照以下步骤进行:
训练示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-cls.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="mnist", epochs=100, imgsz=28)
# Start training from a pretrained *.pt model
yolo classify train data=mnist model=yolo11n-cls.pt epochs=100 imgsz=28
有关可用训练参数的详细列表,请参阅训练页面。
MNIST 和 EMNIST 数据集之间有什么区别?
MNIST 数据集只包含手写数字,而扩展MNIST (EMNIST) 数据集则同时包含数字和大小写字母。EMNIST 是作为MNIST 的后继数据集而开发的,使用相同的 28×28 像素图像格式,因此与为原始MNIST 数据集设计的工具和模型兼容。EMNIST 中的字符范围更广,因此可用于更广泛的机器学习应用。
我能使用Ultralytics HUB 在MNIST 等自定义数据集上训练模型吗?
是的,你可以使用Ultralytics HUB在MNIST等自定义数据集上训练模型。Ultralytics HUB为上传数据集、训练模型和管理项目提供了友好的用户界面,用户无需具备丰富的编码知识。有关如何开始的更多详情,请查看Ultralytics HUB 快速入门页面。
MNIST 与其他图像分类数据集相比如何?
MNIST 比许多现代数据集(如CIFAR-10或 ImageNet等现代数据集更为简单,因此非常适合初学者和快速实验。虽然更复杂的数据集在彩色图像和不同对象类别方面具有更大的挑战性,但MNIST 仍然因其简单、文件小以及在机器学习算法发展史上的重要意义而弥足珍贵。对于更高级的分类任务,可以考虑使用MNIST-MNIST,它保持了相同的结构,但以服装项目而不是数字为特征。