深度学习中的FLOPs补充

 学习了博主的介绍(深度学习中的FLOPs介绍及计算(注意区分FLOPS)-CSDN博客)后,对我不理解的内容做了一点补充。 链接放到下边啦

https://blog.csdn.net/qq_41834400/article/details/120283103


FLOPs:注意s小写,是floating point operations的缩写(s表复数),意指浮点运算数,理解为计算量。可以用来衡量算法/模型的复杂度。

1 全连接网络中FLOPs的计算 博主说的很详细了就不介绍了

2 解释一下CNN中FLOPs的计算中 我不理解的地方

生成输出特征图的一个通道的 一个像素点的计算过程

        对于每个输入通道,我们有K*K次乘法 和 K^2 - 1次加法。因此,单个输入通道的计算次数为:K^2次乘法+K^2 - 1次加法

注意K^2 - 1是卷积核和输入特征图对应元素相乘后 得到的K*K个数,把他们 对应相加的过程!!!!!!

总共的计算次数为:2K^2 - 1

所有输入通道的计算次数

对于所有C_{in} 个输入通道,还需要将所有通道的结果相加形成输出的一个通道的特征图。因此,每个输出像素点需要额外的 C_{in}-1次加法。因此,总的计算次数为:

C_{in} \times (2K^2 - 1) + (C_{in} - 1) = C_{in} \times 2K^2 - C_{in} + C_{in} - 1 = 2C_{in} \times K^2 - 1

也就是博主提到的下边这个过程

若考虑到偏置,可以看看卷积操作中,偏置是怎么起作用的,参考这个博主的

https://blog.csdn.net/qq_42103167/article/details/105056598?spm=1001.2014.3001.5506

(每个卷积核是和输入特征图的通道是一样的!!!)偏置是在输出特征图的每个像素点的卷积操作完成后(比如三通道,三次卷积操作后),加上的。所以一次卷积操作偏置加1。

整个输出特征图的计算次数

(2C_{in} \times K^2 - 1) \times H \times W

所有输出通道的计算次数

由于有 C_{out}个输出通道,因此总的计算次数为:(2C_{in} \times K^2 - 1) \times H \times W \times C_{out}

卷积层FLOPs的计算公式如下(不考虑bias时有-1,有bias时没有-1):

\text{FLOPs} = (2C_{in} \times K^2 - 1) \times H \times W \times C_{out}

感觉博主推荐的链接也不错 ,有空看看

(60 封私信 / 82 条消息) CNN 模型所需的计算力(flops)和参数(parameters)数量是怎么计算的? - 知乎 (zhihu.com)

分享一个FLOPs计算神器 - 简书 (jianshu.com)

我们可以发现,具有相似的FLOPs的网络,执行的速度却不一样。有的相差还挺大。
使用FLOP作为计算复杂度的唯一指标是不充分的。

为什么不能只用FLOPs作为指标呢?
作者认为有如下几个原因:

  1. FLOPs没有考虑几个对速度有相当大影响的重要因素。 2)计算平台的不同。

  2. FLOPs没有考虑几个对速度有相当大影响的重要因素
    MAC和并行度

链接:https://www.jianshu.com/p/b1ceaa7effa8
 

CNN解说员 (poloclub.github.io)

相关推荐

  1. [深度学习]PaddleClas:统计模型Flops

    2024-07-13 05:24:03       45 阅读
  2. TensorFlowScikit Flow

    2024-07-13 05:24:03       46 阅读
  3. 深度学习算子

    2024-07-13 05:24:03       26 阅读
  4. 深度学习弱监督学习

    2024-07-13 05:24:03       29 阅读
  5. 深度学习监督学习

    2024-07-13 05:24:03       31 阅读
  6. 阻抗控制effort and flow

    2024-07-13 05:24:03       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 05:24:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 05:24:03       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 05:24:03       58 阅读
  4. Python语言-面向对象

    2024-07-13 05:24:03       69 阅读

热门阅读

  1. React@16.x(55)Redux@4.x(4)- store

    2024-07-13 05:24:03       23 阅读
  2. Reactor 模式

    2024-07-13 05:24:03       23 阅读
  3. python 端口的转发

    2024-07-13 05:24:03       32 阅读
  4. 软设之迭代器模式

    2024-07-13 05:24:03       23 阅读
  5. 华为od 100问 持续分享-2

    2024-07-13 05:24:03       27 阅读
  6. 7-3 打怪升级(25 分)

    2024-07-13 05:24:03       25 阅读
  7. AC修炼计划( AtCoder Regular Contest 178)A~C

    2024-07-13 05:24:03       23 阅读
  8. Linux学习笔记(三)文件权限

    2024-07-13 05:24:03       28 阅读