【技术实现步骤摘要】
一种卷积和池化合并的优化方法
[0001]本专利技术涉及图像处理
,特别涉及一种卷积和池化合并的优化方法。
技术介绍
[0002]集成电路技术日益成为技术发展的焦点,芯片厂商纷纷开发自己的芯片。而在芯片应用中,根据不同的应用场景,在各自的芯片设计中也会产生各自的需求问题。例如,北京君正集成电路股份有限公司(以下简称:北京君正)生产的芯片,其中的北京君正T30、T31型号的芯片,其寄存器是128位寄存器,并且寄存器个数是有限的,一共32个寄存器,使用现有技术时如果超过32个,将会导致前面加载的寄存器数据存储到内存中,后面处理再使用时,将存储的数据再重新加载,导致效率很低。因而在优化设计中势必要考虑寄存器个数问题。
[0003]因此,现有技术存在的缺陷在于:
[0004]在寄存器个数有限的情况下,一张特征图卷积计算后,将结果保存,并生成新的特征图,将新的特征图作为输入进行池化处理,处理后结果再保存一整新的特征图。这种处理,进行了两次加载数据,两次保存数据,造成了时间上的浪费。
[0005]另外,现有技术中的常用术语如下:
[0006]1、simd指令:单指令流多数据流,即一次运算指令可以执行多个数据流,这样可以提高程序的运算速度。更通俗理解,就是一种矢量(向量)的计算。不同芯片,具体指令集不同。
[0007]2、特征图:输入数据通过卷积计算后得到的结果称之为特征图(或输出数据),数据通过全连接后生成的结果也称为特征图(或输出数据)。特征图大小一般表示为长
×
...
【技术保护点】
【技术特征摘要】
1.一种卷积和池化合并的优化方法,其特征在于,所述方法包括:S1,量化与池化函数分析:S1.1,设卷积计算初步结果为a,量化相乘系数为b,第一次移位系数为shift_left,第二次移位系数为shift_right,最终结果为res,公式如下:a
max
=max(a,0)
ꢀꢀꢀꢀ
(1)ab=a
max
*b>>(15
‑
shift_left)
ꢀꢀꢀꢀ
(2)res0=round(ab>>shift_hight)
ꢀꢀꢀꢀ
(3)res=min(res0,15)
‑8ꢀꢀꢀꢀ
(4)S1.2,对上面的公式进行分析,自变量为a,其他参数shift
‑
left、shift_right为给定的常量,则有公式(1)(2)(3)都是递增函数,而min(res0,15)也是增函数,所以公式(4)是递增函数,那么由公式(1)至(4)得到的res是关于a的一个递增函数,即量化处理是一个处理递增函数的过程;S2,优化处理方法:先对卷积计算初步结果进行池化处理,再使用量化处理对池化结果进行量化处理。2.根据权利要求1所述的一种卷积和池化合并的优化方法,其特征在于,所述方法中的池化处理,是比较同一个通道的几个数据,选择最大的一个数据。3.根据权利要求2所述的一种卷积和池化合并的优化方法,其特征在于,所述方法使用池化处理是采用最大池化,并且池化核是2X2,步长是2。4.根据权利要求3所述的一种卷积和池化合并的优化方法,其特征在于,所述步骤S2进一步包括:S2.1,优化处理中池化处理采用2X2的核,步长为2的池化;设量化处理模块为vrd=quantization(vrs,vrt),其中vrs、vrt为卷积计算初步结果寄存器,vrs、vrt中的数据是量化前且只是卷积计算累加和的结果,vrs、vrt每个存储的是8个16比特的数据;vrd是生成的结果,存储的是16个8比特的数据;S2.2,根据特征图的宽度和高度,进行池化和量化处理,实现卷积运算和池化运算的整合:其中,设卷积计算初步结果为sum_0、sum_1、sum_2、sum_3、sum_4、sum_5、sum_6、sum_7,这些参数均为存储8个16bit的寄存器;特征图深度是16的倍数,每次处理都是16的倍数方式处理,sum_0和sum_1、sum_2和sum_3、sum_4和sum_5、sum_6和sum_7,分别代表处理的16个数据;卷积计算初步结果看作一个特征图,在宽度和高度上,两个步长才会生成一个池化后的一个宽度和一个高度的结果。5.根据权利要求4所述的一种卷积和池化合并的优化方法,其特征在于,所述步骤S2.2进一步包括:a)特征图的宽度和高度能被2整除的部分:设卷积计算初步结果的特征图宽度wi高度hi上取值,则有sum_0和sum_1;宽度wi+1高度hi上取值,则有sum_2和sum_3;宽度wi高度hi+1上取值,则有sum_4和sum_5;
宽度wi+1高度hi+1上取值,则有sum_6和sum_7;池化处理:比较sum_0、sum_2,选择出其中一个大的数据,存放到sum_0中;比较sum_0、sum_4,选择出其中一个大的数据,存放到sum_0中;比较sum_0、sum_6,选择出其中一个大的数据,存放到sum_0中;比较sum_1、sum_3,选择出其中一个大的数据,存放到sum_0中;比较sum_1、sum_5,选择出其中一个大的数据,存放到sum_0中;比较sum_1、sum_7,选择出其中一个大的数据,存放到sum_0中;量化处理:使用量化函数模块,对sum_0、sum_1进行量化处理,并将处理的结果存放到sum_0,表示为:sum_0=quantization(sum_0,sum_1),其中,输入sum_0、sum_1为卷积计算初步结果寄存器,sum_0、sum_1中的数据是量化前且只是卷积计算累加和的结果,sum_0、sum_1每个存储的是8个16比特的数据;输出sum_0是生成的结果,存储的是16个8比特的数据;b)特征图的宽度被2整除后的余数部分,高度是被2整除的部分:此时在卷积计算初步结果的特征图宽度wi高度hi上取值,则有sum_0和sum_1;宽度wi高度hi+1上取值,则有sum_4和sum_5;比较sum_0、sum_4,选择出其中一个大的数据,存放到sum_0中;比较sum_1、sum_5,选择出其中一个大的数据,存放到sum_0中;量化处理:使用量化函数模块,对sum_0、sum_1进行量化处理,并将处理的结果存放到sum_0,表示为:sum_0=quantization(sum_0,sum_1);c)特征图的宽度被2整除的部分,高度是被2整除的余数部分:卷积计算初步结果的特征图宽度wi高度hi上取值,则有sum_0和sum_1;宽度wi+1高度hi上取值,则有sum_2和sum_3;池化处理:比较sum_0、sum_2,选择出其中一个大的数据,存放到sum_0中;比较sum_1、sum_3,选择出其中一个大的数据,存放到sum_0中;量化处理:使用量化函数模块,对sum_0、sum...
【专利技术属性】
技术研发人员:田凤彬,于晓静,
申请(专利权)人:北京君正集成电路股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。