參考:
- https://www.zhihu.com/question/65305385/answer/451060549
- https://www.zhihu.com/question/65305385/answer/642367100
- PRUNING CONVOLUTIONAL NEURAL NETWORKS FOR RESOURCE EFFICIENT INFERENCE, ICLR2017
1.FLOPs的定義
要注意區(qū)分FLOPs和FLOPS
- FLOPs:s小寫,是floating point operations的縮寫(s表復數(shù)),指浮點運算數(shù),即計算量,可用來衡量模型復雜度。
- FLOPS:全大寫,是floating point operations per second的縮寫,意指每秒浮點運算次數(shù),理解為計算速度,用來衡量硬件性能。
2.簡單的計算方式
以下均不考慮activation function。
2.1.卷積層
Ci=input channel, k=kernel size, HW=output feature map size, Co=output channel.
2是因為一個MAC算2個operations。不考慮bias時有-1,有bias時沒有-1。
上面針對一個input feature map,沒考慮batch size。
2.2.全聯(lián)接層
I=input neuron numbers, O=output neuron numbers,2是因為一個MAC算2個operations。不考慮bias時有-1,有bias時沒有-1。