模型壓縮(3) - ShuffleNet

ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices git

論文地址:Arxiv Paper github

GitHub: Tensorflow, Caffe 算法

   

主要是在Xception的基礎上進一步改進    網絡

Motivation: ide

  • Xception / ResNeXt 這種優化結構對於extremely small network的計算性能欠佳

    由於conv1x1耗時過長(在MobileNet中已驗證) 性能

    受AlexNet的啓發,提出了group convolution,提升conv1x1的計算性能優化

  • Group convolution 的引入有侷限性

    提出了channel shuffle增長了feature channel之間信息的流動性 spa

ShuffleNet units .net

  • 圖(a) ,帶有depthwise conv的bottleneck module

    由三個部分組成:3d

    point wise 1x1 conv + Xception中的depthwise 3x3 conv + point wise 1x1 conv

    前面兩個op組合構成了Xception,最後一個爲了shortcut的channel匹配

  • 圖(b),引入Group conv
1). 考慮conv1x1耗時較長(在MobileNet中已驗證),所以受Alexnet啓發,對conv1x1進行分組計算,
     將第一個point wise conv1x1 替換爲 1x1 group conv
2). 用Group conv使得不一樣Group 的結果中信息隔離,所以增長channel shuffle層,交換信息
3). 接一個Xception 中的depthwise conv3x3
4). 與1)相同,將point wise conv1x1替換爲1x1 group conv,提升computation performance    
 
  • 圖(c),stride = 2的ShuffleNet

    1). shortcut上增長了avg_pooling

    2). 用concat替換element wise add

Channel shuffle原理

   

Reference

輕量級網絡--ShuffleNet論文解讀

ShuffleNet算法詳解

ShuffleNet

相關文章
相關標籤/搜索