論文筆記——PRUNING FILTERS FOR EFFICIENT CONVNETS


論文地址:https://arxiv.org/abs/1608.08710

主要思想

這篇文章主要講了對filters的裁剪,裁剪方法是計算L1范數,然后裁剪掉較少的,多少取決於加速比。

實現效果

  1. VGG-16 34%加速
  2. ResNet-110 38%加速

具體實現

  1. 對於每一個kernel matrix按列絕對值求和
  2. 對求和結果排序
  3. 裁剪掉m個filters(對應內核矩陣的列),以及對應的輸出(Xi+1層中),它又是下一層的輸入,所以也得去掉對應的輸入filters(對應內核矩陣的行)
  4. 剩余的kernel weights保留

實現細節


在跨越多層裁剪的過程中,可能出現kernel matrix裁剪交叉的情況,兩種處理方法:

  1. Independent pruning 假設藍色是確定要裁剪的,然后計算綠色的L1時,要考慮黃色的值,跟之前的裁剪無關。
  2. Greedy pruning 也就是計算綠色的L1時,不考慮已經被裁剪的黃色值
    結果:
    第二種的准確率輝更高。

殘差網絡的處理:

  1. 第一層隨意裁剪(根據需求),因為它只會影響Xi+1的輸入,但是不會影響最后的輸出。
  2. residual block里面的裁剪需要注意,因為裁剪需要和shortcut layer保持一致,才能累加。
  3. 因為identical feature maps比added residual maps更重要,所以后者的裁剪結果應該由前者決定。

Prune and Retrain 方法

  1. 裁剪所有層后再繼續訓練網絡
  2. 裁剪一層,重新訓練一下
    結果:
    顯然第二種好啊,第一種太暴力了,可能造成無法修復的裁剪


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM