模型最終的的速度,不僅僅是和計算量多少有關係,還和諸如記憶體頻寬、優化程度、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 這個函式也會被用於下面的神經網路模型中做啟用函式。生物的神經網路系統中,最簡單最基本的結構是神經元。每個神經元...