MNIST 数据集#
MNIST(Modified National Institute of Standards and Technology)数据集是一个图像分类基准,包含 70,000 张 28x28 的手写数字灰度图像,跨越 10 个类别(数字 0 到 9)。它预先划分了 60,000 张训练图像和 10,000 张测试图像,长期以来一直用作评估机器学习和计算机视觉算法的标准基准。对于更难的服装图像同类数据集,请参阅相关的 Fashion-MNIST 数据集;对于彩色图像,请参阅 CIFAR-10。
主要特性#
- MNIST 包含 60,000 张手写数字训练图像和 10,000 张测试图像,总计 70,000 张。
- 每张图像都是单个数字的 28x28 灰度图片,经过归一化和抗锯齿处理,放入固定的 28x28 边界框中。
- 这 10 个类别涵盖了 0-9 的数字,且每类的图像数量大致均衡。
- 它自带预设的训练/测试集划分,因此无需进行手动或自动划分。
- MNIST 是图像分类和深度学习研究的标准基准。
数据集结构#
MNIST 自带官方预设的划分,因此无需任何自动或手动分区:
- 类别:10(手写数字 0–9)
- 总图像数: 70,000 (28x28 灰度)
- 训练集:60,000 张图像
- 测试集:10,000 张图像
MNIST 没有单独的验证文件夹,因此 Ultralytics 默认在训练期间使用 10,000 张图像的测试集作为验证集。
每张图像都标有对应的数字(0–9),这使 MNIST 成为非常适合分类任务的监督学习数据集。
应用#
MNIST 被广泛用于训练和评估图像分类模型,从经典的卷积神经网络(CNN)和支持向量机(SVM)到现代深度架构。其较小的灰度图像和 10 个数字类别使其成为用于算法比较和计算机视觉实验的快速、可重复的基准。
一些常见的应用包括:
- 基准测试新的分类算法
- 用于教授机器学习概念的教育目的
- 原型设计图像识别系统
- 测试模型优化技术
用法#
在 MNIST 上训练一个 YOLO 分类模型,图像大小为 28,训练 100 个轮次。数据集在首次使用时会自动下载并缓存;如果你希望完全控制预处理,也可以从 MNIST 数据库获取原始 gzip 压缩包。有关可用参数的完整列表,请参阅训练页面和图像分类任务指南。
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-cls.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="mnist", epochs=100, imgsz=28)Ultralytics 还提供了 data="mnist160",这是一个包含来自训练集和测试集的每个数字(0–9)前八张图像的 160 张图像切片。它镜像了 MNIST 目录结构,因此你可以在不更改任何其他参数的情况下切换数据集——非常适合 CI 流水线或在提交完整 70,000 张图像的数据集之前进行健全性检查。
yolo classify train data=mnist160 model=yolo26n-cls.pt epochs=5 imgsz=28样本图像和标注#
来自 MNIST 数据集的示例图像:

这些样本展示了该数据集在 10 个数字类别中捕捉到的各种书写风格。
引用与致谢#
如果你在研究或开发工作中使用了 MNIST 数据集,请引用以下论文:
@article{lecun2010mnist,
title={MNIST handwritten digit database},
author={LeCun, Yann and Cortes, Corinna and Burges, CJ},
journal={ATT Labs [Online]},
volume={2},
year={2010}
}我们要感谢 Yann LeCun、Corinna Cortes 和 Christopher J.C. Burges 创建并维护了 MNIST 数据集,为机器学习和计算机视觉研究社区提供了宝贵的资源。有关 MNIST 数据集及其创建者的更多信息,请访问 MNIST 数据集网站。
常见问题解答#
MNIST 有 10 个类别(手写数字 0 到 9),总共 70,000 张灰度图像,每张大小为 28x28 像素。它自带预设的 60,000 张训练图像和 10,000 张测试图像,每个数字的样本数量大致相等。
要在 MNIST 上训练 Ultralytics YOLO 模型,请使用以下代码片段。数据集在首次使用时会自动下载。有关可用训练参数的详细列表,请参考训练页面。
训练示例from ultralytics import YOLO # Load a model model = YOLO("yolo26n-cls.pt") # load a pretrained model (recommended for training) # Train the model results = model.train(data="mnist", epochs=100, imgsz=28)MNIST 自带预设的 60,000 张训练图像和 10,000 张测试图像划分。与 Ultralytics 会自动拆分的基于文件夹的分类数据集不同,MNIST 的官方分区按原样使用,测试集在训练期间默认作为验证集。
MNIST 数据集仅包含手写数字,而扩展 MNIST (EMNIST) 数据集则包含了数字以及大写和小写字母。EMNIST 是作为 MNIST 的继任者开发的,并使用相同的 28x28 像素格式,使其与专为原始 MNIST 设计的工具和模型兼容。这种更广泛的字符范围使得 EMNIST 可用于更多种类的机器学习应用。
是的。Ultralytics Platform 允许你上传数据集、训练图像分类模型并在无需大量编码的情况下部署它们。这是在云端运行 MNIST 实验的便捷方式——有关相关选项,请参阅分类数据集概述。
MNIST 比 CIFAR-10 或 ImageNet 等许多现代数据集更简单,非常适合初学者和快速实验。虽然更复杂的数据集在彩色图像和多样化对象类别方面带来了更大的挑战,但 MNIST 凭借其简单性、小文件大小以及在机器学习算法发展中的历史意义,依然具有极高的价值。有关具有相同结构且更具挑战性的替代方案,请参阅 Fashion-MNIST,它以衣物替代了数字。