一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种卷积过程的简化方法、装置、设备及存储介质与流程

2022-07-16 15:29:01 来源:中国专利 TAG:


1.本发明涉及神经网络硬件加速器领域,尤其是一种卷积过程的简化方法、装置、设备及存储介质。


背景技术:

2.现有在卷积的硬件加速过程中,需要保留计算时的矩阵元素的正负符号,因此为了计算有符号矩阵的乘法,通常将矩阵中的有符号数分类成非负数和负数,在两套独立的硬件系统中分别执行对两类数的卷积运算,在推挽系统中将两个结果结合,得到最终结果。但是这样的方式在增加了一倍的硬件资源以及增加了一倍的卷积次数,意味着增加了额外的制造成本和占用面积,这种方案将会对系统的集成度造成不小的损失,因此需要寻求解决方案。


技术实现要素:

3.有鉴于此,为了解决上述技术问题的至少之一,本发明的目的是提供一种卷积过程的简化方法、装置、设备及存储介质,减少卷积次数、节省硬件资源以及制造成本。
4.本发明实施例采用的技术方案是:
5.一种卷积过程的简化方法,包括:
6.获取卷积核矩阵和待操作矩阵;所述待操作矩阵的待操作元素具有非负性;
7.对所述卷积核矩阵进行分解处理,得到非负的第一分解矩阵与非负的第二分解矩阵的差;
8.根据所述第一分解矩阵与所述待操作矩阵进行第一卷积,得到第一卷积结果,并根据所述第二分解矩阵与所述待操作矩阵进行第二卷积,得到第二卷积结果;
9.根据所述第一卷积结果以及所述第二卷积结果进行差分处理,得到真实卷积结果。
10.进一步,所述卷积核矩阵包括若干个卷积核元素,所述第二分解矩阵包括若干相同的第二分解元素;所述对所述卷积核矩阵进行分解处理,得到非负的第一分解矩阵与非负的第二分解矩阵的差,包括:
11.计算每一所述卷积核元素的绝对值并确定最大的绝对值;
12.根据最大的绝对值确定所述第二分解元素的常数值;所述常数值大于等于最大的绝对值;
13.根据所述常数值对所述卷积核矩阵进行分解处理,得到非负的第一分解矩阵与非负的第二分解矩阵的差。
14.进一步,所述第二分解矩阵包括若干相同的第二分解元素;所述对所述卷积核矩阵进行分解处理,得到非负的第一分解矩阵与非负的第二分解矩阵的差,包括:
15.当所述卷积核矩阵经过归一化处理所得到,确定所述第二分解元素的数值为1;
16.根据数值为1的第二分解元素对所述卷积核矩阵进行分解处理,得到非负的第一
分解矩阵与非负的全1矩阵的差。
17.进一步,所述根据所述第一卷积结果以及所述第二卷积结果进行差分处理,得到真实卷积结果,包括:
18.计算所述第一卷积结果与所述第二卷积结果的差值,得到真实卷积结果。
19.进一步,所述根据所述第一分解矩阵与所述待操作矩阵进行第一卷积,得到第一卷积结果,并根据所述第二分解矩阵与所述待操作矩阵进行第二卷积,得到第二卷积结果,包括:
20.将所述第一分解矩阵、所述待操作矩阵以及所述第二分解矩阵输入至矩阵乘法加速器中,所述矩阵乘法加速器包括单个忆阻器阵列;所述单个忆阻器阵列用于根据所述第一分解矩阵与所述待操作矩阵进行第一卷积,得到第一卷积结果,并根据所述第二分解矩阵与所述待操作矩阵进行第二卷积,得到第二卷积结果。
21.进一步,所述矩阵乘法加速器还包括外围电路,所述根据所述第一卷积结果以及所述第二卷积结果进行差分处理,得到真实卷积结果,包括:
22.通过所述外围电路接收所述单个忆阻器阵列输出的所述第一卷积结果以及所述第二卷积结果,并通过所述外围电路计算所述第一卷积结果与所述第二卷积结果的差值,得到真实卷积结果。
23.本发明实施例还提供一种卷积过程的简化装置,包括:
24.获取模块,用于获取卷积核矩阵和待操作矩阵;所述待操作矩阵的待操作元素具有非负性;
25.分解模块,用于对所述卷积核矩阵进行分解处理,得到非负的第一分解矩阵与非负的第二分解矩阵的差;
26.矩阵乘法加速器,用于根据所述第一分解矩阵与所述待操作矩阵进行第一卷积,得到第一卷积结果,并根据所述第二分解矩阵与所述待操作矩阵进行第二卷积,得到第二卷积结果;根据所述第一卷积结果以及所述第二卷积结果进行差分处理,得到真实卷积结果。
27.进一步,所述矩阵乘法加速器包括单个忆阻器阵列以及与所述单个忆阻器阵列连接的外围电路;所述单个忆阻器阵列用于根据所述第一分解矩阵与所述待操作矩阵进行第一卷积,得到第一卷积结果,并根据所述第二分解矩阵与所述待操作矩阵进行第二卷积,得到第二卷积结果;所述外围电路用于根据所述第一卷积结果以及所述第二卷积结果进行差分处理,得到真实卷积结果。
28.本发明实施例还提供一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现所述方法。
29.本发明实施例还提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现所述方法。
30.本发明的有益效果是:通过获取卷积核矩阵和待操作矩阵,对所述卷积核矩阵进行分解处理,得到非负的第一分解矩阵与非负的第二分解矩阵的差,根据所述第一分解矩阵与所述待操作矩阵进行第一卷积,得到第一卷积结果,并根据所述第二分解矩阵与所述
待操作矩阵进行第二卷积,得到第二卷积结果,根据所述第一卷积结果以及所述第二卷积结果进行差分处理,得到真实卷积结果,相当于在原有卷积次数的基础上增加了一次第二卷积,有利于减少卷积次数;同时,不需要额外增加一倍的硬件资源,有利于节省硬件资源、制造成本以及占用面积。
附图说明
31.图1为本发明卷积过程的简化方法的步骤流程示意图;
32.图2为本发明具体实施例矩阵乘法加速器的示意图;
33.图3为本发明具体实施例卷积过程的示意图。
具体实施方式
34.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
35.本技术的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
36.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
37.如图1所示,本发明实施例提供一种卷积过程的简化方法,包括步骤s100-s400:
38.s100、获取卷积核矩阵和待操作矩阵。
39.本发明实施例中,进行卷积时卷积层可能具有若干个不同的卷积核(或者称为卷积核矩阵)ki,i=1,2,

,n,n为卷积层中互不相同卷积核(卷积核矩阵)的数量。可选地,每一卷积核矩阵中包括若干个卷积核元素,待操作矩阵具有若干个待操作元素,而待操作矩阵m在输入层中通常是包含图像或者语音的原始信息矩阵,或者在隐藏层中通常是在经由上一层的非线性操作后得到的结果矩阵,因此待操作矩阵m中的待操作元素都具有非负性。
40.s200、对卷积核矩阵进行分解处理,得到非负的第一分解矩阵与非负的第二分解矩阵的差。
41.本发明实施例中,第一分解矩阵中的若干元素记为第一分解元素,第二分解矩阵中的若干元素记为第二分解元素。
42.可选地,步骤s200可以包括步骤s210或者s220:
43.s210、当卷积核矩阵经过归一化处理所得到,确定第二分解元素的数值为1;根据数值为1的第二分解元素对卷积核矩阵进行分解处理,得到非负的第一分解矩阵与非负的
全1矩阵的差。
44.本发明实施例中,卷积核矩阵可以为事先经过归一化处理的矩阵,卷积核矩阵ki中的卷积核元素满足取值范围[-1,1],此时可以确定第二分解元素的数值为1,即确定第二分解矩阵为全1矩阵,此时根据数值为1的第二分解元素对卷积核矩阵ki进行分解处理,具体公式为:
[0045]ki
=k

i-1=k

i-k
′0[0046]
其中,ki为卷积核矩阵,k
′i为非负的第一分解矩阵,1、k
′0为第二分解矩阵(全1矩阵)。
[0047]
s220、计算每一卷积核元素的绝对值并确定最大的绝对值;根据最大的绝对值确定第二分解元素的常数值;根据常数值对卷积核矩阵进行分解处理,得到非负的第一分解矩阵与非负的第二分解矩阵的差。
[0048]
可选地,当卷积核矩阵未经过归一化处理,此时计算每一卷积核元素的绝对值并确定最大的绝对值,例如最大的绝对值为x1,根据最大的绝对值确定第二分解元素的常数值x2(x2≥x1),即确定第二分解矩阵为全x2的矩阵,此时根据常数值x2对卷积核矩阵ki进行分解处理,具体公式为:
[0049]ki
=k

i-x2=k

i-k
″0[0050]
其中,k
″i为非负的第一分解矩阵,k
″0为第二分解矩阵。需要说明的是,本发明实施例中以卷积核矩阵为事先经过归一化处理的矩阵为例,即以ki=k

i-1=k

i-k
′0为例进行说明,其他实施例中不作具体限定。
[0051]
s300、根据第一分解矩阵与待操作矩阵进行第一卷积,得到第一卷积结果,并根据第二分解矩阵与待操作矩阵进行第二卷积,得到第二卷积结果。
[0052]
可选地,本发明实施例中以神经网络硬件的矩阵乘法加速器进行卷积过程的处理为例进行说明,其他实施例中可以采用其他手段,不作具体限定。
[0053]
本发明实施例中,如图2所示,矩阵乘法加速器包括单个忆阻器阵列201(仅示出部分)以及与单个忆阻器阵列的输出端连接的外围电路202(仅示出部分);x、y代表输入的矩阵中对应位置(x、y)的元素本发明实施例中,将第一分解矩阵、待操作矩阵以及第二分解矩阵输入至矩阵乘法加速器中,具体为输入至单个忆阻器阵列201的输入端中,使得单个忆阻器阵列201根据第一分解矩阵与待操作矩阵进行第一卷积,得到第一卷积结果,并根据第二分解矩阵与待操作矩阵进行第二卷积,得到第二卷积结果。
[0054]
具体地,计算公式为:
[0055]ki
*m=(k

i-k
′0)*m=k
′i*m-r
′0=r

i-r
′0[0056]
其中,*为卷积,ki为卷积核矩阵,k
′i为第一分解矩阵,k
′0为第二分解矩阵(全1矩阵),m为待操作矩阵,r
′i为k
′i*m,代表第一卷积结果,r
′0为k
′0*m,代表第二卷积结果。
[0057]
需要说明的是,如图3所示,将带符号的卷积核矩阵进行分解处理进行卷积,相当于在原有的n个第一分解矩阵k
′i(与原有的卷积核矩阵ki的数量相同)的基础上增加了1个第二分离矩阵k
′0,因此只需要n 1次卷积次数即可以得到第一卷积结果和第二卷积结果,实现将有符号矩阵卷积计算转化为无符号矩阵卷积;其中,k
′i*m进行共n次的卷积(第一卷积),而k
′0*m进行1次的卷积(第二卷积),而现有技术中原有的推挽结构,先将每个卷积核矩阵分解成非负与负两部分,并分别进行卷积,实际上进行了2n次的卷积运算,因此本方案
能够大大减小卷积的次数,节省用于卷积运算的硬件资源、能量消耗、制造成本以及占用面积。另外,本发明实施例的方法适用于二维、三维以及更多维度的矩阵的分解运算,图2中的示例性地以二维矩阵的计算进行说明而不构成限制;本方案保留了波分复用设计,大大提高系统并行性的同时降低了系统的复杂程度。
[0058]
s400、根据第一卷积结果以及第二卷积结果进行差分处理,得到真实卷积结果。
[0059]
可选地,计算第一卷积结果与第二卷积结果的差值,得到真实卷积结果ri,具体地:
[0060]ri
=r

i-r
′0[0061]
其中,r
′i为第一卷积结果,r
′0为第二卷积结果。
[0062]
需要说明的是,差分处理可以通过矩阵乘法加速器的外围电路202执行,具体地:通过外围电路202接收单个忆阻器阵列201输出的第一卷积结果以及第二卷积结果,并通过外围电路202计算第一卷积结果与第二卷积结果的差值,得到真实卷积结果。
[0063]
需要说明的是,在矩阵乘法加速器进行计算的过程中,r
′0作为全1矩阵k
′0的卷积结果,最先被计算出来,可以通过可以外围电路202中设置的电容序列储存或者在经过外围电路202的数模转换模块后由外围电路202的数字内存存储,以供外围电路202的差分模块进行根据第一卷积结果以及第二卷积结果进行差分处理。同时,由于只需要进行n 1次卷积运算,因此只需要设置单个忆阻器阵列201,在原有的单个忆阻器阵列201的基础上,在外围电路202作出针对性的修改,针对最后所需的差分模块做硬件电路的优化,在卷积规模足够大的情况下,使用这个算法可以达到理论上的最小物理计算量,从而能够大大提高系统的整体集成度,减少硬件冗余。
[0064]
如图2所示,而现有方案中,需要另外设置额外忆阻器阵列203(仅示出部分)和额外外围电路204,用以执行负数部分的矩阵卷积,例如现有的卷积过程记为c=a
×
b,则现有的卷积过程可以表示为:
[0065][0066]c
=a

×
b,g-=a-×b[0067]
c=(a
-a-)
×
b=c
-c-[0068]
其中,a为卷积核矩阵,a

为与a规模相同且只包含a中非负元素的矩阵,a-为与a规模相同且只包含a中负元素的矩阵,b为待操作矩阵,c

为非负元素的矩阵的卷积结果,c-为负元素的矩阵的卷积结果,c为最终的卷积结果。可以看到,采用这样的分解,将有符号矩阵a的乘法转化成两个无符号矩阵a

和a-的矩阵乘法(忆阻器阵列通常只能执行无符号数的乘法),实际上将原有矩阵a一分为二,分别输入单个忆阻器阵列201和额外忆阻器阵列203中,进行了两次卷积乘法后将结果进行合并,需要额外忆阻器阵列203进行另外的n次卷积,共进行了2n次卷积,卷积次数和硬件资源都被大大增加,本发明实施例的方案克服了以上缺点,不需要增加额外的硬件资源而造成成本以及占用面积的增加。
[0069]
本发明实施例还提供一种卷积过程的简化装置,包括:
[0070]
获取模块,用于获取卷积核矩阵和待操作矩阵;待操作矩阵的待操作元素具有非负性;
[0071]
分解模块,用于对卷积核矩阵进行分解处理,得到非负的第一分解矩阵与非负的
第二分解矩阵的差;
[0072]
矩阵乘法加速器,用于根据第一分解矩阵与待操作矩阵进行第一卷积,得到第一卷积结果,并根据第二分解矩阵与待操作矩阵进行第二卷积,得到第二卷积结果;根据第一卷积结果以及第二卷积结果进行差分处理,得到真实卷积结果。
[0073]
可选地,矩阵乘法加速器包括单个忆阻器阵列201以及与单个忆阻器阵列201连接的外围电路202;单个忆阻器阵列201用于根据第一分解矩阵与待操作矩阵进行第一卷积,得到第一卷积结果,并根据第二分解矩阵与待操作矩阵进行第二卷积,得到第二卷积结果;外围电路202用于根据第一卷积结果以及第二卷积结果进行差分处理,得到真实卷积结果。
[0074]
上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
[0075]
本发明实施例还提供了一种电子设备,电子设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现前述实施例的卷积过程的简化方法。本发明实施例的电子设备包括但不限于手机、平板电脑、电脑及车载电脑等任意智能终端。
[0076]
上述方法实施例中的内容均适用于本设备实施例中,本设备实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
[0077]
本发明实施例还提供一种计算机可读存储介质,存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现前述实施例的卷积过程的简化方法。
[0078]
本发明实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前述实施例的卷积过程的简化方法。
[0079]
本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0080]
应当理解,在本技术中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0081]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0082]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序的介质。
[0083]
以上,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献