卷积神经网络CNN中FLOPs的概念和计算

1.什么是FLOPs?
FLOPs全称:floating point operation per second
意思是每秒浮点运算次数,理解为计算速度,是一个用来衡量硬件计算性能的指标。
在CNN中用来指浮点运算次数;

2.如何计算?
在AlexNet中某一次卷积过程中,
输入特征图大小:[C_in, H_in, W_in] = 3 * 224 * 224
卷积核大小:[C_in, K_H, K_W] = 3 * 11 * 11
输出特征图大小:[C_out, H_out, W_out] = 96 * 55 * 55
该卷积层的FLOPs量级为多少?
FLOPs:
[(C_in * K_H * K_W) * C_out + C_out] * (H_out * W_out)
即[(3 * 11 * 11) * 96 + 96 ] * (55 * 55) = 105705600
量级为1e8
(
注:可以将上试的C_out提取出来。
num_paras = (C_in * K_H * K_W) * C_out + C_out
= C_out * [(C_in * K_H * K_W) + 1 ]
num_paras也就是该层参数的数目

我也是根据别人的博客参考的,每个大佬回答的都有差异,有的考虑了偏置,有的没有考虑偏置什么的,各种博客各种回答,在此仅做参考,详细深入请查找文献。

参考:
https://baike.baidu.com/item/FLOPS/989494?fr=aladdin

https://www.cnblogs.com/zf-blog/p/10875782.html

https://blog.csdn.net/weixin_41770169/article/details/94001345

https://www.zhihu.com/question/65305385

仅用来个人学习和分享,如若侵权,留言立删。

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