模型壓縮(1) - MobileNet

MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications git

   

論文地址: Arxiv Paper github

Github: Tensorflow, Caffe 網絡

Related work 優化

構建小的、高效網絡的兩種方法spa

  • 壓縮訓練好的模型 shrinking / factorizing / compressing
  • 直接訓練小模型 Flattened networks / Xception / Squeezenet

深度可分離卷積 Depthwise Separable Convolution  .net

圖(a)中的標準卷積 = 圖(b) depthwise conv + 圖(c) 1x1 pointwise conv blog

  • 標準卷積的computation cost:

  cost1 = ic * kh * kw * oc * oh * ow (每一個輸出的像素點要作ic*kh*kw次乘法) ip

  • 優化後卷積的computation cost:

           cost2 = kh * kw * oc * oh * ow + ic * oc * oh * ow (每一個輸出的像素點要作kh*kw次乘法) ci

  • cost2 / cost1 = 1/ic + 1/ (kh * kw) 計算量減小 8 ~9倍 

             MobileNet 對大多數移動終端的CPU指令加速硬件很是友善。 get

    SIMD (single instruction multiple data, 單指令多數據流),可以複製多個操做數,並把它們打包在大型寄存器的一組指令集

   

Network structure and training

  • 將原來左邊的op組合改成右邊的結構

  • 網絡有28層

  • 其中conv1x1的佔總參數的75%,佔總計算時間的 95%

超參數

  • Width multiplier: thinner models

    改變ic和oc,減小特徵圖數量,讓網絡變瘦

    kh * kw * alpha * oc * oh * ow + alpha * ic * alpha * oc * oh * ow

  • Resolution multiplier: reduced representation

    改變輸出圖像的分辨率

    kh * kw * alpha * oc * beta * oh * beta * ow + alpha * ic * alpha * oc * beta * oh * beta * ow

Reference

MobileNet網絡的理解

相關文章
相關標籤/搜索