首页 > 其他分享 >跟姥爷深度学习5 浅用卷积网络做mnist数字识别

跟姥爷深度学习5 浅用卷积网络做mnist数字识别

时间:2023-05-07 16:33:41浏览次数:31  
标签:数字 卷积 网络 图片 识别 mnist 浅用

一、前言

前面用TensorFlow浅做了一个温度预测,使用的是全连接网络,同时我们还对网上的示例做了调试和修改,使得预测结果还能看。本篇我们更进一步使用CNN(卷积)网络,不过再预测温度就有点大材小用,所以本篇是做手写数字的识别。

手写数字识别是非常经典的分类问题,是入门必备的,门槛又比猫狗识别低很多(猫狗图片太大需要的计算资源太大)。

二、数据准备

手写数字识别由于过于经典,所以TensorFlow已经自带了mnist数据集,所以也不用我们自己去找数据来训练。

下面的简单代码可以自动下载mnist数据集,可以看到这个数据集是由28x28像素的图片组成,训练集有6W个图片,测试集有1W个图片,另外配套有等量的label。这里的x是图片,y是图片的值。

 

将x数据用图片输出,y数据先转为one-hot格式再输出。one-hot是做分类任务必备的,否则网络很难收敛,有兴趣的可以自己试下。

 

我们再将图片的数值输出来看,会发现5这个图片,其实是可以用数字矩阵来数字化的。矩阵中数值为0的地方就是纯黑色,数值为255的地方就是纯白色,10、20、30这种就是渐变的灰色。

三、构建网络

使用下面的代码构建了一个简单的CNN网络,甚至没有使用到激活函数。

与全连接层相比较:

1)CNN是layers.Conv2D,全连接层是layers.Dense

2)参数有很大不同,全连接层没这么多参数要设置,以后再详细介绍参数

  1. Filters 卷积核个数
  2. Kernel_size 卷积核尺寸
  3. Padding 边缘填充设置
  4. Input_shape 输入尺寸限制

3)有一个池化层

4)最后还是需要一个全连接层来得到一维的结果

5)直接输入的是二维数组,而不是一维数组。

四、训练

训练使用的参数与之前没什么区别,训练了100次就收敛的挺不错,而且没有明显的过拟合。

 

五、预测

这里我输出了前5个数字的识别,由于Y是one-hot格式,所以输出结果的格式是每一个“位”都输出一个值,这个值描述的是,图片数值在该位的概率。

以第一个数为例:

[ 0.04167002  0.05634148 -0.03675765 -0.06590495  0.06823181 -0.0774302

   0.08698683  0.93804836 -0.06439071  0.16399711]

其含义是图片数字为0的概率是0.04167002,1的概率是0.05634148,7的概率是0.93804836。所以我们取最高概率位即可,也就是7。

六、回顾

由于有了前面温度预测的基础,这里我们只是简单过一下代码,后面的篇幅再详细说。

标签:数字,卷积,网络,图片,识别,mnist,浅用
From: https://www.cnblogs.com/cation/p/17379491.html

相关文章

  • 一维卷积对一维数据进行特征再提取
    点击查看代码#第一步读取csv文件(循环读取)#第二步将数据转化为tensor形式#第三步创建一个列表将tensor逐个放入列表#第四步写入标签importcsvimportnumpyasnpimporttorchfromtorch.utils.dataimportTensorDatasetimporttorchfromtorch.utils.dat......
  • 通用、可扩展的图卷积神经网络
    访问【WRITE-BUG数字空间】_[内附完整源码和文档]图节点邻近度用于衡量图上节点相对某一给定起始节点的相对距离。根据图学习理论,邻近度较高的节点普遍具有较高的相似性。以节点分类任务为例,由于节点邻近度的高低间接指示了图结构上节点间的相似关系,进而包含了各节点的类别信息,......
  • 卷积神经网络基础
     卷积神经网络是进行图像处理的基础神经网络模型,其包含卷积、池化、激活函数和展平四个主要部分。卷积是一种基本的信号处理操作,在图像处理中也得到广泛应用,基本原理是将一个输入的图像或信号与一个小的卷积核进行卷积运算,得到一个输出的特征图。如下图选取一个3x3的卷积核,对一......
  • 时序预测 | MATLAB实现BO-CNN-LSTM贝叶斯优化卷积神经网络-长短期记忆网络时间序列预
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 分类预测 | MATLAB实现WOA-CNN鲸鱼算法优化卷积神经网络数据分类预测
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • m基于信道差错概率模型仿真对比RS,汉明码以及卷积编译码性能,仿真输出信道差错概率与
    1.算法仿真效果matlab2022a仿真结果如下:        在数字通信系统中,数字通信系统及其相关部分必须满足误码率的最低规范要求。误码率是一个非常重要的指标,它衡量着系统性能的好坏,因此在数字通信领域中经常会遇到误码率的测试问题。误码率[是二进制比特流经过系统传......
  • 经典卷积神经网络结构:LeNet-5、AlexNet、VGG
    LeNet-5LeNet-5模型是专门为手写数字识别而设计的经典卷积神经网络。从上图可以看出,LeNet-5总共由输入层、卷积层、池化层、卷积层、池化层、全连接层、全连接层、输出层组成。1、输入层:一张32*32的灰度图像,只有一个颜色通道,深度为1。2、卷积层:将输入与6个高为5,宽为5,深度为1......
  • 深度学习网络fine-tune原理研究 - 以卷积神经网络为例
    一、什么是预训练模型(pre-trainedmodel)预训练模型就是已经用数据集训练好了的模型,这里的数据集一般指大型数据集。比如VGG16/19ResnetImagenetCOCO正常情况下,在图像识别任务中常用的VGG16/19等网络是他人调试好的优秀网络,我们无需再修改其网络结构。参考资料:https://z......
  • 机器学习、神经网络与卷积神经网络 三者的关系
    机器学习和神经网络都是人工智能(AI)领域中的重要概念。机器学习是指让计算机通过自我学习改善性能的一种方法。通常使用大量的数据训练模型,并持续对模型进行调整和改进,从而使其能够有效地处理新的数据并提供准确的预测。神经网络则是一种模拟人类神经系统的计算模型,可以通过多层......
  • 深度学习--初识卷积神经网络
    深度学习--初识卷积神经网络1.LeNet-580年代,正确率达到99.2%5/6层输入层:32*32第一层:卷积层6@28*28第二层:下采样层6@14*14第三层:卷积层16@10*10第四层:下采样层16@5*5第五层:全连接层120第六层:全连接层84输出层:高斯连接层102.AlexNet2012年,8层网络结构5个卷......