机器学习篇——MNIST手写数字识别

本文介绍了使用深度学习进行MNIST手写数字识别的过程,包括数据集解读、获取、划分,模型构建、训练、评估及应用。通过模型实现了一个完整的神经元功能,实现了从独热码到十进制的转化,并进行了结果可视化。
摘要由CSDN通过智能技术生成

MNIST手写数字识别是调教一个完整的神经元来进行分类模型的构建应用,为什么说是一个完整神经元呢?因为它具备生物学上一个神经元的特征,除了有输入输出函数,还有一个激活函数,对应着生物学上神经元的阈值。

MNIST数据集的解读以及导入

这玩意说白了就是一个神经元处理分类问题(使用softmax分类,简单来说就是将概率转化为0-1区间的一个数字)。
在这里插入图片描述

数据获取

MNIST手写数据集来自美国国家标准与技术研究所,由250个志愿者手写数字构成。
其中训练集55000,验证集5000,测试集10000。数据集可以在http://yann.lecun.com/exdb/mnist/获取。

读取数据集

# 导入相关库
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data
mnist=input_data.read_data_sets("D:/MNIST",one_hot=True)

在这里插入图片描述

# 数据集的形状
print("训练集 train 数量:",mnist.train.num_examples,
     ",验证集 validation 数量:",mnist.validation.num_examples,
     ",测试集 test 数量:",mnist.test.num_examples)

print("trains shape:",mnist.train.images.shape,
     ",labels shape:",mnist.train.labels.shape)


# 一副image的数据
len(mnist.train.images[0])
mnist.train.images[0].shape

在这里插入图片描述

# 重塑image数据
mnist.train.images[0].reshape(28,28)
# 可视化 image
import matplotlib.pyplot as plt
def plot_image(image):
    plt.imshow(image.reshape(28,28),cmap="binary")
    plt.show()
    

# 可视化image图片
plot_image(mnist.train.images[6666])

在这里插入图片描述

# 理解标签
mnist.train.labels[666] # 独热编码是一种稀疏的向量,其中只有一个元素设为1,其他所有元素均设为0.
# 常用于表示用于有限个可能值的字符串后者标识符

  • 22
    点赞
  • 194
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值