在上篇中,对卷积神经网络的卷积层以及池化层模块进行了简单的介绍,接下来将对卷积神经网络的整个运作流程进行分析,以便对CNN有个总体上的认知和掌握。

如下图,卷积神经网络要完成对图片数字的识别任务。网络的输入是数字为7的RGB图片,大小为32×32×3,其中32×32为图片的像素大小,3表示图片的红、绿、蓝三个通道。图中示例的卷积神经网络共有7层(不包括输入层):第一层卷积层Conv 1,第二层池化层Pool 2,第三层卷积层Conv 3,第四层池化层Pool 4,第五层全连接层FC 5,第六层全连接层FC 6,第7层全连接层也是网络的输出层FC 7。

需要说明的是,图示网络模型只是卷积神经网络的一种结构,并不是唯一结构,卷积层、池化层、全连接层的数量可根据实际情况设置。

(1)Conv 1

  一个5×5×3的卷积核和表示图片的32×32×3的数据矩阵卷积得到一个28×28×1的feature map,如下图所示。

  一个卷积核卷积得到一个feature map,当有6个卷积核时,卷积得到的特征图大小变为28×28×6。

  参数量:一个卷积核权值参数个数5×5×3=75,偏置参数1个,75+1=76个。一共有6个卷积核,故该层待训练总参数个数:(5×5×3+1)×6=456。

  在该层中,表示图片所有像素点颜色深浅的32×32×3的三维数据矩阵经过和6个5×5×3的卷积核进行卷积后得到28×28×6的特征图,再经过非线性函数激活即得到Conv 1层的输出。输出特征图的通道数和卷积核的数量一样。

(2)Pool 2

  汇聚窗口大小为2×2,步幅为2,经过最大池化后,得到14×14×6的特征图。输入特征图大小为28×28×6,通道数是6,池化层不会改变特征图的通道数,即输出特征图的通道数和输入特征图的通道数一样。池化层没有待训练参数。池化层未使用非线性激活函数。

(3)Conv 3

  卷积核大小5×5×6,数量是16,步幅s=1,输出特征图大小为(14-5+1)×(14-5+1)×16=10×10×16。输入特征图经过卷积操作还得经过非线性函数的激活后才能得到Conv 3层的输出。

  参数量:(5×5×6+1)×16=2416。

(4)Pool 4

  汇聚窗口大小为2×2,步幅为2,经过最大池化后,得到5×5×16的特征图。要注意的是,当前层的输出不是一维向量,是无法直接连接下一层的全连接层的。因此,经过池化得到的输出特征图还要经过flatten操作变为400×1的向量后,才能作为全连接层的输入。

(5)FC 5

     该层有120个神经元。

  参数量:400×120+120=48120。

(6)FC 6

  该层有84个神经元。

  参数量:120×84+84=10164。

(7)FC 7(Output)

  网络的输出层,有10个神经元,使用SoftMax激活函数,神经元节点输出值对应10个数字的概率大小。

  参数量:84×10+10=850。

当网络得到10个数字的概率以后,取概率最大的那个数字即为本次神经网络的图片数字识别结果啦~

CNN-卷积神经网络简单入门(2)的更多相关文章

  1. Deep Learning模型之:CNN卷积神经网络(一)深度解析CNN

    http://m.blog.csdn.net/blog/wu010555688/24487301 本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep le ...

  2. [转]Theano下用CNN(卷积神经网络)做车牌中文字符OCR

    Theano下用CNN(卷积神经网络)做车牌中文字符OCR 原文地址:http://m.blog.csdn.net/article/details?id=50989742 之前时间一直在看 Micha ...

  3. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)

    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文, ...

  4. CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)的内部网络结构有什么区别?

    https://www.zhihu.com/question/34681168 CNN(卷积神经网络).RNN(循环神经网络).DNN(深度神经网络)的内部网络结构有什么区别?修改 CNN(卷积神经网 ...

  5. CNN(卷积神经网络)、RNN(循环神经网络)、DNN,LSTM

    http://cs231n.github.io/neural-networks-1 https://arxiv.org/pdf/1603.07285.pdf https://adeshpande3.g ...

  6. cnn(卷积神经网络)比较系统的讲解

    本文整理了网上几位大牛的博客,详细地讲解了CNN的基础结构与核心思想,欢迎交流. [1]Deep learning简介 [2]Deep Learning训练过程 [3]Deep Learning模型之 ...

  7. Keras(四)CNN 卷积神经网络 RNN 循环神经网络 原理及实例

    CNN 卷积神经网络 卷积 池化 https://www.cnblogs.com/peng8098/p/nlp_16.html 中有介绍 以数据集MNIST构建一个卷积神经网路 from keras. ...

  8. TensorFlow——CNN卷积神经网络处理Mnist数据集

    CNN卷积神经网络处理Mnist数据集 CNN模型结构: 输入层:Mnist数据集(28*28) 第一层卷积:感受视野5*5,步长为1,卷积核:32个 第一层池化:池化视野2*2,步长为2 第二层卷积 ...

  9. 3层-CNN卷积神经网络预测MNIST数字

    3层-CNN卷积神经网络预测MNIST数字 本文创建一个简单的三层卷积网络来预测 MNIST 数字.这个深层网络由两个带有 ReLU 和 maxpool 的卷积层以及两个全连接层组成. MNIST 由 ...

  10. 人工智能——CNN卷积神经网络项目之猫狗分类

    首先先导入所需要的库 import sys from matplotlib import pyplot from tensorflow.keras.utils import to_categorica ...

随机推荐

  1. Docker&K8S学习笔记(一)—— Docker安装

    最近一年在工作上经常使用Docker与K8S,除了利用其打镜像,部署服务外,还基于Docker与K8S开发了一套CICD流水线平台,为了加深相关知识点的理解,所以从今天开始会定期更新学习笔记,本套学习 ...

  2. .Net Core&Agile Config配置中心

    当服务逐渐的增多,对各服务的配置管理愈加重要,轻量级的配置中心,入手或是搭建都简单许多,基于.net core开发的轻量级配置中心AgileConfig,功能强大,上手简单. https://gith ...

  3. DEV GridControl小结。。

    [转]DEV GridControl小结.. 来自:http://www.cnblogs.com/yuerdongni/archive/2012/09/08/2676753.html   1. 如何解 ...

  4. 从头造轮子:python3 asyncio 之 run(2)

    前言 书接上文,本文造第二个轮子,也是asyncio包里面非常常用的一个函数run 一.知识准备 ● 相对于run_until_complete,改动并不大,就是将入口函数重新封装了一下,基础知识主要 ...

  5. ADAM : A METHOD FOR STOCHASTIC OPTIMIZATION

    目录 概 主要内容 算法 选择合适的参数 一些别的优化算法 AdaMax 理论 代码 Kingma D P, Ba J. Adam: A Method for Stochastic Optimizat ...

  6. Adaptive gradient descent without descent

    目录 概 主要内容 算法1 AdGD 定理1 ADGD-L 算法2 定理2 算法3 ADGD-accel 算法4 Adaptive SGD 定理4 代码 Malitsky Y, Mishchenko ...

  7. 如何优雅的设置UI库组件的属性?

    UI库提供了很多组件,组件又带有很多属性,有一些常用属性我们可以记住并且手撸,但是有些不常用的属性,或者需要设置多个属性,这样的情况下写起来就麻烦了,有时候还要打开帮助文档看看属性是怎么设定的,需要设 ...

  8. sqlsugar freesql hisql 三个ORM框架性能测试对比

    hisql与目前比较流行的ORM框架性能测试对比 总体测试结果 插入记录数 hisql(耗时) sqlsugar(耗时) freesql(耗时) 5条 0.0107秒 0.0312秒 0.02675秒 ...

  9. Python 使用timeit模块计算时间复杂度时系统报“invalid syntax”错误

    最近在看算法相关的文档 在时间复杂度环节 遇到一个实例: 导入timeit模块后,通过Timer定时器计算两种不同处理方法的时间复杂度 错误代码及报错如下图所示: 仔细查阅 发现from__main_ ...

  10. Gitlab如何进行备份恢复与迁移?

    https://blog.csdn.net/ouyang_peng/article/details/77070977 1.Gitlab 创建备份 1.1 创建备份文件 首先我们得把老服务器上的Gitl ...