当前位置: 首页 > news >正文

通俗易懂理解CNN卷积神经网络模型的参数量和计算量

一、参考资料

神经网络参数量、计算量(FLOPS)、内存访问量(MAC)计算详解
5种方法获取Torch网络模型参数量计算量等信息

二、参数量与计算量相关介绍

1. 为什么要统计模型参数量和计算量

  • 好的网络模型不仅要求精度准,还要要求模型的参数量计算量不大,才能有利于部署
  • 统计模型的参数量和计算量可以用于不同网络模型之间的对比分析
  • 有的模型虽然参数量相同,但是可能因为连接方式和结构等不同而导致计算量不同

2. 计算量与参数量的概念

  • 计算量是指网络模型需要计算的运算次数,参数量是指网络模型自带的参数数量多少;
  • 计算量对应时间复杂度,参数量对应于空间复杂度
  • 计算量决定了网络执行时间的长短,参数量决定了占用显存的大小

3. 卷积层

在这里插入图片描述

3.1 参数量

对于卷积层来说,参数量就是卷积核里所有参数的数量。

假设,每个卷积核的尺寸是 D K ∗ D K ∗ M D_K * D_K*M DKDKM,一共有N个卷积核,所以标准卷积的参数量为:

如果考虑bias偏置项,则参数量为: D K ∗ D K ∗ M ∗ N + N D_K * D_K * M * N + N DKDKMN+N

如果不考虑bias偏置项,则参数量为: D K ∗ D K ∗ M ∗ N D_K * D_K * M * N DKDKMN

3.2 计算量

对于卷积层来说,我们得到的特征图都是进行一系列的乘加运算得到的。

假设,每个卷积核的尺寸是 D K ∗ D K ∗ M D_K * D_K * M DKDKM,一共有N个卷积核,输出的特征图尺寸是 D F ∗ D F D_F * D_F DFDF

一次卷积乘法运算次数为: D K ∗ D K ∗ M D_K * D_K * M DKDKM

一次卷积加法运算次数为: D K ∗ D K ∗ M − 1 ( 27 个数相加,做 26 次加法运算 ) D_K * D_K * M-1 \quad \textcolor{red}{(27个数相加,做26次加法运算)} DKDKM1(27个数相加,做26次加法运算)

一共进行 D F ∗ D F ∗ N 次卷积运算 ( 输出 f e a t u r e m a p 大小为 D F ∗ D F ∗ N ) D_F * D_F*N \ 次卷积运算 \quad \textcolor{red}{(输出feature \ map大小为D_F * D_F*N)} DFDFN 次卷积运算(输出feature map大小为DFDFN)

乘加运算总次数: ( 2 ∗ D K ∗ D K ∗ M − 1 ) ∗ ( D F ∗ D F ∗ N ) (2*D_K * D_K * M-1)*(D_F * D_F*N) (2DKDKM1)(DFDFN)

通常,标准卷积的计算量只考虑乘法运算: D K ∗ D K ∗ M ∗ N ∗ D F ∗ D F D_K * D_K * M * N * D_F * D_F DKDKMNDFDF

3.3 内存访问量MAC

输入 D K ∗ D K ∗ M D_K * D_K * M DKDKM

输出 D F ∗ D F ∗ N D_F * D_F * N DFDFN

权重 D K ∗ D K ∗ M ∗ N D_K * D_K * M * N DKDKMN

那么,上述三项之和为MAC: D K ∗ D K ∗ M + D F ∗ D F ∗ N + D K ∗ D K ∗ M ∗ N D_K * D_K * M + D_F * D_F * N + D_K * D_K * M * N DKDKM+DFDFN+DKDKMN

4. 全连接层

在这里插入图片描述

4.1 参数量

假设,输入 C i C_i Ci 个神经元,输出 C o C_o Co 个神经元。

如果考虑bias偏置项,则参数量为: C i ∗ C o + C o C_i * C_o + C_o CiCo+Co

如果不考虑bias偏置项,则参数量为: C i ∗ C o C_i * C_o CiCo

4.2 计算量

假设,输入 C i C_i Ci 个神经元,输出 C o C_o Co 个神经元。

一个神经元乘法运算次数为: C i C_i Ci

一个神经元加法运算次数为: C o C_o Co

乘加运算总次数为: ( 2 ∗ C i − 1 ) ∗ C o (2*C_i - 1)*C_o (2Ci1)Co

4.3 内存访问量MAC

输入: C i C_i Ci

输出: C o C_o Co

权重: C i ∗ C o C_i*C_o CiCo

那么,上述三项之和为MAC: C i + C o + C i ∗ C o C_i+C_o+C_i*C_o Ci+Co+CiCo

BN层

参数量:KaTeX parse error: Undefined control sequence: \quat at position 7: 2*C_i \̲q̲u̲a̲t̲ ̲\textcolor{red}…

http://www.lryc.cn/news/211867.html

相关文章:

  • npm工具使用方法介绍
  • 使用Python批量修改PPT字体和提取全部文字到word
  • Debezium系列之:在K8s集群中部署Debezium Operator运行Debezium Server的详细步骤
  • 并行和并发有什么区别?
  • 第2篇 机器学习基础 —(3)机器学习库之Scikit-Learn
  • 正点原子嵌入式linux驱动开发——Linux SPI驱动
  • 【计算机视觉】相机
  • Spring的条件注解,一篇文章盘得清清楚楚明明白白
  • Oracle (7)Online Redo Log Files
  • 物联网AI MicroPython传感器学习 之 PAJ7620手势识别传感器
  • Affinity Photo 2.2.1 高端专业Mac PS修图软件
  • 微服务-统一网关Gateway
  • 【音视频|wav】wav音频文件格式详解
  • 网络工程综合试题(二)
  • Android JNI/NDK 入门从一到二
  • 吃瓜教程3|决策树
  • springboot动态数据源【非伪数据源】
  • 如何改善设备综合效率(OEE)并提高工厂的生产力
  • 一文接入Android阿里Sophix热更新
  • 【高阶数据结构】并查集和图
  • Git 提交时提示 GPG 签名错误
  • vite+vue3实现 tomcat 的本地部署
  • docker+playwright
  • php框架路由实现
  • 在CentOS 7中手工打造和运行xml文件配置的Servlet,然后使用curl、浏览器、telnet等三种工具各自测试
  • 单例模式.
  • 2023年MathorCup高校数学建模挑战赛大数据挑战赛赛题浅析
  • c++小惊喜——stringstream
  • ubuntu 18.04 编译安装flexpart 10.4(2023年) —— 筑梦之路
  • 深度学习(生成式模型)——DDIM:Denoising Diffusion Implicit Models