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作为训练平台):

Sparse-Winograd CNN——权重剪枝与Winograd的结合_第1张图片

详细内容请参考如下链接:

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

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

你可能感兴趣的:(深度学习,模型压缩)