神经网络的参数量(Params)和计算量(FLOPs)
定义
参数量(Params)
参数量是指模型训练中需要训练的参数总数。用来衡量模型的大小(计算空间复杂度)。
计算量(FLOPs)
浮点运算次数,理解为计算量(计算时间复杂度),可以用来衡量算法的复杂度,常用做神经网络模型速度的间接衡量标准(虽然最近已经有文章证明靠FLOPs间接标准评价模型的速度是不靠谱的,因为模型的计算速度还跟内存的吞吐等因素相关,但此标准依然广泛用作模型速度的参考评价标准)。在计算 FLOPS时,我们通常将加,减,乘,除,求幕,平方根等作为单个FLOP进行计数。
公式表示
卷积层
输入维度: W i n ∗ H i n ∗ C i n W_{in}*H_{in}*C_{in} Win∗Hin∗Cin
输出维度: W o u t ∗ H o u t ∗ C o u t W_{out}*H_{out}*C_{out} Wout∗Hout∗Cout
卷积核: k w ∗ k h k_w*k_h kw∗kh
参数量: k w ∗ k h ∗ C i n ∗ C o u t k_w*k_h * C_{in} * C_{out} kw∗kh∗Cin∗Cout
参数量(包括偏置bias): ( k w ∗ k h ∗ C i n + 1 ) ∗ C o u t (k_w*k_h * C_{in} + 1) * C_{out} (kw∗kh∗Cin+1)∗Cout
计算量: k w ∗ k h ∗ C i n ∗ W o u t ∗ H o u t ∗ C o u t k_w*k_h* C_{in} * W_{out} * H_{out} * C_{out} kw∗kh∗Cin∗Wout∗Hout∗Cout
计算量(考虑加法和偏置): [ ( k w ∗ k h ∗ C i n ) + ( k w ∗ k h ∗ C i n − 1 ) + 1 ] ∗ W o u t ∗ H o u t ∗ C o u t [(k_w*k_h* C_{in}) +\boldsymbol{(k_w*k_h* C_{in}-1)+1}]* W_{out} * H_{out} * C_{out} [(kw∗kh∗Cin)+(kw∗kh∗Cin−1)+1]∗Wout∗Hout∗Cout
PS: 其中 k w ∗ k h ∗ C i n k_{w} * k_{h}* C_{i n} kw∗kh∗Cin表示乘法计算量, k w ∗ k h ∗ C i n − 1 k_{w} * k_{h}* C_{i n}-1 kw∗kh∗Cin−1表示加法计算量,+1表示偏置
池化层和激活层
激活、池化层仅仅对原来的矩阵做了一个变换,不会引进新的参数,这些其他层类型肯定需要时间,但它们不使用点积,并且成为网络总计算复杂度的舍入误差。
全连接层
全连接层设置下一层神经元的个数,并使用仿射变换 y i = W ⃗ i ⋅ x ⃗ + b i y_i = \vec W_i \cdot \vec x+b_i yi=W i⋅x +bi得到下一层神经元的值,因为两层之间的神经元会全部连接起来,所及叫做全连接,如图所示。
输入维度: d i n d_{in} din
输出维度: d o u t d_{out} dout
参数量: d i n ∗ d o u t d_{in}*d_{out} din∗dout
参数量(包括偏置bias): ( d i n + 1 ) ∗ d o u t (d_{in}+1)*d_{out} (din+1)∗dout
计算量: d i n ∗ d o u t d_{in}*d_{out} din∗dout
计算量(考虑加法和偏置): [ d i n + ( d i n − 1 ) + 1 ] ∗ d o u t [d_{in}+(d_{in}-1)+1]*d_{out} [din+(din−1)+1]∗dout
PS: d i n − 1 d_{in} -1 din−1表示加法运算量(权重矩阵与输入/上一层值的矩阵向量相乘所需的加法运算),+1表示偏置,输入是多维的直接相乘即可。
BN层
BN层引入的参数和输入层神经元个数相关,假设输入神经元个数为n,则该层引进的参数为2n,不过但部分情况下可以完全忽略Batch Normalization层的影响
总结: 对于神经网络模型,减少网络参数应主要针对全连接层;而进行计算量优化时,重点应放在卷积层。
补充: 在笔试时,有时不会给出输出特征图的大小,需要自己计算,特征图大小的计算如下:
卷积层: o u t s i z e = I n P u t S i z e − K e r n e l S i z e + 2 ∗ P a d d i n g S t r i d e + 1 \LARGE {out_{size} = \frac {InPutSize-KernelSize + 2*Padding} {Stride}+1} outsize=StrideInPutSize−KernelSize+2∗Padding+1
池化层: o u t s i z e = I n P u t S i z e − K e r n e l S i z e S t r i d e + 1 \LARGE {out_{size} = \frac {InPutSize-KernelSize } {Stride}+1} outsize=StrideInPutSize−KernelSize+1
PS: 计算结果不是整数时,卷积层上取整,池化层下取整。
神经网络的参数量(Params)和计算量(FLOPs)相关推荐
- 【25】模型参数量Params与计算量Flops的计算方法
文章目录 1. 推导公式 1.1 CNN Params 1.2 CNN Flops 1.3 Linear Params 1.4 Linear Flops 2. 计算方法 2.1 parameters法 ...
- 6种方法计算神经网络参数量Params、计算量FLOPs、Macs简单代码
方法1:统计模型参数量 total = sum([param.nelement() for param in model.parameters()]) print("Number of pa ...
- 神经网络的计算量(FLOPs)、参数量(Params)、推理时间(FPS)的定义及实现方法
目录 1. 定义 2. 实现方法 2.1. 计算参数量 2.2. 计算参数量和FLOPs 2.3. 计算推理时间(FPS) 3. 数据大小对参数量和FLOPs的影响 4. 参数量和FLOPs对于硬件要 ...
- vgg16卷积层的计算量_卷积神经网络VGG16详解
VGG网络图如下,本文要深入讲解的是很常用的VGG16网络.在看懂VGG16网络之前,先补一下卷积神经网络的知识,然后用代码实例来更好说明VGG16网络 VGG网络 图片数据如何输入? 彩色图像有RG ...
- 常规-分组-深度分离-分组深度分离卷积-参数量-计算量-dilation-python实现
不同的卷积操作 本文所用样本 一般的卷积(常规的) 分组卷积 深度分离卷积 逐通道卷积(depthwise conv) 逐点卷积 (pointwise conv) 分组深度分离卷积 上面卷积总结 卷积 ...
- 深度学习中参数量与计算量的理解
接下来要分别概述以下内容: 1 首先什么是参数量,什么是计算量 2 如何计算 参数量,如何统计 计算量 3 换算参数量,把他换算成我们常用的单位,比如:mb 4 对于各个经典网络,论述他们是计算量大还 ...
- 深度学习-参数量模型大小理论计算量
1. 参数量 指参数的数量,即一个模型包含多少个参数 \color{blue}{指参数的数量,即一个模型包含多少个参数} 指参数的数量,即一个模型包含多少个参数.单位M(10的6次方). 1.1. 卷 ...
- Self-Attention真的是必要的吗?微软中科大提出Sparse MLP,降低计算量的同时提升性能!...
关注公众号,发现CV技术之美 ▊ 写在前面 Transformer由于其强大的建模能力,目前在计算机视觉领域占据了重要的地位.在这项工作中,作者探究了Transformer的自注意(Self-Atte ...
- Pytorch 计算参数量与计算量Flops
获取网络模型的每一层参数量与计算量(Flops)---Pytorch 分析网络的参数量与计算量: 1.ptflops 安装: pip install --upgrade git ...
最新文章
- vue中的浏览量_vue中前进刷新、后退缓存用户浏览数据和浏览位置的实践
- 网络工程师成长日记417-西安如家酒店无线覆盖技术支持
- diskgenius 接触“只读“失败_相亲总是失败,这三个步骤你都做了吗?
- OAM深入解读:使用OAM定义与管理Kubernetes内置Workload
- Java基础-异常处理机制
- 找到恶意软件包:Go 语言生态系统中的供应链攻击是怎样的?
- java变量和常量_java变量和常量的区别是什么
- kubernetes实践分享
- Java冒泡排序法 降序
- 将自己的主页地址设置为OpenID
- laravel Excel 3.1 列宽设置不起作用
- 火灾自动报警系统下综合布线施工要素
- 使用Cdn加速静态资源
- python字符串处理编程实例_Python字符串处理实例详解
- (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
- 传奇登陆器 link.html 网页无法显示,打开登陆器后无法显示游戏各区列表的问题...
- excel 中vb组合框_在Excel 2010中修复组合框大小调整
- STEP7主站与远程I/O组网_过路老熊_新浪博客
- 学习项目1(移动端京东)
- 歌礼丙型肝炎新药临床试验申请获批