Sparse-Winograd CNN——权重剪枝与Winograd的结合

Sparse-Winograd CNN结合Winograd快速卷积算法和网络剪枝,通过在Winograd域引入ReLU并进行权重剪枝,实现模型的稀疏加速。尽管该算法在实现3x3 Conv2D(stride=1)的CUDA自定义OP中表现出优势,但存在局限性,如依赖pooling进行降采样,不支持其他尺寸的Conv2D,且需要从头训练。在Resnet18上进行实验时,使用TensorPack平台进行训练。论文和代码可在提供的链接中获取。

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值