日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

各种卷积

發布時間:2023/12/13 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 各种卷积 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從最開始的卷積層,發展至今,卷積已不再是當初的卷積,而是一個研究方向。在反卷積這篇博客中,介紹了一些常見的卷積的關系,本篇博客就是要梳理這些有趣的卷積結構。

閱讀本篇博客之前,建議將這篇博客結合在一起閱讀,想必會有更深的理解。另外,不管是什么類型的卷積,我們都把它理解成一種運算操作。

  • Group convolution
  • Group convolution是最早應用在2012年Alexnet的雙GPU架構模型中,相當于把channel這一維度均分到兩個GPU,進行分組卷積。如圖所示:

    ?這篇論文是:ImageNet Classification with Deep Convolutional Neural Networks。由圖可見,上下兩個并行的網絡結構只有在部分層中才有信息交互,而且網絡結構一模一樣,這就是Group convolution最早的應用,但是在caffe中經常使用的單機多GPU并行訓練和上述問題存在本質區別,因為Group convolution是指將channel維度細分成多個group,然后再分組進行Convolution,而多GPU的訓練只是一個數據并行分組的方式,其中minibatch和batch之間的關系就是batch=minibatch*GPU_num,這并不存在對channel的分組。

    總之,Group convolution是一種卷積操作,想要切分channel,然后分組卷積,運算上沒有什么特別的地方。

    2.Pointwise convolution

    點積,就是卷積核大小是1*1的,那為啥起名點積呢?就是因為這和向量中的點積運算很類似,舉個例子,一張3通道的feature map,卷積核大小是1*1*3,那它的運算其實就是:Σ卷積核*單通道feature map。

    總之,Pointwise convolution是一種卷積操作,而且是一種特殊的卷積運算,代表著卷積核的大小是1*1。

    3.Separable convolution

    可分離卷積,這種思路其實就是起了個高深的名字,也很常見。也是想在channel維度上改變經典的卷積運算,咋辦呢?經典的卷積核都是k*k*channel大小的,其中channel是上一層的輸出即本層的輸入,這不太好,我們想任意指定一個channel,作為卷積核的大小,這樣并不影響輸入輸出的特征圖的長寬尺寸,僅僅改變了channel這一維度。這就變得很有意思了,同Group convolution不一樣的是,可分離卷積可增加channel維度,而并沒有依賴GPU。

    舉個例子,對于經典的卷積運算,如果說所需的參數量為256*3*3*256=589824。而對于可分離卷積,假設我們指定的卷積核是3*3*4,那首先是256*3*3*4=9216,接下來我們得到了4*256=1024個通道數,但是呢?這并沒有完成,因為還需要下一個過程將channel重新壓縮回256,接著有1024*1*1*256=262144,整個過程就是9216+262144=271360,看看,589824是271360的兩倍多。雖然,這在很多框架上也許未能比較出效果的顯著差異,那是多方面的原因。

    值得一提的是,上面舉的例子可以認為是Separable convolution 和Pointwise convolution結合在一起,事實上就是配套使用的。

    最早的Separable convolution來源于論文:Simplifying ConvNets for Fast Learning,作者用的是k*1和1*k的卷積核,起名為可分離卷積,而本處的可分離卷積來源于另一篇論文:Xception: Deep Learning with Depthwise Separable Convolutions。

    總之,Separable convolution是一種卷積操作,而且是一種特殊的卷積運算,代表著卷積核的channel維度可以自己任意選取。

    4.Depthwise convolution

    深度卷積,這名字又開始很高深了,其實它的意思就是拓展Separable?convolution而來,我們可以讓卷積核的channel維度等于1啊,這樣就是深度卷積,意為在每一個channel上做卷積。值得注意的是,往往Separable convolution和Depthwise convolution是統稱為Depthwise convolution。假設卷積核的shape是[filter_height, filter_width, in_channels, channel_multiplier],區別僅在于channel_multiplier,由于參考同一篇論文,此處將其統一。

    這樣說來,前面的例子中其實就是Depthwise separable convolution = Depthwise convolution + Pointwise convolution,這就是深度可分離卷積的真正內涵。這也就是以下論文的工作:Xception: Deep Learning with Depthwise Separable Convolutions

    總之,Depthwise convolution是一種卷積操作,和Separable convolution一樣,表示對channel維度進行卷積的一種方式。

    5.Dilated convolution

    空洞卷積是解決pixel-wise輸出模型的一種常用的卷積方式。一種普遍的認識是,pooling下采樣操作導致的信息丟失是不可逆的,通常的分類識別模型,只需要預測每一類的概率,所以我們不需要考慮pooling會導致損失圖像細節信息的問題,但是做像素級的預測時(譬如語義分割),就要考慮到這個問題了。那么空洞卷積可以用下圖來說明:

    (a)圖對應3x3的1-dilated convolution,就是典型的卷積(b)圖對應3x3的2-dilated convolution,實際的卷積kernel size還是3x3,但是空洞為1,相當于kernel的size為7x7,圖中只有紅色點的權重不為0,其余都為0,把3*3的感受野增大到了7*7。(c)圖是4-dilated convolution,能達到15x15的感受野。

    也就是以下論文:Multi-scale context aggregation by dilated convolutions

    總之,空洞卷積是卷積運算的一種方式,在于增大了感受野卻不丟失語義信息。

    總結

    以上是生活随笔為你收集整理的各种卷积的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。