神经网络中输出特征图尺寸、参数量、感受野、FLOPs等各种计算

神经网络相关计算

      • 一、卷积的计算细节
          • 1. params的计算
          • 2. 特征图尺寸的计算
          • 3. FLOPs的计算
      • 二、池化层计算细节
      • 三、全连接层
      • 四、感受野计算
      • 五、参考:

一、卷积的计算细节

神经网络中输出特征图尺寸、参数量、感受野、FLOPs等各种计算_第1张图片

1. params的计算

首先,卷积核必须要初始化,在卷积计算过程中,卷积核的不同层都会对图片的每一个通道进行conv操作,所以然后将所有输入通道叠加起来。假设输入通道数是Cin,卷积核尺寸为KH,KW,输出尺寸为Cout,所以卷积的参数量是Cin×KH×KW×Cout, 假如计算bias中参数(Cin×KH×KW+1)×Cout。

2. 特征图尺寸的计算

假设padding尺寸为p,stride为s,则输出尺寸的计算公式为:
Hout = (Hin+2p-1)/s+1

3. FLOPs的计算

先捋清这个概念。
FLOPS:注意全大写,是floating point operations per second的缩写,意指每秒浮点运算次数,理解为计算速度。是一个衡量硬件性能的指标。FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。
因为一个Operation有两个MAC(加法和乘法运算),即在计算时候先乘以权重,再将乘法后值相加得到输出特征图对应位置上的某个值,所以要乘以2。
FLOPs = (2×Cin×KH×KW-1)×Cout×(H×W)
当计算bias时候没有-1

二、池化层计算细节

池化层是没有params的。
自然FLOPs = 0

三、全连接层

  1. params的计算
    (IN +1) × Out
    其中IN是输入的节点数量,Out是输出的节点数量
  2. Flops的计算
    (2×IN-1)× Out
    在考虑bias时候没有-1.

四、感受野计算

计算公式:
神经网络中输出特征图尺寸、参数量、感受野、FLOPs等各种计算_第2张图片
神经网络中输出特征图尺寸、参数量、感受野、FLOPs等各种计算_第3张图片
其中需要注意的是:

  • 感受野的大小不应受到特征图大小的限制,或者说感受野和特征图大小是无关的。
  • 感受野说法:某个点对应的感受野。
    如果是空洞卷积:
    在这里插入图片描述

五、参考:

博客:https://www.zhihu.com/question/65305385/answer/451060549
知乎:https://zhuanlan.zhihu.com/p/40267131

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