以LeNet为例分析CNN中的参数量
CNN最重要的两点:局部连接和权值共享
局部连接:神经元和上层部分神经元相连接
权值共享:基于局部连接,在每个神经元和上层部分神经元之间权值是共享的,也就是说对于一个神经元,和它相连的所有上层神经元之间的权值都是一致的,这样可以大大减少参数量。对于在feature_map中的理解:对于一个feature_map只需要训练一种kernel。
首先,对于LeNet整体上介绍一下:
- 对于一张大小为32×3232×3232\times32的输入图像
- 经过第一层卷积层C1得到了6张大小为28×2828×2828\times28的feature_map
- 经过下采样层S2,得到6张14×1414×1414\times14的feature_map
- 经过第二层卷积层C3得到16张大小为10×1010×1010\times10的feature_map
- 经过下采样层S4,得到16张5×55×55\times5的feature_map
- 经过第三层卷积层C5得到120张大小为1×11×11\times1的feature_map
- 经过全连接层F6得到84个神经元
接下来逐层分析:
1. C1
- C1中的每个feature_map与输入中的5×55×55\times5邻域相连
- 可训练参数量:(5×5+1)×6=156(5×5+1)×6=156(5\times5 +1)\times6=156(对于每一个feature_map,需要学习5×55×55\times5个权重和111个偏置)
- 连接数:(5×5+1)×28×28×6=122304" role="presentation" style="position: relative;">(5×5+1)×28×28×6=122304(5×5+1)×28×28×6=122304(5\times5 +1)\times28\times28\times6=122304(该层共有28×28×628×28×628\times28 \times6个神经元,每个神经元和上层(5×5+1)(5×5+1)(5\times5 +1)个神经元连接)
2. S2
kernel_size: 2
stepsize: 2
- 下采样过程是将每4个输入相加,乘以一个可训练参数
w
,加上一个偏置b
,再经过一个sigmoid函数计算 - 可训练参数量:(1+1)×6(1+1)×6(1+1)\times6(每个feature_map内的权重和偏置是一致的)
- 连接数:(2×2+1)×14×14×6=5880(2×2+1)×14×14×6=5880(2\times2 +1)\times14\times14\times6=5880
3. C3
这一层与之前的有所不同。C3中的每个特征map是连接到S2中的所有6个或者几个特征map的,表示本层的特征map是上一层提取到的特征map的不同组合。具体的连接方式是:C3的前6个特征图以S2中3个相邻的特征图子集为输入。接下来6个特征图以S2中4个相邻特征图子集为输入。然后的3个以不相邻的4个特征图子集为输入。最后一个将S2中所有特征图为输入。
可训练参数量:(3×25+1)×6+(4×25+1)×6+(4×25+1)×3+(6×25+1)×1=1516(3×25+1)×6+(4×25+1)×6+(4×25+1)×3+(6×25+1)×1=1516(3\times25+1)\times6+(4\times25+1)\times6+(4\times25+1)\times3+(6\times25+1)\times1=1516(以(3×25+1)×6(3×25+1)×6(3\times25+1)\times6为例,一个feature_map将和3个上层5×55×55\times5的邻域相连,相乘后加上一个偏置得到新的feature_map)
- 连接数:10×10×1516=15160010×10×1516=15160010\times10\times1516=151600
4. S4
- 与S2相似
- 可训练参数量:(1+1)∗16=32(1+1)∗16=32(1+1)*16=32
- 连接数:(2×2+1)×5×5×16=2000(2×2+1)×5×5×16=2000(2\times2+1)\times5\times5\times16=2000
以LeNet为例分析CNN中的参数量相关推荐
- 需求用例分析之九:序列图
作者:张克强 作者微博:张克强-敏捷307 序列图,也称时序图.顺序图,英文名Sequence Diagram.在雅各布森用例分析方法中鼓励使用各类图形来表达,但恰恰没有明确提到序列图.而科伯恩 ...
- 需求用例分析之二:级别设置
在<编写有效用例>(阿莱斯特-科伯恩著,以下用科伯恩用例来指代)一书中,赋予了用例不同的级别,科伯恩形象的设定了如下级别:海平面.云朵.风筝.蛤等等. 科伯恩建议用例级别分为多个个目标层次 ...
- CNN中的卷积操作与参数共享
文章目录 (一)局部连接与卷积 1.1图像的局部相关 什么是卷积? 1.3 不同的卷积核(filter) (二)CNN中的参数共享 2.1 图像底层特征的位置无关性 2.2 示例(一维向量) (三)参 ...
- 谈谈CNN中的位置和尺度问题
来自 | 知乎 作者 | 黄飘 链接 | https://zhuanlan.zhihu.com/p/113443895 编辑 | 深度学习这件小事公众号 本文经作者授权转载,作学术交流,请勿二次转载 ...
- CNN中的即插即用小模块汇总
文章目录 前言 1 STN 2. ASPP 3. Non-local 4. SE 5. CBAM 6 DCN v1&v2 7 CoordConv 8 Ghost 9 BlurPool 10 R ...
- CNN中parameters和FLOPs计算
CNN中parameters和FLOPs计算 以AlexNet为例,先注意观察每层编注的通道数的变化. 1. 卷积网络的参数量的计算(parameters) CNN中的parameters分为两种:W ...
- Winograd,GEMM算法综述(CNN中高效卷积实现)(上)
高效卷积实现算法和应用综述(上) 在下一篇文章会介绍Winograd算法的应用,在ICLR,CVPR,FPGA,FCCM等机器学习和FPGA领域的定会上的 ...
- 【深度学习】(8) CNN中的通道注意力机制(SEnet、ECAnet),附Tensorflow完整代码
各位同学好,今天和大家分享一下attention注意力机制在CNN卷积神经网络中的应用,重点介绍三种注意力机制,及其代码复现. 在我之前的神经网络专栏的文章中也使用到过注意力机制,比如在MobileN ...
- DllMain中不当操作导致死锁问题的分析——DllMain中要谨慎写代码(完结篇)
之前几篇文章主要介绍和分析了为什么会在DllMain做出一些不当操作导致死锁的原因.本文将总结以前文章的结论,并介绍些DllMain中还有哪些操作会导致死锁等问题.(转载请指明出于breaksoftw ...
最新文章
- IOS学习笔记(九)之UIAlertView(警告视图)和UIActionSheet(操作表视图)基本概念和使用方法...
- Kudu安装前的建议说明(博主推荐)
- row间距 table 某一行_UITableview的一个section下的各行Row之间可以设置间隔一段距离吗?...
- 调用gensim库训练word2vec词向量
- JDK源码(20)-Thread
- 每个做DBA的孩纸都是上辈子被drop的db
- Web后端学习笔记 Flask(4)视图函数
- SDUST 作业10 Problem D 魔方阵
- U盘病毒 hypertrm.exe 修复
- 永中Office用户使用中常见问题与解答
- FDDB数据集标注文件:椭圆转换矩形
- RADIUS协议解析
- STM32CubeMAX入门篇
- 2019 年各地移动 APT事件总结
- 计算机网络(第七版)谢希仁编著(转载请注明出处---https://www.cnblogs.com/qingl)...
- QQ邮箱代收Gmail邮件,微信第一时间通知Gmail新收邮件
- 椭圆形建筑——逸夫演艺中心
- 第二章 感受Mac 之美-惊艳从Mac 外设开始,一周后的使用感受
- java 下载文件的文件名乱码_详细解决java文件下载文件名乱码问题
- 如何将ipynb文件转换转换为py文件?
热门文章
- U3D游戏运行时资源是如何从AB中加载出来的
- 【转】C# 调用 C++ 数据转换
- C++提高编译与链接速度的资料
- 杂记2017.10.16
- LINQ 查询表达式(C# 编程指南)
- 页面从输入 URL 到页面加载显示完成
- CenterOS6.5 + OneinStack + Moodel3.23
- 将war包发布到测试服的常用命令
- (转)IOS学习笔记-2015-03-29 int、long、long long取值范围
- [Windows Server] 在 Windows Server 2012 上安裝 .NET Framework 3.5 - 摘自网络