logo
Loading...

在CNN的 FLOPs(乘、加法數量計算) 計算方式那一種對的? 是要乘以2? 還是不要? - Cupoy

從網路上,看到一些對FLOPs的計算方式有問題,假設 kernel size 為 h*w, c為in...

cvdl,cvdl-d11

在CNN的 FLOPs(乘、加法數量計算) 計算方式那一種對的? 是要乘以2? 還是不要?

2020/07/22 下午 10:16
電腦視覺深度學習討論版
liang-bin
觀看數:27
回答數:1
收藏數:0
cvdl
cvdl-d11

從網路上,看到一些對FLOPs的計算方式有問題,

假設 kernel size 為 h*w, c為input channel, n為output channel,output feature map 為H*W

,含 bias 計算

params = (h*w*c+1)*n

a. 第一種FLOPs:

  FLOPs = params * H*W

b.  第二種 FLOPs:

  FLOPs = (2*h*w*c)*n*H*W


第二種FLOPs 是對的,為什麼會有第一種FLOPs 算式? 

回答列表

  • 2020/07/29 下午 10:14
    楊哲寧
    贊同數:1
    不贊同數:0
    留言數:0

    上面那種算法應該是FLOPS,而一般我們在計算模型時是指FLOPs,根據定義:

    FLOPS:注意全大寫,是每秒的浮點操作數的縮寫,意指每秒浮點運算次數,理解為計算速度。是一個稱為硬件性能的指標。(一般是GPU計算力的單位)

    FLOPs:注意小寫,是浮點運算的縮寫(s表複數),意指浮點運算數,理解為計算量。可以使用算法/模型的複雜度。


    而您所指的是完成CNN網絡中運算所需的計算力FLOPs,全稱是Float point Operations,相當於FLOPS在時間上的積分,所以計算的是總浮點運算數。之所以應乘上2是因為MAC操作(包含累加及累乘)算兩次operation