CNN FLOPs数计算

注意:1MAC=2FLOPs

1次MAC=2 Flops吧,卷积乘法+卷积乘法自后所有数相加(所有数-1,如果有bias正好+1抵消)

 

例子:resnet18算flops,只计算卷积,没考虑relu,bn,add这些

CNN FLOPs数计算_第1张图片

conv1:112*112*3*64*7*7

conv2_x:56*56*64*64*9+56*56*64*64*9+56*56*64*64

conv3_x:28*28*64*128*9+28*28*128*128*9+28*28*64*128

conv4_x:14*14*128*256*9+14*14*256*256*9+14*14*128*256

conv5_x:7*7*256*512*9+7*7*512*512*9+7*7*256*512

fc:512*1000

总共加起来乘以2,为1.8G flops

 

 

例子2:mobilenet V1,从上到下:

CNN FLOPs数计算_第2张图片

112*112*3*32*9

112*112*32*9+112*112*32*64

112*112*64*9+56*56*64*128

56*56*128*9+56*56*128*128 + 56*56*128*9+28*28*128*256

28*28*256*9+28*28*256*256 + 28*28*256*9+14*14*256*512

(14*14*512*9+14*14*512*512) * 5

14*14*512*9+7*7*512*1024

7*7*1024*9+7*7*1024*1024

1024*1000

加起来:578.9M (Mac),与原文的569M有点差距,可能是没把bias那部分Mac减掉

 

 

 

 

ref:

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

https://blog.csdn.net/peaceinmind/article/details/78079263

你可能感兴趣的:(deep,learning)