深度學(xué)習(xí)中的數(shù)值計(jì)算

1.定義

參數(shù)數(shù)量(params):關(guān)系到模型大小,單位通常為M,通常參數(shù)用 float32 表示,所以模型大小是參數(shù)數(shù)量的 4 倍
理論計(jì)算量(FLOPs):是 floating point operations 的縮寫(注意 s 小寫),可以用來衡量算法/模型的復(fù)雜度,這關(guān)系到算法速度,大模型的單位通常為 G,小模型單位通常為 M
通常只考慮乘加操作(Multi-Adds)的數(shù)量,而且只考慮 CONV 和 FC 等參數(shù)層的計(jì)算量,忽略 BN 和PReLU 等等。一般情況,CONV 和 FC 層也會(huì) 忽略僅純加操作 的計(jì)算量,如 bias 偏置加和 shotcut 殘差加等,目前技術(shù)有 BN 的 CNN 可以不加 bias

Conv2d 標(biāo)準(zhǔn)卷積層

input:N \times H \times W
output: M \times H \times W
filters: K \times K
paramsN \times K^2 \times M
FLOPsW \times H \times N \times K^2 \times M
若算上加法:
((K\times K+1)*N+(N-1))*W*H*M
其中(這需要對(duì)卷積過程有較深的理解),標(biāo)準(zhǔn)的卷積將輸入的N個(gè)channel分成1組,復(fù)用M次
(K\times K+1)表示在一個(gè)卷積核計(jì)算時(shí)在疊加bias,
乘以N表示在輸入的channel方向進(jìn)行乘積,即一組乘積
N-1 表示一組卷積之后對(duì)N個(gè)結(jié)果進(jìn)行N-1次加法來疊加結(jié)果
((K\times K+1)*N+ (N-1)) 表示最終匯聚成特征圖上的一個(gè)點(diǎn)
乘以W*H*M表示在最終的輸出特征圖,所有點(diǎn)的的個(gè)數(shù)

FC 全連接層

input:N
output: M
paramsN \times M
FLOPsN \times M

Depthwise conv2d

input:N \times H \times W
output: N \times H \times W
filters: K \times K
paramsN \times K^2
FLOPsW \times H \times N \times K^2

輸出Feature map的大小

n_{out}=\lfloor {\frac{n_{in}+2p-k}{s}} \rfloor + 1
n_{in}: size of input feature maps
n_{out}: size of output feature maps
n_{p}: padding size
n_{k}: kernel size
n_{s}: stride size

感受野計(jì)算

RF = (RF -1)\times s+ k
如第一層3\times3的RF為3
第二層3\times3的RF為5

擴(kuò)展閱讀:
https://www.zhihu.com/question/65305385/answer/649290586

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。