MNIST数据集导出
文章目录
1、 MNIST数据集介绍
MNIST数据集是一个包含手写数字图像的大型数据库,被广泛应用于训练各种图像处理系统和机器学习模型。
来源
MNIST数据集由美国国家标准与技术研究所(National Institute of Standards and Technology,NIST)发起整理,一共统计了来自250个不同的人手写数字图片。其中50%是高中生,50%来自人口普查局的工作人员。
数据信息
MNIST数据集包含70000张图像,其中60000张用于训练,10000张用于测试。每一张图像都是28×28像素的灰度图像,代表一个手写数字。这种格式使得机器学习模型更容易识别和分类这些数字,并且能够更好地捕捉到数字的细节和纹理信息。
应用场景
MNIST数据集被广泛应用于各种图像处理和机器学习的任务中,特别是手写数字识别。它已经成为计算机视觉和深度学习领域中的一个经典数据集。许多关于神经网络的教程都会使用MNIST数据集作为例子来解释神经网络的工作原理。此外,许多研究者会使用MNIST数据集来比较和评估他们的算法和模型,并与其他研究者的结果进行比较。
评估指标
在手写数字识别任务中,常用的评估指标包括准确率、精确率、召回率和F1分数等。这些指标用于评估模型的性能,并帮助我们了解模型的优缺点。
类别说明
MNIST数据集中的每个图像都属于一个特定的类别,即手写数字。数据集中的数字类别是从0到9的整数,总共有10个不同的类别。每个类别中包含了大量的图像,以便训练模型进行分类。在训练过程中,模型需要学会将每个图像归类到相应的数字类别中,并尽可能准确地预测出数字的值。在测试过程中,模型需要对其从未见过的图像进行分类和预测,以评估其性能和准确性。
2、 MNIST数据集下载
2.1 使用Pytorch自带的MNIST数据集
MNIST作为一个经典数据集,Pytorch已经在datasets里自带了该数据集,可以通过pytorch数据集自动下载该数据集。
from torchvision import datasets, transforms
import matplotlib.pyplot as plt
# 下载MNIST数据集
transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])
trainset = datasets.MNIST('./data/mnist', download=True, train=True, transform=transform)
testset = datasets.MNIST('./data/mnist', download=True, train=False, transform=transform)
# 可视化数据集图像
n = 10 # 展示10张图像
plt.figure(figsize=(10, 5))
for i in range(n):
images, labels = trainset[i]
plt.subplot(2, 5, i+1)
plt.imshow(images[0].view(28, 28), cmap='gray')
plt.title(f'Label: {
labels}')
plt.show()
该脚本会在data/mnist/MNIST/raw路径下下载MNIST数据集,并自动解压,生成4个二进制文件。
dataset_uncompressed/
├── t10k-images-idx3-ubyte #测试集图像数据,7840016字节
├── t10k-labels-idx1-ubyte #测试集标签数据,10008字节
├── train-images-idx3-ubyte #训练集图像数据,47040016