模型裁剪與壓縮

2021-09-24 06:23:09 字數 593 閱讀 1884

如何壓縮模型大小與優化加速?

嚴格意義上的剪枝,是將不重要的節點權重,啟用值清0,而不是刪除。其結果只是將模型稀疏化,所以,如果沒有指定特定的稀疏矩陣加速庫,那麼剪枝的加速效果是不明顯的。可以對權重,偏置,啟用值進行剪枝,但是,偏置對一層的貢獻較大,所以,不好對偏置做稀疏化。權重一般是接近0的很小的數,實際上壓縮意義也不大(這個看需求,可以將不重要的權重置0,依情況而定),剪枝主要是對relu類的啟用值進行稀疏化,因為其輸出具有大概率0值(也要注意,如果啟用函式不是這種分布的輸出,那麼壓縮也不明顯)。

剪枝,需要剪枝準則,通常可以針對每個節點,卷積核,通道,塊,調整其稀疏度,然後測試結果,看其對效能的影響,這樣,就可以生成敏感性分析報告,從而確定每個節點,卷積核,通道,塊的敏感度閾值。這裡的稀疏度,用l0範數來定義。

mobile net v2 **認為乙個高效的cnn應該包含以下四點:

1.使用平衡的卷積,即輸入通道數=輸出通道數

2.意識到分組卷積帶來的計算消耗

3.減少網路分支

4.減少element-wise操作(relu / add tensor)

canvas實現的前端壓縮裁剪工具

最近專案中應用到canvas,見識到了canvas技術的強大,突然想到之前用過的開源的裁減庫,大多數都是劃出乙個裁剪框,將座標點和長寬傳到服務端,由後台做裁剪,正好有空,做了個基於canvas的純前端裁剪壓縮工具,支援pc和移動端平台。使用原生的url api 讀取本地選取的檔案 原始檔 使用can...

模型壓縮 剪枝

這篇文章是對自己關於模型壓縮進行學習的總結與歸納。在研究模型壓縮這一塊的內容這麼長時間,發現自己不夠深入,有些混亂,因此希望這篇文章可以讓自己的思路更加清晰。模型壓縮的方法中,包括剪枝,量化,多值網路,模型蒸餾等。其中剪枝的方法,應用的更多,此篇文章主要就說剪枝。剪枝最初是在決策樹學習演算法中,用於...

模型壓縮總結

常用的模型壓縮技術有 1 奇異值分解 singular value decomposition svd 2 網路剪枝 network pruning 使用網路剪枝和稀疏矩陣 3 深度壓縮 deep compression 使用網路剪枝,數位化和huffman編碼 4 硬體加速器 hardware a...