System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种二维卷积的通道扩张量化方法、装置及相关组件制造方法及图纸_技高网

一种二维卷积的通道扩张量化方法、装置及相关组件制造方法及图纸

技术编号:41251481 阅读:8 留言:0更新日期:2024-05-09 23:59
本发明专利技术公开一种二维卷积的通道扩张量化方法、装置及相关组件,不改变已有的对称量化方法,而是在已有的对称量化方法上增加新的操作,对权重中存在特大值的通道能够重复M次,则特大值的幅度可以降至本身的1/M而使得二维卷积的数学不变。由于则特大值的幅度降至本身的1/M会使得权重的对零方差显著降低,从而使得量化损失降低。

【技术实现步骤摘要】

本专利技术属于图像处理领域和神经网络数据处理,具体涉及一种二维卷积的通道扩张量化方法。


技术介绍

1、卷积神经网络(cnn)是一类被广泛应用于图像处理任务中的深度学习模型。而二维卷积(conv2d)是cnn中最为常用的一种卷积操作,其在神经网络中的应用非常广泛。二维卷积主要用于提取图像或视频数据中的空间特征,其卷积核(kernel)与图像的不同区域进行卷积操作,从而生成特征图(feature maps)。二维卷积在图像处理中的应用场景包括但不限于图像增强、超分辨率、目标检测、语义分割等。

2、一般在应用于图像处理的卷积神经网络中,二维卷积的算力占据了卷积神经网络中算力的主要部分,因此在网络部署中,为了降低模型体积,加快推理速度,通常会将fp32或fp16的二维卷积量化为int8,甚至是int4的数据格式进行部署。

3、对于二维卷积量化方法,一般来讲二维卷积在gpu或专用硬件上部署时,通常采用图1所示的对称量化方法,即为特征图分配一个量化缩放系数,在图1中为。同时,为权重中每一个输出通道的张量(tensor)分配一个量化系数,在图1中为,不分配平移系数。

4、在进行模型训练时,会给出fp32或fp16数据格式的特征图和权重,在部署的时候,为特征图和权重分配和缩放系数,其中oc为输出通道数。使用最大值最小值(max-min),kl散度(kl-divergence)或百分比(percentage)算法,计算出这些缩放系数。特征图和权重即可用这些缩放系数,量化为int8或int4;量化后的特征图可表示为,其中f为量化前特征图;量化后的权重tensor可表示为,其中为量化前权重每个输出通道的tensor。

5、但是在对称量化过程中,权重中的值的对零方差越大,权重越难以量化,或者说权重的量化损失越大。二维卷积的权重中可能出现较大的值,使得权重的对零方差非常的大,导致较大的量化损失。即使为量化前权重每个输出通道的tensor分配一个缩放系数,也不能很好的解决这个问题。

6、目前针对量化损失大这个问题,存在以下解决方法:

7、1.在训练过程中,对权重的绝对值进行约束,使得训练出来的权重的值绝对幅度较小,从而使得权重的对零方差较小。但是这种方法需要对模型重新训练,费时费力,同时不保证一定成功。

8、2.将权重中存在较大值的通道单独选出,不做量化,在部署时用存在较大值的通道与特征图中的对应通道使用fp16或更高数据类型做卷积,求得的结果加回其余通道卷积得到的结果中。这种方法虽然能够显著降低权重的量化损失,但拆分int8和fp16的数据会使得存储器中数据排布变的非常不规整,在gpu或专用ai加速硬件上会显著降低推理速度。

9、3.尝试除最大值最小值(max-min),kl散度(kl-divergence)或百分比(percentage)算法之外的其它量化方法求得特征图和权重的缩放系数,有可能起到效果,但不保证一定成功。


技术实现思路

1、本专利技术提供一种二维卷积的通道扩张量化方法、装置及相关组件,不改变已有的对称量化方法,而是在已有的对称量化方法上增加新的操作,来降低权重的对零方差,从而达到降低量化损失的目的。

2、本专利技术所采用的技术方案为:

3、一种二维卷积的通道扩张量化方法,步骤如下:

4、s1,设定要扩张通道的总扩张次数n;

5、所述总扩张次数n为正整数且n不超过输入特征通道数或权重的输入通道数的一半。

6、s2,根据权重确定要扩张的通道序号及每个通道序号对应的扩张次数;

7、在绝对值权重中寻找最大值及最大值出现次数,寻找次数为总扩张次数,在进行下一寻找周期时,所寻找的绝对值权重中需要进行数据替换,替换的位置是当前寻找周期最大值对应的输入通道序号,替换数据是该输入通道序号数据除以最大值出现次数加1;最大值出现次数就是要扩张次数。

8、也就是先对权重取绝对值得到绝对值权重a,然后复制一次绝对值权重a记为权重b,接着选出权重b的最大值,获得该最大值对应的输入通道序号以及最大值出现次数;然后,将权重b出现最大值的输入通道数据进行替换更新,替换数据是绝对值权重a中该输入通道序号对应的数据除以最大值出现次数加1,重复寻找最大值及最大值对应的输入通道序号和最大值出现次数;直至重复n次,每个最大值出现次数不为0的输入通道就是要扩张的通道,该输入通道序号对应的最大值出现次数就是要扩张次数;

9、具体步骤为:

10、s21,获取绝对值权重a;

11、把权重中每个元素都取绝对值,得到绝对值权重a;所述权重是二维卷积权重,二维卷积权重的形状为[oc,ic,h,w],其中,oc为输出通道的数量,ic为输入通道的数量,h为卷积核的高度,w为卷积核的宽度;

12、s22,复制绝对值权重a得到权重b,权重b的形状也为[oc,ic,h,w];

13、s23,将权重b中每个输入通道出现最大值的次数初始化为0;

14、s24,选出权重b的最大值,得到该最大值对应的输入通道序号,并令该输入通道对应的最大值出现次数加1;

15、s25,更新权重b;

16、将权重b中最大值对应的输入通道数据进行替换,其他输入通道数据不变;替换数据是绝对值权重a中该输入通道序号对应的输入通道数据除以该输入通道最大值出现次数加1;

17、s26,重复步骤s24-s25,直至重复n次,所有最大值出现次数不为0的输入通道就是要扩张的通道,每个要扩张的通道对应的最大值出现次数就是要扩张的次数。

18、s3,权重进行通道扩张;

19、对权重所有需要扩张的通道分别进行扩张,每个需要扩张的通道在进行扩张时,先将该输入通道数据缩放,然后再复制扩张次数次并添加到原权重张量的固定位置,缩放比例为该输入通道对应的扩张次数加1;

20、或者每个需要扩张的通道在进行扩张时,先将该输入通道数据复制扩张次数次并添加到原权重张量的固定位置,然后再对该输入通道数据以及复制的输入通道数据都进行缩放,缩放比例为该输入通道对应的扩张次数加1;

21、s4,将扩张后的权重量化使用量化缩放系数量化为int8或int4的权重;量化算法可采用max,kl divergence,percentage算法。

22、对于给定的二维卷积网络,权重扩张后不会再改变,所以可以先进行量化,量化后可以直接保存,只需改变输入特征,对输入特征进行处理。

23、s5,输入特征进行通道扩张和量化;

24、输入特征先扩张再量化或者输入特征先量化再扩张;

25、输入特征要扩张的通道序号、扩张次数与权重要扩张的通道序号和扩张次数相同;

26、进行输入特征通道扩张时,将要扩张的输入通道数据复制扩张次数次后添加到输入特征张量后,且复制的输入通道数据添加位置与该扩张通道对应的复制权重本文档来自技高网...

【技术保护点】

1.一种二维卷积的通道扩张量化方法,其特征在于,步骤如下:

2.根据权利要求1所述的二维卷积的通道扩张量化方法,其特征在于:反量化后还包括网络精度检测,若扩张量化后二维卷积的网络精度不满足要求,则增大总扩张次数N,并重复步骤S1-S7,直至网络精度满足要求。

3.根据权利要求1或2所述的二维卷积的通道扩张量化方法,其特征在于:在步骤S2中,是先对权重取绝对值得到绝对值权重A,然后复制一次绝对值权重A记为权重B,接着选出权重B的最大值,获得该最大值对应的输入通道序号以及最大值出现次数;然后,将权重B出现最大值的输入通道数据进行替换更新,替换数据是绝对值权重A中该输入通道序号对应的数据除以最大值出现次数加1,重复寻找最大值及最大值对应的输入通道序号和最大值出现次数;直至重复N次,每个最大值出现次数不为0的输入通道就是要扩张的通道,该输入通道序号对应的最大值出现次数就是要扩张次数。

4.根据权利要求3所述的二维卷积的通道扩张量化方法,其特征在于,步骤S2的具体步骤为:

5.根据权利要求4所述的二维卷积的通道扩张量化方法,其特征在于:在步骤S3中,对权重所有需要扩张的通道分别进行扩张,每个需要扩张的通道在进行扩张时,先将该输入通道数据缩放,然后再复制扩张次数次并添加到原权重张量的固定位置,缩放比例为该输入通道对应的扩张次数加1;或者每个需要扩张的通道在进行扩张时,先将该输入通道数据复制扩张次数次并添加到原权重张量的固定位置,然后再对该输入通道数据以及复制的输入通道数据都进行缩放,缩放比例为该输入通道对应的扩张次数加1。

6.根据权利要求5所述的二维卷积的通道扩张量化方法,其特征在于:在步骤S6中,当输入特征更换时,量化后的权重可以为当前二维卷积模型第一次量化的权重,也可以是重复步骤S1-S5重新在线量化的权重。

7.根据权利要求1所述的二维卷积的通道扩张量化方法,其特征在于:所述总扩张次数N为正整数且N不超过输入特征通道数或权重的输入通道数的一半。

8.一种二维卷积的通道扩张量化系统,其特征在于:包括总扩张次数设定模块、扩张通道及扩张次数确定模块、权重扩张模块、输入特征扩张模块、量化模块、卷积模块、反量化模块和精度判断模块;

9.一种计算机设备,包括存储器、处理器和存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7中任一所述的二维卷积的通道扩张量化方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使处理器执行如权利要求1-7中任一所述的二维卷积的通道扩张量化方法。

...

【技术特征摘要】

1.一种二维卷积的通道扩张量化方法,其特征在于,步骤如下:

2.根据权利要求1所述的二维卷积的通道扩张量化方法,其特征在于:反量化后还包括网络精度检测,若扩张量化后二维卷积的网络精度不满足要求,则增大总扩张次数n,并重复步骤s1-s7,直至网络精度满足要求。

3.根据权利要求1或2所述的二维卷积的通道扩张量化方法,其特征在于:在步骤s2中,是先对权重取绝对值得到绝对值权重a,然后复制一次绝对值权重a记为权重b,接着选出权重b的最大值,获得该最大值对应的输入通道序号以及最大值出现次数;然后,将权重b出现最大值的输入通道数据进行替换更新,替换数据是绝对值权重a中该输入通道序号对应的数据除以最大值出现次数加1,重复寻找最大值及最大值对应的输入通道序号和最大值出现次数;直至重复n次,每个最大值出现次数不为0的输入通道就是要扩张的通道,该输入通道序号对应的最大值出现次数就是要扩张次数。

4.根据权利要求3所述的二维卷积的通道扩张量化方法,其特征在于,步骤s2的具体步骤为:

5.根据权利要求4所述的二维卷积的通道扩张量化方法,其特征在于:在步骤s3中,对权重所有需要扩张的通道分别进行扩张,每个需要扩张的通道在进行扩张时,先将该输入通道数据缩放,然后再复制扩张次数次并添加到原权重张量的固定位置,缩放比例为该输入通...

【专利技术属性】
技术研发人员:张浩张磊
申请(专利权)人:瀚博半导体上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1