深度学习识别数字图像还不会用MNIST?教你一招鲜

目录

一、什么是MNIST数据集?

1、定义:

2、特点和用途

1).图像数据

2).标签:

3).标准化:

4).广泛应用:

5).教育用途:

3、意义:

二、MINST在pytorch中的应用案例

1.创建数据集

1)代码

2)这段代码的运行结果:

2、用matplotlib画出MNSIT图像

1).代码

2)代码结果:

三、总结


一、什么是MNIST数据集?

1、定义:

MNIST(Modified National Institute of Standards and Technology database)是一个广泛用于机器学习和深度学习的经典图像数据集。它包含了一系列手写数字的灰度图像,每个图像都是28x28像素大小。MNIST数据集通常用于图像分类任务,其中目标是识别每张图像上写的是哪个数字,范围从0到9。

2、特点和用途

以下是MNIST数据集的主要特点和用途:

1).图像数据

MNIST包含了70000张手写数字图像,其中60000张用于训练,10000张用于测试。这些图像都是单色的(灰度图像),每个像素的灰度值在0到255之间。


2).标签:

每张图像都附带一个标签,表示该图像上写的是哪个数字。这些标签是数字0到9之间的整数。


3).标准化:

 通常,MNIST数据集中的图像已经被标准化,像素值被缩放到0到1之间或-1到1之间,以便更容易用于机器学习模型的训练。

4).广泛应用:

MNIST数据集被广泛用于测试和比较不同机器学习算法和深度学习模型的性能。它常常被视为图像分类领域的"Hello World",因为它是一个相对简单的问题,但仍然具有挑战性,可以用来验证新算法的有效性。

5).教育用途:

由于其简单性和可理解性,MNIST也经常用于教育目的,帮助初学者学习机器学习和深度学习的基本概念。

3、意义:

MNIST数据集虽然在图像分类任务上相对简单,但它为许多机器学习和深度学习研究提供了一个重要的起点,并启发了许多关于卷积神经网络(CNN)等模型的发展。随着时间的推移,更复杂的图像数据集和任务也得到了广泛应用,但MNIST仍然是一个重要的基准数据集。

二、MINST在pytorch中的应用案例

1.创建数据集

1)代码

import torch #导入PyTorch库,这是一个用于构建深度学习模型的流行框架。
from torchvision import datasets
#从PyTorch的torchvision模块中导入datasets,这个模块提供了许多常见的计算机视觉数据集。
from torchvision.transforms import ToTensor
#从torchvision.transforms模块中导入ToTensor,这个变换用于将图像数据转换为PyTorch张量的格式。
training_data = datasets.MNIST(#使用datasets.MNIST构造函数创建MNIST数据集对象。
    root='data',     # 指定数据集的根目录,数据将会下载到这个目录下。
    train=True,      # 表示这是用于训练的数据集。
    download=True,    # 如果数据集不存在,将自动下载。
    transform=ToTensor(), #将图像数据转换为PyTorch张量的格式。
)
# datasets.MNIST的参数:
#   root(string): 表示数据集的根目录,
#   train(bool, optional): 如果为True,则从training.pt创建数据集,否则从test.pt创建数据集
#   download(bool, optional): 如果为True,则从internet下载数据集并将其放入根目录。如果数据集已下载,则不会再次下载
#   transform(callable, optional): 接收PIL图片并返回转换后版本图片的转换函数
testing_data = datasets.MNIST(
    root='data',
    train=False,
    download=True,
    transform=ToTensor()
)

2)这段代码的运行结果:

2、用matplotlib画出MNSIT图像

1).代码

import matplotlib.pyplot as plt
#导入Matplotlib库:导入用于数据可视化的Matplotlib库。
figure=plt.figure()
#创建一个Matplotlib图像对象:使用plt.figure()创建一个空白的Matplotlib图像对象,后续将在这个图像上添加子图。
for i in range(9):#使用for循环可视化前9张训练集图像:
    img,label=training_data[i]
    #从training_data数据集中获取第i个图像和对应的标签。
    figure.add_subplot(3,3,i+1)
    #在Matplotlib图像上添加一个子图,3行3列,第i+1个子图。
    plt.title(label)
    #设置子图标题为图像的标签(数字0到9)。
    plt.axis('off')
    #关闭子图的坐标轴。
    plt.imshow(img.squeeze(),cmap='gray')
    #显示图像,img.squeeze()用于去除可能存在的单维度,
    # cmap='gray'指定使用灰度颜色映射。
plt.show()
#显示Matplotlib图像,它会展示出9张训练集图像的子图,每个子图上显示了图像的标签(对应的手写数字)。

2)代码结果:

三、总结

这段代码用于加载MNIST数据集的一部分,将其可视化,并展示前9张训练图像以及它们对应的标签。这对于初步了解数据集和确保数据加载正确非常有用。如果你运行这段代码,将会看到一个包含9个子图的图像,每个子图都包含一张手写数字图像以及其标签。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值