Sparse-Winograd CNN——權重剪枝與Winograd的結合

Winograd快速卷積算法,能夠實現3x3或5x5 Conv2D的有效加速,具體可參考Intel的介紹:https://ai.intel.com/winograd-2/

"Efficient Sparse-Winograd Convolutional Neural Networks"這篇文章將ReLU引入到Winograd域,獲得了Activations在Winograd域的動態稀疏度,並在Winograd域對權重剪枝,獲得了權重在Winograd域的靜態稀疏度,進而將Winograd變換與網絡剪枝相結合,有效實現了稀疏加速:

該算法的優點:用CUDA自定義了底層TensorFlow OP,支持3x3 Conv2D(stride=1);缺點:主要存在一定的侷限性,首先需要藉助pooling實現降採樣,其次暫不支持其他尺寸的Conv2D,且權重定義在winograd域,不方便預訓練模型的使用,通常需要train from scratch(裸訓),收斂速度較慢。

基於Sparse-Winograd CNN,Resnet18在ImageNet 2012上的訓練過程如下(TensorPack作爲訓練平臺):

詳細內容請參考如下鏈接:

Paper地址:https://arxiv.org/abs/1802.06367

GitHub地址:https://github.com/xingyul/Sparse-Winograd-CNN

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章