最早來自於alexnet,分組卷積是按卷積的通道進行分組,比如輸入n通道,輸出m通道,均分成k組,每組通道輸入n/k,輸出m/k,再將各組按照通道concatenate
,例:參數量256x3x3x256 => 8x32x3x3x32 (n=m=32,k=8)
參數量降到1/8
小卷積有利於網路的加深!
googlenet,不同尺寸卷積核併聯結構,特徵組合!
googlenet從nin中受到啟發,在inception結構中加入了一些1x1卷積核,參數量降低分析:
左256x3x3x256=589824
右256x1x1x64+64x3x3x64+64x1x1x256=69632
參數量降到1/9
resnet skip connection
層數加深 梯度消散嚴重 難於bp
為什麼resnet結構可以消除梯度瀰散呢?
a: 先看一張圖,梯度流過乙個blcok之後,就已經下降了幾個量級,傳到前一層的梯度將會變得很小!
加入一條捷徑,
來自xception網路,首先對每乙個通道進行各自的卷積操作,有多少個通道就有多少個過濾器。得到新的通道feature maps之後,這時再對這批新的通道feature maps進行標準的1×1跨通道卷積操作。這種操作被稱為depthwise convolution
depthwise 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...