深度學習隨手記

2021-09-29 12:40:25 字數 2293 閱讀 1600

最早來自於alexnet,分組卷積是按卷積的通道進行分組,比如輸入n通道,輸出m通道,均分成k組,每組通道輸入n/k,輸出m/k,再將各組按照通道concatenate例:參數量256x3x3x256 => 8x32x3x3x32 (n=m=32,k=8)參數量降到1/8

小卷積有利於網路的加深!

googlenet,不同尺寸卷積核併聯結構,特徵組合!

googlenet從nin中受到啟發,在inception結構中加入了一些1x1卷積核,參數量降低分析:

256x3x3x256=589824256x1x1x64+64x3x3x64+64x1x1x256=69632

參數量降到1/9

resnet skip connection

層數加深 梯度消散嚴重 難於bp

為什麼resnet結構可以消除梯度瀰散呢?

a: 先看一張圖,梯度流過乙個blcok之後,就已經下降了幾個量級,傳到前一層的梯度將會變得很小!

加入一條捷徑,

來自xception網路,首先對每乙個通道進行各自的卷積操作,有多少個通道就有多少個過濾器。得到新的通道feature maps之後,這時再對這批新的通道feature maps進行標準的1×1跨通道卷積操作。這種操作被稱為depthwise convolutiondepthwise separable convolution,縮寫「dw」。

參數量降低比較:

設輸出3通道,輸出256通道:

3×3×3×256 = 6,912 => 3×3×3 + 3×1×1×256 = 795九分之一

ps: depthwise和pointwise(elementwise)

se-resnet-50的情況也類似,如上圖。在resnet中都是在residual block中嵌入senet。下圖最左邊的長條連線是原來residual block的skip connection,右下角的conv2_2_global_pool到conv2_2_prob以及左邊那條連線都是senet。不過也是用兩個1*1卷積代替文中的兩個全連線層。

標準的3×3卷積核只能看到對應區域3×3的大小,但是為了能讓卷積核看到更大的範圍,dilated conv使其成為了可能。

vggnet作者發現,7 x 7 的卷積層的正則等效於 3 個 3 x 3 的卷積層的疊加。而這樣的設計不僅可以大幅度的減少引數,其本身帶有正則性質的 convolution map 能夠更容易學乙個 generlisable, expressive feature space

deformable convolutional networks

消除網路難以適應幾何變形,變形的卷積核能讓它只看感興趣的影象區域 ,這樣識別出來的特徵更佳。

網路的輕量化,希望又快又準!

從原來alexnet、vggnet,到體積小一點的inception、resnet系列,到目前能移植到移動端的mobilenet、shufflenet(體積能降低到0.5mb!):

卷積核方面:

卷積層通道方面:

卷積層連線方面:

啟發

wireshark學習隨手記

一 基本語法。a ip.src 192.168.0.2 ip.dst 192.168.0.3。紅色部分可以是 等 或相應的英文 and or not 二 針對協議的過濾 1 僅僅需要捕獲某種協議的資料報,表示式很簡單僅僅需要把協議的名字輸入即可。表示式為 http 2 需要捕獲多種協議的資料報,也只...

pytorch學習隨手記

tensor在pytorch中代表多維陣列,類似於tensorflow中的matrix或者ndarrys 資料型別轉換 比如將list,numpy型別的資料轉化為tensor 張量 data1 torch.floattensor data data2 torch.doubletensor data ...

CI學習隨手記 三

關於ci的檔案上傳 controller中需要配置 config upload path upload 上傳檔案儲存路徑,以index.php為入口,此處儲存在與index.php平級的upload資料夾中 config allowed types gif jpg png 上傳檔案允許的型別 con...