MNIST 数据集是什么?如何下载mnist手写数字数据集?
发布于 作者:苏南大叔 来源:程序如此灵动~

苏南大叔的博客里面,以前描述的数据集都是文本类型的,但是本文描述的数据集是很多的图片,手写数字的图片数据集。它的名字是MNIST
,它包含手写数字(0-9)
的灰度图像,每张图像大小为28x28
像素。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10
,python@3.12.9
。MNIST
是经典的图像【分类】数据集。注意是数据集属性是“分类”!
MNIST 数据集
MNIST
数据集,全称是:Modified National Institute of Standards and Technology
。数据集是一个经典的机器学习数据集,广泛用于图像分类和计算机视觉领域的研究。它包含手写数字(0-9)
的灰度图像,每张图像大小为28x28
像素。
MNIST 数据集由以下部分组成:
- 训练集:6万张(待议)手写数字图像,用于训练模型。
- 测试集:1万张(待议)手写数字图像,用于评估模型性能。
- 标签:每张图像对应一个数字标签(0-9),表示图像中的数字。
每张图像是一个28x28
的矩阵,像素值范围为0
到255
,其中0
表示黑色,255
表示白色。
是什么样的图片
下载到的数据集多多少少都是被加工过的,无法直接查看原始图片。想要查看的话,还需要进行各种转换。目前就不是苏南大叔的研究范围了。先给出最直接直观感受的图片集合:
手工获取渠道
虽然MNIST
数据集的内容基本一致,但不同来源可能存在以下差异:
- 文件格式:官方提供的是二进制格式,而
tensorflow
和keras
提供的是预处理后的 NumPy 数组。 - 预处理:某些来源可能对数据进行了归一化或其他预处理操作。
- 扩展版本:一些平台(如 Kaggle)可能提供 MNIST 的扩展版本,如
Fashion-MNIST
或EMNIST
。
MNIST
数据集可以从以下几个地方获取:
- http://yann.lecun.com/exdb/mnist/【最原始版本出处,但是目前看不到】
- https://www.kaggle.com/datasets/hojjatk/mnist-dataset/data
- https://openml.org/search?type=data&status=active&id=554
- https://github.com/geektutu/tensorflow-tutorial-samples/tree/master/mnist/data_set
框架自动下载渠道
【1】在tensorflow
(keras
)等机器学习框架里面,也有该数据集的下载方式。
from tensorflow.keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
【2】sklearn
from sklearn.datasets import fetch_openml
mnist = fetch_openml('mnist_784', version=1, as_frame=False)
X, y = mnist.data, mnist.target
# 打印数据集信息
print(f"数据集大小: {X.shape}")
print(f"标签大小: {y.shape}")
【3】pytorch
import torchvision
torchvision.datasets.MNIST(root='./data', download=True)
总结
MNIST
数据集是机器学习领域的重要基准数据集,适合初学者和研究者使用。根据需求选择合适的来源和格式,可以更高效地开展实验和研究。
更多苏南大叔的机器学习经验文字,请点击:


