[DNN]CNN的结构分析和参数量计算

2023-11-13


资料来源:
LeNet5分析
CNN参数计算

主要想要自己总结一下一个神经网络的参数如何计算。

1.概述

  • DNN的参数量:与神经元的个数无关,只与卷积核的大小及Feature Map的个数相关。决定了最终输出模型的大小(空间复杂度)
  • DNN的连接次数:只与神经元的个数相关,神经元的个数也就是特征图的大小决定了模型推理时的计算复杂度。也就是代码中常见的FLOPS数。

1.1参数量计算方法

(基础)激活层的参数计算
一个神经元的激活层,如果输入为m个向量,那么涉及到的参数为输入向量的权值wi,偏置值bk,参数数量为m+1。
在这里插入图片描述
在这里插入图片描述

(1)卷积层计算方法:
卷积的计算过程包括:卷积核与图像对应区域求内积之后,加上一个偏置bias后送入激活函数。

因此,卷积涉及到的参数包括:卷积核的参数,偏置bias。
在这里插入图片描述
(2)全连接层的参数计算方法:
全连接层的计算过程包括:输入的信号值与输出的m个神经元权值相乘后相加,然后再加上偏置bias,最后送入激活函数。得到输出信号值。

所以全连接层的参数涉及:神经元的权值和偏置bias。
在这里插入图片描述
(3)池化层计算方法
池化层就是pooling后下采样,本身并没有参数,但是下采样之后,需要乘上权值后加一个偏置后进入激活层。因此引入了2个参数。
在这里插入图片描述
(4)RBF连接
与一般的全连接的区别在于,径向基神经网络没有偏置量。假设输入为m,输出为n,参数量就是m*n。
在这里插入图片描述
在这里插入图片描述

1.2神经元数量计算

对于卷积层来说,神经元的数量只与卷积层输出的feature map的尺寸有关,如果输出的feature map为10x10x1,那么该卷积层的神经元个数就是100。
在这里插入图片描述

1.3 连接数量计算/FLPOS

连接指的是参数与参数之间的交互次数。也就决定了模型推理1次所需要的算力。

例如LeNet5的第1个卷积层。
在这里插入图片描述

连接次数:(5*5+1)*6   *(28*28)=122,304

卷积操作的可训练参数是(5*5+1)*6

左边是卷积的可训练参数,右边是C1层每个feature map的神经元个数,左右对应关系是1对28*28,相乘即为连接数。(每个链接对应1次计算,由wa+b可知,每个参数参与1次计算,所以1个单位的偏置b也算进去)

2.LeNet5结构和参数量计算

2.1 结构

在这里插入图片描述

  • 输入图片:32*32
  • 卷积层C1:size=5*5,channel=(6,6,6,6,6,6),num=6,stride=1,padding=0
  • 下采样层S2:2*2,stride=2
  • 卷积层C3:size=5*5,channel=(3,…,3,4,…,4,6),num=16,stride=1,padding=0
  • 下采样层S4:2*2,stride=2
  • 卷积层C5:size=5*5,channel=(16,16,16,…16),num=120,stride=1,padding=0
  • 全连接层F6:input=120,output=84
  • 全连接层F7(output,径向基神经元):input=84,output=10

2.2 对应的参数量计算:

C1: (5x5+1)x6=156	

每个卷积运算加上激活函数需要5x5+1,一共6个卷积核,所以(5x5+1)x6

S2:6x2=12

每一个图对应一个权值和一个偏置bias,一共6个,所以参数是6x2=12.

C3: (5x5x3+1)x6+(5x5x4+1)x6+ (5x5x4+1)x3+(5x5x6+1)x1=456+606+303+152=1516 

这里有16个卷积核,通道数不仅相同,如表所示。
表1:C3的卷积对应关系
表1

S4:2x16=32

每一个图对应一个权值和一个偏置bias,一共16个,所以参数是32。

C5:(5x5x16+1)x120=48120

每一个卷积核都有16个channel,再加上一个偏置。共计120个卷积核。

F6:(120+1)x84=10164

对于每一个输出值而言,120个权重和1个偏置,输出一共84个输出值。

F7:84x10=840

最后一个输出层,由于是径向基神经元,所以只有输入84个权重,一共10个输出值。84*10.

共计参数量:156+12+1516+32+48120+10164+840=60840。
注意到全连接层的参数量占用总参数量的97.2%。

2.3 连接数量/FLOPS

LeNet5的第一个卷积层。

C1:156x28x28

卷积操作的参数一共有(5x5+1)*6次,输出的feature map尺寸是28x28。乘起来就是总的连接数量。

S2: (2x2+1)x6x14x14

一次池化操作需要对原图像的2x2个像素进行操作,输出的feature map尺寸是14x14

C3:1516x10x10=151600
S4:(2x2+1)x16x5x5=2000
C5:48120*1*1=48120
F6:10164*1*1=10164
out:84*10=840
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[DNN]CNN的结构分析和参数量计算 的相关文章

  • RK3568-GPIO控制

    RK3568 GPIO控制 1 Sysfs接口 实现逻辑 芯片的GPIO由芯片的GPIO控制器来管理 GPIO控制器封装在芯片内部 控制器的驱动芯片厂家已经写好了 RK3568有五组GPIO控制器 每组管理32个引脚 对应 dev下的gpi

随机推荐

  • SQLHelper通用类执行一条返回结果集的SqlCommand命令 使用方法

    SQLHelper cs 通用类 执行一条返回结果集的SqlCommand命令 通过专用的连接字符串 使用参数数组提供参数 使用示例 SqlDataReader r ExecuteReader connString CommandType
  • PCL只获取点云中一个点的法向量之computePointNormal

    PCL只获取点云中一个点的法向量computePointNormal 最近用点云图做应用的时候想只获取点云中一个点的法向量 然后就在网络上搜索 搜索了半天只能找到一些看似成功 实则语焉不详的文章 甚至是纯照搬 抄袭的文章 所以写下这篇文章供
  • 实体化视图

    Oracle 的实体化视图是包括一个查询结果的数据库对像 它是远程数据的本地副本 或者用来 生成基于数据表求和的汇总表 实体化视图存储基于远程表的数据 也可以称为快照 实体化视图可用于预先计算并保存表连接或聚集等耗时较多的操作的结果 这样
  • OLED透明屏曲面技术:创新突破引领显示行业未来

    OLED透明屏曲面技术作为一项重要的显示技术创新 正在成为显示行业的焦点 其引人注目的优势和广泛应用领域使其备受关注 本文将详细介绍OLED透明屏曲面技术的优势 应用领域以及市场前景 同时展望其未来的发展趋势 以期带给读者全面而深入的了解
  • intellij idea 打可运行scala jar 包的两种方式

    今天折腾了一天 研究 idea 打可运行scala 代码的 jar 包 有些心得记录下来 供大家参考 希望能帮助到一些同事 此前在网络上有一些关于打jar 包的资料 大都是一些转载 或者介绍的不是很详细 此篇是详细介绍打包过程以及思考推导方
  • 扩展应用功能的无限可能——UniApp生态系统中的插件探索(二)

    文章目录 自定义插件的开发与应用案例 自定义插件的需求分析 第一部分 引言和背景 第二部分 确定插件的目标和范围 第三部分 定义插件的功能和特性 第四部分 界面设计和交互流程 第五部分 技术实现和开发计划 第六部分 测试和质量保证 第七部分
  • 教你写只爬虫

    在从零开始教大家写个小爬虫前先说一说爬虫是什么东西吧 百度就不百度了 想把我所认为的爬虫给大家说一下吧 以前学爬虫之前觉得爬虫感觉好牛逼的样子 认为这东西和骇客差不多似的 偷取别人信息 其实学完之后慢慢思考下 我觉得爬虫就是一段脚本程序 作
  • 输出3行,第一行打印一遍输入的数,第二行打印两遍,第三行打印三遍。 第二行和第三行,用空格分隔同一行的数字。 实数用"6.2f"格式输出。

    import java util Scanner public class Main public static void main String args Scanner scanner new Scanner System in dou
  • 【综合题】【数据库原理】

    文章目录 一 属性集合的闭包计算 二 确定候选码并进行范式级别的判断 2 1 确定候选码讲解 2 2 范式级别的判断讲解 三 根据要求写SQL语句 四 关系代数运算和画E R图并进行关系模式转换 4 1 关系代数运算 4 2 E R图向关系
  • 最新最全论文合集——基于统计学习的关系抽取

    AMiner平台 https www aminer cn 由清华大学计算机系研发 拥有我国完全自主知识产权 平台包含了超过2 3亿学术论文 专利和1 36亿学者的科技图谱 提供学者评价 专家发现 智能指派 学术地图等科技情报专业化服务 系统
  • compare4密钥过期解决方案

    删除C Users 用户名 AppData Roaming Scooter Software Beyond Compare 4下的所有文件 重启Beyond Compare 4即可 注意 用户名下的AppData文件夹有可能会被隐藏起来 其
  • 新手看过来----讨厌的运算符

    在计算机的世界里 虽然有很多数学的影子 但在计算公式转换为计算机语言时 很多表达方式并 不一致 这导致新手们初期不习惯 很容易用错 需要一个记忆的过程 就像学习英文 主谓宾定状补的先后顺序于中文是不一致的 在翻译句子时很容易产生中式英语 本
  • 【leetcode】1052. 爱生气的书店老板

    题目 解法 class Solution def maxSatisfied self customers grumpy X gt int 固定窗口最大和 param customers param grumpy param X return
  • hibernate查询方式

    1 OID 主键 查询 使用get方法 Customer customer session get Customer class 1l 使用load方法 Customer customer session load Customer cla
  • level2买股技巧_同花顺Level-2教你看清个股真实交易数据

    您可能感兴趣的话题 同花顺 核心提示 近几天 笔者在对比普通行情软件和同花顺Level 2行情软件在成交明细上的区别 发现这里面的学问非常大 近几天 笔者在对比普通行情软件和同花顺Level 2行情软件在成交明细上的区别 发现这里面的学问非
  • 贪心算法-背包问题C++

    1 问题 给定n种物品和一个背包 物品i的重量是Wi 其价值为Vi 背包的容量为C 应如何选择装入背包的物品 使得装入背包中物品的总价值最大 2 算法解析 此算法的贪心策略在于Sort排序函数 背包问题与0 1背包问题不同在于背包问题可以将
  • 【EI核心检索】第六届算法、计算与系统国际会议(ICACS 2022)

    会议官网 http icacs org 会议时间 2022年9月16 18日 主办单位 希腊色萨利大学数字系统学院 学术支持单位 英国斯特拉斯克莱德大学 会议地点 线上线下 希腊色萨利大学 会议出版 ACM会议论文集 会议收录 Ei Com
  • 单件模式:确保一个类只有一个实例,并提供一个全局访问点。

    问题 一个类只有一个实例的用处 线程池 缓存 对话框 处理偏好设置以及注册表等 全局变量的缺点 1 程序一开始就要创建好对象 一直未使用的话 就会浪费资源 2 全局变量只能约定只有一个实例 但是如果new新的实例 也是可以办到的 1 单件模
  • 最全面的Python重点知识汇总,建议收藏!

    这是一份来自于 SegmentFault 上的开发者 二十一 总结的 Python 重点 由于总结了太多的东西 所以篇幅有点长 这也是作者 缝缝补补 总结了好久的东西 Py2 VS Py3 print成为了函数 python2是关键字 不再
  • [DNN]CNN的结构分析和参数量计算

    文章目录 1 概述 1 1参数量计算方法 1 2神经元数量计算 1 3 连接数量计算 FLPOS 2 LeNet5结构和参数量计算 2 1 结构 2 2 对应的参数量计算 2 3 连接数量 FLOPS 资料来源 LeNet5分析 CNN参数