天猫商城商品来源南通seo网站优化软件
一、参考资料
神经网络参数量、计算量(FLOPS)、内存访问量(MAC)计算详解
5种方法获取Torch网络模型参数量计算量等信息
二、参数量与计算量相关介绍
1. 为什么要统计模型参数量和计算量
- 好的网络模型不仅要求精度准,还要要求模型的参数量和计算量不大,才能有利于部署
- 统计模型的参数量和计算量可以用于不同网络模型之间的对比分析
- 有的模型虽然参数量相同,但是可能因为连接方式和结构等不同而导致计算量不同
2. 计算量与参数量的概念
- 计算量是指网络模型需要计算的运算次数,参数量是指网络模型自带的参数数量多少;
- 计算量对应时间复杂度,参数量对应于空间复杂度;
- 计算量决定了网络执行时间的长短,参数量决定了占用显存的大小。
3. 卷积层
3.1 参数量
对于卷积层来说,参数量就是卷积核里所有参数的数量。
假设,每个卷积核的尺寸是 D K ∗ D K ∗ M D_K * D_K*M DK∗DK∗M,一共有N个卷积核,所以标准卷积的参数量为:
如果考虑bias偏置项,则参数量为: D K ∗ D K ∗ M ∗ N + N D_K * D_K * M * N + N DK∗DK∗M∗N+N
如果不考虑bias偏置项,则参数量为: D K ∗ D K ∗ M ∗ N D_K * D_K * M * N DK∗DK∗M∗N
3.2 计算量
对于卷积层来说,我们得到的特征图都是进行一系列的乘加运算得到的。
假设,每个卷积核的尺寸是 D K ∗ D K ∗ M D_K * D_K * M DK∗DK∗M,一共有N个卷积核,输出的特征图尺寸是 D F ∗ D F D_F * D_F DF∗DF。
一次卷积乘法运算次数为: D K ∗ D K ∗ M D_K * D_K * M DK∗DK∗M
一次卷积加法运算次数为: D K ∗ D K ∗ M − 1 ( 27 个数相加,做 26 次加法运算 ) D_K * D_K * M-1 \quad \textcolor{red}{(27个数相加,做26次加法运算)} DK∗DK∗M−1(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)} DF∗DF∗N 次卷积运算(输出feature map大小为DF∗DF∗N)
乘加运算总次数: ( 2 ∗ D K ∗ D K ∗ M − 1 ) ∗ ( D F ∗ D F ∗ N ) (2*D_K * D_K * M-1)*(D_F * D_F*N) (2∗DK∗DK∗M−1)∗(DF∗DF∗N)
通常,标准卷积的计算量只考虑乘法运算: D K ∗ D K ∗ M ∗ N ∗ D F ∗ D F D_K * D_K * M * N * D_F * D_F DK∗DK∗M∗N∗DF∗DF。
3.3 内存访问量MAC
输入: D K ∗ D K ∗ M D_K * D_K * M DK∗DK∗M
输出: D F ∗ D F ∗ N D_F * D_F * N DF∗DF∗N
权重: D K ∗ D K ∗ M ∗ N D_K * D_K * M * N DK∗DK∗M∗N
那么,上述三项之和为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 DK∗DK∗M+DF∗DF∗N+DK∗DK∗M∗N
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 Ci∗Co+Co
如果不考虑bias偏置项,则参数量为: C i ∗ C o C_i * C_o Ci∗Co
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 (2∗Ci−1)∗Co
4.3 内存访问量MAC
输入: C i C_i Ci
输出: C o C_o Co
权重: C i ∗ C o C_i*C_o Ci∗Co
那么,上述三项之和为MAC: C i + C o + C i ∗ C o C_i+C_o+C_i*C_o Ci+Co+Ci∗Co
BN层
参数量:KaTeX parse error: Undefined control sequence: \quat at position 7: 2*C_i \̲q̲u̲a̲t̲ ̲\textcolor{red}…