學習筆記 神經網路的計算量和參數量估計

2021-10-19 13:15:33 字數 1262 閱讀 5974

模型最終的的速度,不僅僅是和計算量多少有關係,還和諸如記憶體頻寬、優化程度、cpu流水線、cache之類的因素也有很大關係。

對於輸入為i

ii,輸出為j

jj的全連線層,其權重w

ww儲存在i×j

i \times j

i×j的矩陣中。

啟用函式沒有引數,所以參數量為0。

lstm包含4個非線性變換,每一種非線形變換可視作乙個全連線層。令e

ee=embedding_size,h

hh=hidden_size。其中,第一層是x

ix_i

xi​和h

ih_i

hi​的結合,維度就是e+h

e+he+

h,第二層就是輸出層,維度為h

hh。四個非線性變換中,還會對全連線層的輸出進行啟用函式計算(三個sigmoid和乙個tanh)。除此之外,lstm除了在四個非線性變換中的計算,還有三個矩陣乘法(不是點積)、乙個加法、乙個tanh計算。

對於輸入為hin

×win

×cin

h_ \times w_ \times c_

hin​×w

in​×

cin​

,輸出為hou

t×wo

ut×c

ou

th_ \times w_ \times c_

hout​×

wout

​×co

ut​的卷積層,輸出的每乙個畫素對應了乙個立體卷積核k×k

×cin

k \times k \times c_

k×k×ci

n​。深度可分離卷積分為兩個操作,深度卷積和1×1

1\times1

1×1常規卷積。

bn的計算操作為z=γ

y−μσ

2+ϵ+

βz = \gamma \frac+\epsilon}}+\beta

z=γσ2+

ϵ​y−

μ​+β

。每個通道都有自己的γ,β

,μ,σ

2\gamma,\beta,\mu,\sigma^

γ,β,μ,

σ2,因此,如果卷積層的輸出中有c

cc個通道,則bn層將學習c×4

c \times 4

c×4個引數。

池化操作不使用點積,因此不能用macc測量。這種附加層的計算量與卷積層、全連線層相比非常小,通常可以忽略不計。

連線操作通常不需要單獨的複製步驟,不需任何引數和計算。

卷積神經網路參數量和計算量記憶體計算

每一次卷積的參數量和特徵圖的大小無關,僅和卷積核的大小,偏置及bn有關。1.每個卷積層的參數量,1表示偏置 co x kw x kh x cin 1 2.全連線層的參數量 d1 1 x d2 3.bn層的參數量 因為bn層需要學習兩個引數 gamma 和 beta 所以參數量是2xco 1.一次卷積...

神經網路學習筆記

隱含層數越多,越容易擬合複雜函式 為了擬合複雜函式需要的隱含節點數目,基本上隨著隱含層數目的增加呈現指數下降的趨勢,也就是說層數越多,神經網路所需要的隱含節點可以越少。層數越深,概念越抽象,需要背誦的知識點 神經網路的隱含節點 就越少。但是,層數越多,容易出現過擬合以及引數難以除錯以及梯度瀰散的問題...

神經網路學習筆記

sigmoid函式是一種常見的擠壓函式,其將較大範圍的輸入擠壓到 0 1 區間內,其函式的表示式與形狀如下圖所示 該函式常被用於分類模型,因為其具有很好的乙個特性f x f x 1 f x 這個函式也會被用於下面的神經網路模型中做啟用函式。生物的神經網路系統中,最簡單最基本的結構是神經元。每個神經元...