【参数量(Params)与计算量(FLOPs)的计算】

文章目录

  • 前言
  • 一、参数量的计算
    • 1.卷积层
    • 2.池化层
    • 3.全连接层
  • 二、计算量的计算
    • 1.卷积层
    • 2.池化层
    • 3.全连接层
  • 总结


前言

随着深度学习在工业领域的使用,也随着深度学习的进步,模型的复杂度对于衡量一个模型的好坏也至关重要,本文主要介绍一般情况下参数量(Params)与计算量(FLOPs)的计算。


一、参数量的计算

参数量主要用来形容模型的大小程度,类似于算法中的空间复杂度。

1.卷积层

计算公式如下:
params = Co×(Ci×Kw×Kh +1)
其中,Co代表输入的通道数,Ci代表输出的通道数,Kw×Kh为卷积核的大小,若卷积核有偏置项(Bias)则+1,没有则不加。若卷积核为方形则Kw=Kh=K。

2.池化层

深度学习中,参数量一般是指随着训练可以不断进行自我调节大小的参数的数量。而池化层主要是用来采样,例如:最大池化,取一个filter中的最大值。所以池化层可以不用算参数量。

3.全连接层

计算公式如下:
params = (I+1)×O
其中,I为输入向量的维度也可以称作输入特征图的大小,O为输出向量的维度

二、计算量的计算

计算量原本用于形容硬件的性能,而在深度学习中用来形容模型执行的长短,类似宇算法中的时间复杂度。

1.卷积层

计算公式如下:
FLOPs = [Ci×Kw×Kh+(Ci×Kw×Kh-1) +1]×W×H×Co
其中Ci×Kw×Kh为一次卷积的乘法预算的计算量,(Ci×Kw×Kh-1)为一次卷积加法运算的计算量,+1为偏置项,W与H为特征图(feture map)的长和宽。
可简化为:
FLOPs = 2×Ci×Kw×Kh×W×H×Co
计算机视觉中常把一次乘法和加法合在一起,所以可以去掉前面乘的2。

2.池化层

计算公式如下:
FLOPs = H × W × Ci
其中H,W为特征图的(feture map)的高和宽,Ci为输入的通道数。

3.全连接层

计算公式如下:
FLOPs = [I + (I-1) + 1] × O = 2 × I × O
其中I为一次乘法,I-1为一次加法,+1为加上一个偏置项


总结

以上为一般情况下参数量和计算量的计算方法,当然还有很多细节与很多其他情况下的计算方法没有介绍,可用于快速评判一个模型的复杂度
由于本人还是一个新手,能力也有限,如果有错误,望指出,谢谢!

你可能感兴趣的:(深度学习)