Conv層和BN層合併

2021-10-03 16:32:27 字數 606 閱讀 4277

在深度學習中,conv + bn + relu已成為標配,

那麼在網路推理階段,我們其實可以將conv層和bn層進行合併,因為他們都是線性運算。

合併後就相當於少了bn層的計算,這樣可以加快網路推理。

在數學計算上講,合併的本質其實就是改變了卷積層的權重和偏置。

卷積層計算

bn層計算

其中

將bn層合併於conv層後,conv的計算方式如下:

即:

那麼,我們令:

則:可以看到,bn層合併於卷積層後,本質是卷積層的權重偏值發生了改變,但是卻少了乙個bn層的計算,這對於加速推理是十分有益的。

全連線層後面加bn層 卷積層和BN層融合

常規的神經網路連線結構如下 當網路訓練完成,在推導的時候為了加速運算,通常將卷積層和 batch norm 層融合,原理如下 begin y w cdot x b y gamma cdot left frac e x right beta gamma cdot left frac right bet...

全連線層後面加bn層 池化層和全連線層應用

實際的卷積網路很少僅通過卷積層來構建。它們通常還有其他型別的層。最簡單的是全連線層。這是一種普通的卷積網路層,其中前一層的所有輸出被連線到下一層上的所有節點。通常,這些層位於網路末端。您會在卷積網路中看到的另一種重要的層是池化層。池化層具有多種形式,但最常用的是最大池化,其中輸入矩陣被拆分為相同大小...

BN層原理及作用

bn batchnorm 批量標準化。解決的問題 輸入的資料都具有不同的分布,會給下層網路的訓練帶來困難。計算方法 1.先求出此次批量資料x的均值 2.求出此次批量的方差 3.接下來就是對本次批量的x做歸一化 xi e x 根號下批量方差 極小值 eps 防止分母為0.4.最後最重要,引入縮放和平移...