Title | Venue | Type | Code |
---|---|---|---|
Clustering Convolutional Kernels to Compress Deep Neural Networks | ECCV | F | PyTorch |
Abstract
采用聚类的方法,从一小组空间卷积核重构网络。从一个预先训练好的模型开始,我们提取代表采用k-means聚类的二维核心。每个质心替换同一集群中相应的内核,并且我们使用索引表示而不是保存整个内核。
思路
预先训练好的模型,对 kernerl
进行 k-means
聚类的二维核心,同一类中的kernel
内核共享权重,最后维持压缩状态进行fintuning
1 Introduction
-
目前问题
大多数关于网络压缩的研究都是为了找出冗余的权值
[6]和不必要参数
[14,24]。 -
方法操作对象
2D convolution kernels.,二维卷积内核。 -
总述
选择使用一个空间切片的权张量作为一个单位进行压缩。除非另有说明,否则我们将这些2D片表示为内核。与向量量化方法类似[9,34],用一组中心体和每个内核对应的簇群索引
来表示压缩模型。相同索引的内核共享它们的权重。在保持压缩状态的同时,我们通过重量共享来训练模型。还提出了在同一质心重复出现在单层中加速卷积的方法。 -
贡献
- 提出了一种将kmeans聚类算法应用于二维核的方法来压缩和加速CNN。第一个考虑内核冗余空间模式的网络压缩方法
- 的变换不变聚类方法扩展了有效聚类几何变换的核中心数。变换不变性对正则化效果有影响
- 方法普遍适用于各种CNN架构和数据集
2 Related Works
-
网络量化
网络量化是深度神经网络压缩的典型方法之一,重点是减少每个参数的位宽。它的重点是减少代表每个参数的比特数。早期的作品利用了参数的权值共享和索引表示来保存存储。些方法不限制精度,而是通过在相似值之间共享一个完整的精度权重来限制各参数的多样性。另一方面,有人试图限制参数的精度。 -
网络修剪
网络修剪[14,24]旨在从网络中删除不必要的连接。通常通过迭代优化步骤从网络中去除小的权值[12,13]。然而,重量修剪在实践中有几个限制,由于其不规则的结构。
3 Algorithm
-总的加速方式
通过删除红色和蓝色框中重叠内核中的冗余计算来加速CNN。注意,我们同时处理所有的卷积层,而不是单独压缩每一层。
-
两种不同的加速方式
-
聚类效果
绿色方框是聚类的质心,其他的是同一簇下
3.0 K-means clustering of convolution kernels
在3.1节中,我们用k-means聚类的概念来阐述我们的算法。
在第3.2节中,我们描述了一种训练我们的模型的方法。
在第3.3节中,我们证明了该方法可以加速卷积。
最后,在第3.4节中,我们提出了一种可以作为强正则化的高级聚类方法。
具体的论文
4 Experiments
-
总的结果
-
不同模型的加速效果
-
对比试验
拓展阅读
- A Support Vector Method for Clustering
原文地址:A Support Vector Method for Clustering
相关文献
【论文阅读】Clustering Convolutional Kernels to Compress Deep Neural Networks - SuperLab - 博客园
https://www.cnblogs.com/SuperLab/p/10108851.html