論文連結
http://openaccess.thecvf.com/content_cvpr_2018_workshops/papers/w12/Briot_Analysis_of_Efficient_CVPR_2018_paper.pdf
動機
目前有許多關于如何設計高效網絡結構的研究,涉及到各種不同的技巧,但是對高效的網絡結構設計技巧沒有系統性的總結
貢獻
對語義分割領域的網絡設計方法技巧進行總結
網絡結構設計
- 編碼器-譯碼器結構
- Baseline FCN(最簡單的編碼器)
- Cross channel filters
- Cross layer connections
- Wider bank of filters
- Split branching and summation joining
-
Handling scale of objects
空洞卷積
計算量優化技巧
量化:
- 使用tensorflow或Nvidia TensorRT将神經網絡的float32類型計算量化為int8類型的計算,實作加速
- 直接用int8類型計算對神經網絡進行訓練
高效結構設計原則
- 通過限制結構超參數平衡模型大小和準确率:增加網絡深度,減少每一個卷積層輸入的通道數,減小輸入圖檔的分辨率
- 減少備援的卷積核:卷積核分解(一個7x7卷積層分解為3個3x3卷積層, kxk卷積層分解為1xk卷積層和kx1卷積層)
- 通過激活函數校準卷積核(CReLU)
- 使用對稱性校準卷積核(G-CNN)
卷積設計
- 1x1卷積降維,減少卷積的輸入通道數
- Group convolution
- Depth-wise Separable convolution
模型壓縮
- 權重剪枝:将訓練的模型的權重值較小的不重要的連接配接都去掉,然後再對權重剪枝後的模型進行微調
- 濾波器剪枝
- 網絡蒸餾(teacher-student訓練模式)
硬體加速
1.GPU
2. ASICs
3. FPGA
4. SIMD結構
語義分割案例分析
資料集
CamVid
評價名額
Runtime(s), mIoU, per-class IoU
結果
反思
該論文在深度學習相關應用的落地方面能夠提供很多思路。特别是當下神經網絡越做越大,落地時對于推理速度的要求難以滿足,必須尋找合适的方法對網絡推理進行加速,達到實時推理的效果。使用Nvidia TensorRT、FPGA等都是很好的落地政策