DSConv:Efficient convolution operator

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012193416/article/details/88585629

DSConv:Efficient convolution operator

Abstract

分布移位卷积,可以容易的替换为标准神经网络体系结构并且实现较低的存储器使用和较高的计算速度。DSConv将传统的卷积内核分解为两个组件:可变量化内核(VQK)和分布式移位。通过在VQK中仅存储整数值来实现较低的存储器使用和较高的速度,同时通过应用基于内核和基于通道的分布移位来保持和原始卷积核相同的输出。我们在ResNet50和34以及alexnet和mobilenet上的imafnet测试dsconv。将浮点运算替换为整数运算,在卷积内核中实现了高达14倍内存使用量减少,并将运算速度提升了10倍。

1. Introduction

运行卷积所需大部分储存器和计算都花费在卷积层中,DSConv的层设计考虑两点:1.它应该大大提高标准卷积层的存储器效率和速度;2.可在推理和训练时直接用于卷积网络

2. Related work

Memory saving methods(不太适合再训练)

Memory saving and fast network:提高速度和内存效率的一种方法是将权重从fp32数量量化为另一种格式。1-bit的alexnet几乎不存在精度损失

Fast network:这些方法通常旨在通过减少执行的参数和操作的数量来开发快速神经网络结构。Mobilenet 使用depth-wise network,shufflenet 使用信道shuffle 和组卷积降低计算成本

3. The DSConv layer

DSConv通过量化和分布移位来模拟卷积层的行为

可变量化内核(VQK):此张量仅保留可变位长整数值,并且与原始卷积张量具有相同大小的(ch0,chi,k,k),参数值被设置为从原始浮点模型量化,并且一旦设置不能改变,这是DSConv的量化组件。

分布移位:此组件的目的是移动VQK的分布以尝试模仿原始卷积内核的分布。通过使用两个张量转换两个域来实现。第一个张量是内核分布移位器(KDS),他改变每个(1,BLK,1,1)的分布。

例如,给定(128,128,3,3)的原始单精度张量大小,将位大小的超参数设置为2位且块大小设置为64,将保存2位整数的VQK的大小为(128,128,3,3)(量化后的,由单精度变整型),保持FP32编号的内核移位器(KDS)的大小为2*(128,2,3,3),保存Fp32编号的通道移位器的大小为2*(128),在此示例中,卷积内核减少到其原始大小的7%

使用此设置,VQK充当先验,它捕获特定切片应提取的特征类型的本质。

4. 量化程序

量化函数将要量化的网络的比特数作为输入,并将带符号的整数表示来存储

这是通过首先缩放每个卷积层的权重以使得原始权重w的最大绝对值与上面的量化约束的最大值匹配来实现的。再次步骤之后,将所有权重量化为最接近的整数,然后将新权重wq作为整数值存储到存储器中,以便稍后在训练和推理中使用。

Resnet中获取卷积内核块的直方图的结果。得到的权重wr和原始权证w很相似,仅适用3bit用于量化权重和块大小为128

5. 分配转移

分布转移的目的是移动VQK,使得输出和原始权重张量的值是相匹配的,这是通过内核中的分布偏移(KDS)以及通道中的分布偏移(CDS)来完成的,对其进行良好的初始化是有必要的,因为他会使网络最接近最佳值,只有在达到最大精度之前才进行微调。

张量初始值:

KL-Divergence: 内核分布器移位后产生的VQK应该具有与原始权重类似的分布。量化过程仅适用缩放因子来评估VQK的整数值

最小化L2范数:初始化内核移位器张量的值,使得逐元素乘法后的结果尽可能接近原始值。

两种方法效果是一致的

6. 推理优化

首先将它乘以输入张量,而不是移动VQK,这意味着大部分操作将以整数值而不是浮点数计算,根据所使用的硬件,这可以通过8位操作实现2-10倍的加速。使硬件可以利用整数运算而不必使用浮点运算。

给定BLK的块大小,当chi是BLK的倍数时,该方法将执行比其原始对应物少的FP乘法的BLK倍。对于块大小为128,通过简单的将卷积层更改为DSConv,将显著减少2个量级的fp乘法

在执行给定内核中所有卷积的总和之后,将在稍微应用信道分布移位,进一步改善存储器和计算能力,如果模型在卷积运算符之后包括它,则可以将通道移位合并到BN中

7. Training

当应用相当低的比特权重(4比特整数)resnet等网络上不需要任何再训练精度在5%以内。

 

猜你喜欢

转载自blog.csdn.net/u012193416/article/details/88585629