百科问答小站 logo
百科问答小站 font logo



如何计算CNN中batch normalization的计算复杂度(FLOPs)? 第1页

  

user avatar   quarrying 网友的相关建议: 
      

下面分析在推理 (或者说测试) 时 BN 层的计算量:

设 是BN层的输入, 其尺寸为 ; 是BN层的moving mean, 是BN层的moving variance, 是BN层的scale, 是BN层的shift, 它们的尺寸均为 . 为了简化推导, 设 , 并令 , , , , , . 则BN层的输出的第k个通道为:

, 式中 是全1矩阵(而不是单位矩阵), 是一个很小的正数, 防止除零的发生.

令 , 则 . 由于 都是已知的, 和 可以预先计算 (NCNN中就是这样做的[1]), 在推理时不会占用额外的计算时间, 于是 的计算量只有 次乘法运算和 次加法运算, 对于C个通道计算量则有 次乘法运算和 次加法运算. 这个计算量相对于一般卷积层的计算量是很小的. 对于一般卷积则需要 次乘法运算, 次加法运算(有偏置项) 或 次加法运算(无偏置项), 这些符号可以顾名思义, 这里就不赘述了, 详细的推导可以参考[2].

另外如果网络采用Conv-BN-ReLU的设置, 则BN的参数还可以折叠 (fold) 到前面的卷积层的参数中, 这时BN的计算被包含到卷积的计算中了.

参考

  1. ^ https://github.com/Tencent/ncnn/blob/c61a60bfc67fcc5d8cdce20ad2ab65ba19f2b6c8/src/layer/batchnorm.cpp#L36
  2. ^ https://zhuanlan.zhihu.com/p/137719986



  

相关话题

  神经网络训练多个epoch,写论文的时候可以取最好的效果那一个epoch作为结果吗? 
  深度神经网络(DNN)是否模拟了人类大脑皮层结构? 
  DeepMind 团队中有哪些厉害的人物和技术积累? 
  如果百年后深度学习最终有了公认的数学理论作为基础,能解释实验中的各类玄学,那这个理论会长什么样子? 
  学生网络用知识蒸馏损失去逼近教师网络,如何提高学生网络的准确率? 
  神经网络中,bias有什么用,为什么要设置bias,当加权和大于某值时,激活才有意义? 
  现大二,准备做大学生创新创业项目计划 ,目前定的方向是深度学习+畜牧业/养殖业,有什么建议给我们吗? 
  如何系统学习机器学习? 
  如何评价2020年计算机视觉顶会CVPR投稿量破万的现象? 
  领域自适应需要用到测试集数据,这样的方法有啥意义呢? 

前一个讨论
CPU和GPU跑深度学习差别有多大?
下一个讨论
2020年CVPR有哪些优秀的论文?





© 2025-04-26 - tinynew.org. All Rights Reserved.
© 2025-04-26 - tinynew.org. 保留所有权利