卷積神經網絡的參數量計算和浮點計算量分析


1. CNN參數

params(w) = co* (ci * kw * kh)

params(b) = co

所以總的參數量為 params = co* (c* kw * k+ 1)

當使用了BatchNormalization時,不需要bias

2. CNN計算量

FLOPs (乘法) =  co*  H * W * (c* kw * kh)   其中H, W代表輸出特征的寬和高

FLOPs (加法(w)) =  co*  H * W * (c* kw * kh - 1)   其中H, W代表輸出特征的寬和高

FLOPs (加法(b)) =  co*  H * W * (1)   其中H, W代表輸出特征的寬和高

所以總的計算量 FLOPs  =  co*  H * W * (c* kw * k) * 2 

3. 全連接層參數

全連接即普通的矩陣運算

對於(b,  m)的輸入,如果要轉化為(b, n)的輸出

其kernel的維度為(m,n)bias的維度為(n,)

所以,params = (m + 1)* n

4. 全連接層計算量

每一個輸出都需要經過m次乘法,(m-1)次加法 + 1次加法,共有n個輸出

所以總的計算量 FLOPs  =  2 * m * n 

 

參考:

(13條消息) 卷積神經網絡參數和浮點計算量的公式_acrith-CSDN博客

深度學習之(經典)卷積層計算量以及參數量總結 (考慮有無bias,乘加情況) - 琴影 - 博客園 (cnblogs.com)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM