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

depthwise快速卷积运算方法及系统与流程

2022-04-13 19:30:13 来源:中国专利 TAG:


1.本发明涉及机器视觉技术领域,尤其涉及depthwise快速卷积运算方法、系统及计算机可读存储介质。


背景技术:

2.在传统的数据流卷积硬件加速设计中,为了考虑通用性(卷积核空间维度的大小可能变化,甚至可能存在1*1的空间维度),往往不会在一个卷积核内的空间维度上进行并行操作,而是在通道维度/多个卷积核间做并行运算(同时计算多个通道内第1个点,然后同时计算多个通道内第2个点
……
)。这在普通卷积(通道数在中间层会非常大)中是高效的做法。但是在depthwise卷积中,每个卷积核只处理一个通道,使得通道方向的并行度被浪费,并且由于在卷积运算使用的硬件资源中,乘法器是占资源(面积、功耗)最大的运算资源。因此乘法器的浪费,往往意味着大量的资源浪费。
3.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

4.本发明的主要目的在于提供一种depthwise快速卷积运算方法、系统及计算机可读存储介质,旨在提高进行depthwise卷积运算对乘法器资源的利用率。
5.为实现上述目的,本发明提供一种depthwise快速卷积运算方法,所述depthwise快速卷积运算方法的步骤包括:
6.获取待卷积矩阵数据;
7.根据数据并行度确定与所述数据并行度对应的若干个目标矩阵数据组;
8.依次将各个所述目标矩阵数据组与所述卷积核进行并行卷积运算,以获取各个所述目标矩阵数据组对应的目标卷积结果;
9.根据所述目标卷积结果确定所述待卷积矩阵对应的目标卷积矩阵数据。
10.可选地,所述根据数据并行度确定与所述数据并行度对应的若干个目标矩阵组的步骤包括:
11.根据卷积核的尺寸确定所述待卷积矩阵数据中与所述尺寸对应的多个子矩阵;
12.根据所述数据并行度将所述子矩阵分成若干个目标矩阵数据组,其中,所述目标矩阵数据组中的子矩阵的矩阵个数与所述数据并行度相等。
13.可选地,所述目标矩阵数据组包括第一目标矩阵数据组,第二目标矩阵数据组至第n目标矩阵数据组,所述依次将各个所述目标矩阵数据组与所述卷积核进行并行卷积运算,以获取各个所述目标矩阵数据组对应的目标卷积结果的步骤包括:
14.将所述第一目标矩阵数据组的各个第一子矩阵与所述卷积核进行并行卷积运算,以获取所述第一目标矩阵数据组对应的第一目标卷积结果组;
15.获取所述第一目标卷积结果组后,将所述第二目标矩阵数据组的各个第二子矩阵
与所述卷积核进行并行卷积运算,以获取所述第二目标矩阵数据组对应的第二目标卷积结果组;
16.依次进行并行卷积运算,以获取第n目标矩阵数据组的第n目标卷积结果组;
17.根据所述第一目标卷积结果组、第二目标卷积结果组至第n目标卷积结果组确定为所述目标卷积结果。
18.可选地,所述第一目标卷积结果组包括所述第一目标矩阵数据组中的各个第一子矩阵分别对应的卷积结果,所述第二目标卷积结果组包括所述第二目标矩阵数据组中各个第二子矩阵分别对应的卷积结果,所述第n目标卷积结果组包括所述第n目标矩阵数据组中各个第n子矩阵分别对应的卷积结果。
19.可选地,所述将所述第一目标矩阵数据组的各个第一子矩阵与所述卷积核进行并行卷积运算,以获取所述第一目标矩阵数据组对应的第一目标卷积结果组的步骤包括:
20.在一个时间周期内,确定所述第一目标矩阵数据组对应的第一组数据以及所述卷积核对应的第一权重系数,将所述第一组数据中的各个第一个数据同时与所述第一权重系数进行乘法运算,以获取所述第一组数据对应的第一处理结果,所述第一组数据包括所述第一目标矩阵数据组中的各个第一子矩阵的第一个数据;
21.在获取所述第一处理结果后,提取所述目标矩阵数据组对应的第二组数据以及第二权重系数,将所述第二组数据中的各个第二个数据同时与所述第二权重系数进行乘法运算,以获取所述第二组数据对应的第二处理结果,所述第二组数据包括所述第一目标矩阵数据组中的各个第一子矩阵的第二个数据;
22.依次提取所述目标矩阵组的数据以及获取处理结果,以获取第n处理结果;
23.根据所述第一处理结果、第二处理结果至第n处理结果确定所述第一目标卷积结果组。
24.可选地,所述根据所述第一处理结果、第二处理结果至第n处理结果确定所述第一目标卷积结果的步骤包括:
25.在获取所述第一处理结果以及所述第二处理结果后,将第二处理结果分别叠加至所述第一处理结果中,以更新所述第一处理结果;
26.在获取第三处理结果后,将所述第三处理结果分别叠加至更新后的第一处理结果中,以再次更新所述第一处理结果;
27.依次更新所述第一处理结果;
28.将最后一次更新后的所述第一处理结果确定为所述第一目标卷积结果组。
29.可选地,所述根据所述目标卷积结果确定所述待卷积矩阵对应的目标卷积矩阵数据的步骤包括:
30.根据所述目标卷积结果确定所述待卷积矩阵数据确定各个所述子矩阵对应的卷积结果;
31.根据各个所述子矩阵对应的卷积结果确定所述目标卷积矩阵数据。
32.此外,为实现上述目的,本发明还提供一种depthwise快速卷积运算系统,所述depthwise快速卷积运算系统包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的depthwise快速卷积运算程序,所述depthwise快速卷积运算程序被所述处理器执行时实现如上所述的depthwise快速卷积运算方法的步骤。
33.此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有depthwise快速卷积运算程序,所述depthwise快速卷积运算程序被处理器执行时实现如上所述的depthwise快速卷积运算方法的步骤。
34.本发明实施例提出的一种depthwise快速卷积运算方法、系统及计算机可读存储介质,通过在获取待卷积矩阵数据后,根据并行度确定所述待卷积矩阵数据中的各个目标矩阵数据组,每个所述目标矩阵数据组的矩阵数量与所述数据并行度相等,在确定各个目标矩阵数据组后,依次将各个目标矩阵数据组与卷积核进行并行卷积运算,即同时将一个目标矩阵数据组中各个矩阵与所述卷积核进行并行卷积运算,在计算完一个目标矩阵数据组后,同时将下一个目标矩阵数据组的各个矩阵与所述卷积核进行并行卷积运算,直至完成所有的目标矩阵数据组与所述卷积核的并行卷积运算,进而获取各个所述目标矩阵数据组对应的目标卷积结果,进而根据所述目标卷积结果确定所述待卷积矩阵数据对应的目标卷积数据,本发明实施例通过将各个目标矩阵数据组与所述卷积核进行并行卷积运算,提高了通道方向的并行度的利用率,进而提高了乘法器的资源利用率,并且提高了卷积运算效率。
附图说明
35.图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;
36.图2为本发明depthwise快速卷积运算方法第一实施例的流程示意图;
37.图3为本发明卷积运算装置的架构图;
38.图4为本发明depthwise快速卷积运算方法第一实施例步骤s20的细化流程示意图;
39.图5为本发明depthwise快速卷积运算方法第一实施例获取子矩阵的示例图;
40.图6为本发明depthwise快速卷积运算方法第一实施例获取目标矩阵数据组的示例图;
41.图7为本发明depthwise快速卷积运算方法第一实施例步骤s30的细化流程示意图;
42.图8为本发明depthwise快速卷积运算方法第二实施例步骤s31的细化流程示意图。
43.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
44.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
45.本发明实施例的主要解决方案是:获取待卷积矩阵数据;根据数据并行度确定与所述数据并行度对应的若干个目标矩阵数据组;依次将各个所述目标矩阵数据组与所述卷积核进行并行卷积运算,以获取各个所述目标矩阵数据组对应的目标卷积结果;根据所述目标卷积结果确定所述待卷积矩阵数据对应的目标卷积矩阵数据。
46.如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
47.本发明实施例终端可以是pc,也可以是智能手机、平板电脑、便携计算机等具有处理功能的终端设备。
48.如图1所示,该终端可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
49.本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
50.如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及depthwise快速卷积运算程序。
51.在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的depthwise快速卷积运算程序,并执行以下操作:
52.获取待卷积矩阵数据;
53.根据数据并行度确定与所述数据并行度对应的若干个目标矩阵数据组;
54.依次将各个所述目标矩阵数据组与所述卷积核进行并行卷积运算,以获取各个所述目标矩阵数据组对应的目标卷积结果;
55.根据所述目标卷积结果确定所述待卷积矩阵数据对应的目标卷积矩阵数据。
56.进一步地,处理器1001可以调用存储器1005中存储的depthwise快速卷积运算程序,还执行以下操作:
57.根据卷积核的尺寸确定所述待卷积矩阵数据中与所述尺寸对应的多个子矩阵;
58.根据所述数据并行度将所述子矩阵分成若干个目标矩阵数据组,其中,所述目标矩阵数据组中的子矩阵的矩阵个数与所述数据并行度相等。
59.进一步地,处理器1001可以调用存储器1005中存储的depthwise快速卷积运算程序,还执行以下操作:
60.将所述第一目标矩阵数据组的各个第一子矩阵与所述卷积核进行并行卷积运算,以获取所述第一目标矩阵数据组对应的第一目标卷积结果组;
61.获取所述第一目标卷积结果组后,将所述第二目标矩阵数据组的各个第二子矩阵与所述卷积核进行并行卷积运算,以获取所述第二目标矩阵数据组对应的第二目标卷积结果组;
62.依次进行并行卷积运算,以获取第n目标矩阵数据组的第n目标卷积结果组;
63.根据所述第一目标卷积结果组、第二目标卷积结果组至第n目标卷积结果组确定为所述目标卷积结果。
64.进一步地,处理器1001可以调用存储器1005中存储的depthwise快速卷积运算程序,还执行以下操作:
65.在一个时间周期内,确定所述第一目标矩阵数据组对应的第一组数据以及所述卷积核对应的第一权重系数,将所述第一组数据中的各个第一个数据同时与所述第一权重系数进行乘法运算,以获取所述第一组数据对应的第一处理结果,所述第一组数据包括所述
第一目标矩阵数据组中的各个第一子矩阵的第一个数据;
66.在获取所述第一处理结果后,提取所述目标矩阵数据组对应的第二组数据以及第二权重系数,将所述第二组数据中的各个第二个数据同时与所述第二权重系数进行乘法运算,以获取所述第二组数据对应的第二处理结果,所述第二组数据包括所述第一目标矩阵数据组中的各个第二子矩阵的第二个数据;
67.依次提取所述目标矩阵组的数据以及获取处理结果,以获取第n处理结果;
68.根据所述第一处理结果、第二处理结果至第n处理结果确定所述第一目标卷积结果组。
69.进一步地,处理器1001可以调用存储器1005中存储的depthwise快速卷积运算程序,还执行以下操作:
70.在获取所述第一处理结果以及所述第二处理结果后,将第二处理结果分别叠加至所述第一处理结果中,以更新所述第一处理结果;
71.在获取第三处理结果后,将所述第三处理结果分别叠加至更新后的第一处理结果中,以再次更新所述第一处理结果;
72.依次更新所述第一处理结果;
73.将最后一次更新后的所述第一处理结果确定为所述第一目标卷积结果组。
74.进一步地,处理器1001可以调用存储器1005中存储的depthwise快速卷积运算程序,还执行以下操作:
75.根据所述目标卷积结果确定所述待卷积矩阵数据确定各个所述子矩阵对应的卷积结果;
76.根据各个所述子矩阵对应的卷积结果确定所述目标卷积矩阵数据。
77.参照图2,本发明depthwise快速卷积运算方法第一实施例提供一种depthwise快速卷积运算方法,所述depthwise快速卷积运算方法的步骤包括:
78.步骤s10,获取待卷积矩阵数据;
79.步骤s20,根据数据并行度确定与所述数据并行度对应的若干个目标矩阵数据组;
80.步骤s30,依次将各个所述目标矩阵数据组与卷积核进行并行卷积运算,以获取各个所述目标矩阵数据组对应的目标卷积结果;
81.步骤s40,根据所述目标卷积结果确定所述待卷积矩阵数据对应的目标卷积矩阵数据。
82.在本技术实施例,所述depthwise快速卷积运算方法应用于depthwise快速卷积运算系统,所述depthwise快速卷积运算系统包括输入装置,所述输入装置用于输入所述待卷积矩阵数据,所述depthwise快速卷积运算系统还包括数据预处理装置,所述数据预处理装置用于根据数据并行度确定与所述数据并行度对应的若干个目标矩阵数据组,所述depthwise快速卷积运算系统还包括卷积运算装置,所述卷积运算装置用于依次将各个所述目标矩阵数据组与卷积核进行并行卷积运行,以获取各个所述目标矩阵数据组对应的目标卷积结果,所述卷积运算装置由多个乘法器与累加器组成,参照图3,图3示出了卷积运算装置的架构图,如图3所示,所述卷积运算装置包括8个乘法器和8个累加器,所述8个乘法器用于同时计算8个数据,可以理解的是,所述乘法器与所述累加器的数量可以是用户自定义设置,并且所述乘法器的数量与所述累加器的数量相等,所述累加器与所述乘法器一一对
应。
83.可选地,所述待卷积矩阵数据包括若干个矩阵元素,所述待卷积矩阵数据可以是语音矩阵数据、文本矩阵数据以及图像矩阵数据等。所述语音矩阵数据可以是将语音信息编码到矩阵空间得到,上述的文本矩阵数据可以是将文本信息编码到矩阵空间得到,上述的图像矩阵数据可以是图像本身的像素矩阵,也可以是将图像本身的像素矩阵编码到矩阵空间得到。
84.可选地,所述数据并行度根据硬件资源确定,可选地,所述数据并行度根据所述卷积运算装置的乘法器的数量获取,在所述乘法器的数量为k个时,所述数据并行度为k,可选地,所述数据并行度可以是小于k。
85.可选地,在本技术实施例中,以所述数据并行度为8作举例分析。
86.可选地,根据所述数据并行度确定与所述数据并行度对应的若干个目标矩阵数据组时,每个所述目标矩阵数据组包括8个子矩阵,所述子矩阵根据所述待卷积矩阵数据和卷积核的尺寸确定,目标矩阵数据组的数量由所述待卷积矩阵数据的数据量确定。
87.可选地,参照图4,所述步骤s20包括:
88.步骤s21,根据卷积核的尺寸确定所述待卷积矩阵数据中与所述尺寸对应的多个子矩阵;
89.步骤s22,根据所述数据并行度将所述子矩阵分成若干个目标矩阵数据组,其中,所述目标矩阵数据组中的子矩阵的矩阵个数与所述数据并行度相等。
90.可选地,所述卷积核的尺寸可以是3*3,还可以是5*5,所述卷积核的尺寸可以是用户自定义设置,本技术实施例以卷积核尺寸为3*3作举例分析。
91.可选地,所述子矩阵的尺寸与所述卷积核的尺寸相等,在所述卷积核尺寸为3*3时,所述子矩阵的尺寸为3*3,所述根据卷积核的尺寸确定所述待卷积矩阵数据中与所述尺寸对应的多个子矩阵的具体实施方式为:从所述待卷积矩阵数据的第一行数据的最左侧开始,提取第一个3*3的子矩阵,按照预设步长向右侧移动,提取第二个3*3子矩阵,在所述第一行数据完全提取后,从所述待卷积数据的第二行数据的最左侧开始,依次提取子矩阵,直至所述待卷积矩阵数据中各个矩阵元素均被提取,参照图5,图5示出了确定所述待卷积矩阵数据对应的多个子矩阵的示例图。
92.可以理解的是,所述子矩阵的个数与所述待卷积矩阵数据和所述卷积核的尺寸有关,例如:在所述待卷积矩阵数据的尺寸为6*6,所述卷积核的尺寸为3*3时,所述子矩阵的个数为4*4=16个。
93.可选地,在获取多个所述子矩阵后,根据所述数据并行度将所述子矩阵分成若干个目标矩阵数据组,每个目标矩阵数据组包括多个子矩阵,每个目标矩阵数据组的子矩阵的数量与所述数据并行度相等,例如,所述数据并行度为8,所述子矩阵分别为“dw01,dw02,dw03...dw16”,即所述子矩阵的数量为16个时,可获取16/8=2个目标矩阵数据组,第一个目标矩阵数据组包括“qw01,dw02,dw03...dw08”,第二个目标矩阵数据组包括“qw09,dw10,dw11...dw16”。参照图6,图6示出了获取目标矩阵数据组的示例图。
94.可选地,在获取各个所述目标矩阵数据组后,依次将各个所述目标矩阵数据组与卷积核分别进行并行卷积运算,以获取各个所述目标矩阵数据组对应的目标卷积结果。
95.可以理解的是,在所述待卷积矩阵数据包括至少一个目标矩阵数据组时,例如,所
述目标矩阵数据组包括第一目标矩阵数据组、第二目标矩阵数据组至第n目标矩阵数据组时,所述目标卷积结果包括各个所述目标矩阵数据组分别对应的目标卷积结果。
96.可选地,参照图7,所述s30包括:
97.步骤s31,将所述第一目标矩阵数据组的各个第一子矩阵与所述卷积核进行并行卷积运算,以获取所述第一目标矩阵数据组对应的第一目标卷积结果组;
98.步骤s32,获取所述第一目标卷积结果组后,将所述第二目标矩阵数据组的各个子矩阵与所述卷积核进行并行卷积运算,以获取所述第二目标矩阵数据组对应的第二目标卷积结果组;
99.步骤s33,依次进行并行卷积运算,以获取第n目标矩阵数据组对应的第n目标卷积结果组;
100.步骤s34,根据所述第一目标卷积结果组、第二目标卷积结果组至第n目标卷积结果组确定为所述目标卷积结果。
101.可选地,在所述目标矩阵数据组包括第一目标矩阵数据组、第二目标矩阵数据组至第n目标矩阵数据组时,n根据所述待卷积矩阵数据、卷积核的尺寸以及所述数据并行度确定,例如:在所述待卷积矩阵数据的尺寸为6*6,所述卷积核的尺寸为3*3时,所述数据并行度为8时,所述子矩阵的个数为4*4=16个,此时n为16/8=2。
102.可选地,在所述数据并行度为k时,每个所述目标矩阵数据组包括k个子矩阵,在获取所述第一目标矩阵数据组后,所述第一目标矩阵数据组包括k个第一子矩阵,将所述第一目标矩阵数据组中的k个第一子矩阵同时与所述卷积核作卷积运算,以获取所述第一目标矩阵数据组对应的第一目标卷积结果组。
103.可选地,在获取所述第一目标卷积结果组后,提取所述第二目标矩阵数据组,所述第二目标矩阵数据组包括k个第二子矩阵,将所述k个第二子矩阵同时与所述卷积核作卷积运算,以获取所述第二目标矩阵数据组对应的第二目标卷积结果组。
104.可选地,以此类推,依次调取目标矩阵数据组以及对所述目标矩阵数据组进行并行卷积运算,以获取第n目标矩阵数据组对应的第n目标卷积结果组。
105.可以理解的是,所述第一目标卷积结果组包括所述第一目标矩阵数据组中的各个子矩阵分别对应的卷积结果,所述第二目标卷积结果组包括所述第二目标矩阵数据组中各个子矩阵分别对应的卷积结果,所述第n目标卷积结果组包括所述第n目标矩阵数据组中各个子矩阵分别对应的卷积结果。即所述第一目标卷积结果组包括k个第一子矩阵分别对应的卷积结果,所述第二目标卷积结果组包括k个第二子矩阵分别对应的卷积结果。所述第n目标卷积结果组包括k个第n子矩阵分别对应的卷积结果。
106.可选地,在获取所述第一目标卷积结果组,第二目标卷积结果组至第n目标卷积结果组后,将所述第一目标卷积组、所述第二目标卷积结果组至所述第n目标卷积结果组确定为所述目标卷积结果。
107.可选地,在获取所述目标卷积结果后,根据所述目标卷积结果确定所述待卷积矩阵数据对应的目标卷积矩阵数据,具体地:根据所述目标卷积结果确定所述待卷积矩阵数据中各个所述子矩阵对应的卷积结果,根据各个所述子矩阵对应的卷积结果确定所述目标卷积矩阵数据。
108.可选地,所述目标卷积结果包括各个所述子矩阵对应的卷积结果,在获取所述目
标卷积结果后,根据所述目标卷积结果直接确定各个所述子矩阵对应的卷积结果,进而根据所述各个所述子矩阵对应的卷积结果确定所述目标卷积矩阵数据。
109.在本技术实施例中,根据卷积核的尺寸确定待卷积矩阵数据对应的子矩阵数据,进而根据数据并行度将所述子矩阵数据分为若干个目标矩阵数据组,所述目标矩阵数据组包括第一目标矩阵数据组、第二目标矩阵数据组至第n目标矩阵数据组,每个所述目标矩阵数据组中的子矩阵的矩阵个数与所述数据并行度相等,进而先同时对所述第一目标矩阵数据组的各个第一子矩阵与所述卷积核作卷积运算,进而同时对所述第二目标矩阵数据组的各个第二子矩阵与所述卷积核作卷积运算,进而依次对各个所述目标矩阵数据组中的各个子矩阵与所述卷积核作卷积运算,以获取各个所述目标矩阵数据组对应的目标卷积结果,进而根据所述目标卷积结果确定所述待卷积矩阵数据中各个子矩阵对应的卷积结果,进而根据各个子矩阵对应的卷积结果确定所述待卷积矩阵数据对应的目标卷积矩阵数据,本技术实施例通过将各个目标矩阵数据组与所述卷积核进行并行卷积运算,提高了通道方向的并行度的利用率,进而提高了乘法器的资源利用率,并且提高了卷积运算效率。
110.可选地,参照图8,基于第一实施例,所述步骤s31包括:
111.步骤s311,在一个时间周期内,确定所述第一目标矩阵数据组对应的第一组数据以及所述卷积核对应的第一权重系数,将所述第一组数据中的各个第一个数据同时与所述第一权重系数进行乘法运算,以获取所述第一组数据对应的第一处理结果,所述第一组数据包括所述第一目标矩阵数据组中的各个第一子矩阵的第一个数据;
112.步骤s312,在获取所述第一处理结果后,提取所述目标矩阵数据组对应的第二组数据以及第二权重系数,将所述第二组数据中的各个第二个数据同时与所述第二权重系数进行乘法运算,以获取所述第二组数据对应的第二处理结果,所述第二组数据包括所述第一目标矩阵数据组中的各个第一子矩阵的第二个数据;
113.步骤s313,依次提取所述第一目标矩阵数据组的数据以及获取处理结果,以获取第n处理结果;
114.步骤s314,根据所述第一处理结果、第二处理结果至第n处理结果确定所述第一目标卷积结果组。
115.在本实施例中,在所述卷积核的尺寸为3*3时,所述第一目标矩阵数据组包括k个第一子矩阵,所述第一子矩阵的尺寸均为3*3。所述第一组数据包括k个第一子矩阵各自对应的第一个数据,所述第二组数据包括k个第一子矩阵各自对应的第二个数据,以此类推,第n组数据包括k个第一子矩阵对应的第n个数据,在所述第一子矩阵的尺寸为3*3时,n=9。
116.可选地,所述第一权重系数为所述卷积核对应的第一个权重,所述第二权重系数为所述卷积核对应的第二个权重,以此类推,所述第n权重系数为所述卷积核对应的第n个权重,在所述卷积核的尺寸为3*3时,n=9。
117.可选地,在一个时间周期内,将所述第一组数据的各个第一个数据同时与所述第一权重系数做乘法运算,以同时获取各个所述第一个数据对应的乘积,进而根据各个所述第一个数据对应的乘积确定所述第一处理结果。
118.可选地,在实际运行过程中,在一个时间周期内,将所述第一组数据的各个第一个数据同时与所述第一权重系数做乘法运算的具体实施方式为:将各个所述第一个数据分别输入至对应的乘法器,并向各个所述乘法器同时输入所述第一权重系数,以供各个乘法器
同时对各自输入的第一个数据以及第一权重系数进行乘积运算,以获取各个所述第一个数据对应的乘积。参照图3,所述depthwise快速卷积运算系统包括乘法器,在所述depthwise快速卷积运算系统包括8个乘法器时,所述第一组数据包括8个第一个数据,所述第一处理结果包括8个乘积。
119.可选地,在获取所述第一处理结果后,在下一个时间周期内,提取所述第二组数据以及所述卷积核的第二权重系数,将所述第二组数据对应的各个第二个数据分别输入至对应的乘法器,并向各个所述乘法器同时输入所述第二权重系数,以供各个乘法器同时对各自输入的第二个数据以及第二权重系数进行乘积运算,以获取各个所述第二个数据对应的乘积。
120.以此类推,依次提取第三组数据,第四组数据以及第九组数据,进而依次将第三组数据以及第三权重系数输入到各个乘法器,将第四组数据以及第四权重系数输入到各个乘法器,直到将第九组数据以及第九权重系数输入到各个乘法器中,以获取第三处理结果,第四处理结果至第九处理结果。
121.可选地,如图3所示,所述depthwise快速卷积运算系统还包括累加器,所述根据所述第一处理结果、第二处理结果至第n处理结果确定所述第一目标卷积结果组步骤包括:
122.在获取所述第一处理结果以及所述第二处理结果后,将第二处理结果分别叠加至所述第一处理结果中,以更新所述第一处理结果;
123.在获取第三处理结果后,将所述第三处理结果分别叠加至更新后的第一处理结果中,以再次更新所述第一处理结果;
124.依次更新所述第一处理结果;
125.将最后一次更新后的所述第一处理结果确定为所述第一目标卷积结果组。
126.可选地,在获取所述第一处理结果以及所述第二处理结果后,所述第一处理结果包括各个所述第一子矩阵分别对应的第一个数据的乘积,所述第二处理结果包括各个所述第一子矩阵分别对应的第二个数据的乘积,将所述第二处理结果分别叠加至所述第一处理结果中,例如:在所述乘法器为8个时,所述第一处理结果包括“q011,q021,q031...q08
1”,所述第二处理结果包括“q012,q022,q032...q08
2”,将所述第二处理结果分别叠加至所述第一处理结果为“q012 q011,q022 q021,q032 q031...q08
2
q08
1”。
127.可选地,在一个时间周期内,通过所述乘法器获取所述第一处理结果后,将所述第一处理结果分别输入对应的累加器中,以供所述累加器存储对应的第一处理结果;在下一个时间周期后,通过所述乘法器获取所述第二处理结果后,将所述第二处理结果分别输入到对应的累加器中,以供所述累加器根据所述第二处理结果将所述第二处理结果累加至所述第一处理结果中,以更新所述第一处理结果,并将更新后的所述第一处理结果存储在所述累加器中。
128.可选地,在下一个时间周期,通过乘法器获取所述第三处理结果后,将所述第三处理结果分别叠加至更新后的所述第一处理结果中,以再次更新所述第一处理结果,例如,更新后的所述第一处理结果为“q012 q011,q022 q021,q032 q031...q08
2
q08
1”,所述第三处理结果为“q013,q023,q033...q08
3”,将第三处理结果分别叠加至更新后的第一处理结果为“q013 q012 q011,q023 q022 q021,q033 q032 q031...q083 q08
2
q08
1”。
129.可选地,在每个时间周期内,依次获取对应的处理结果,进而依次将处理结果进行
叠加,以依次更新所述第一处理结果。
130.可选地,将所有处理结果进行叠加后,获取最后一次更新后的所述第一处理结果,进而将最后一次更新后的所述第一处理结果确定为所述第一目标卷积结果组,所述第一目标卷积结果组包括各个所述第一矩阵对应的卷积结果。
131.可选地,在获取所述第一目标卷积结果组后,依照获取所述第一目标卷积结果组的方式依次获取第二目标卷积结果组至第n目标卷积结果组。
132.可选地,在每个时间周期中,同时调用8个乘法器同时对当前提取的数据与卷积核的当前权重系数进行乘积运算,以获取当前处理结果,进而将当前处理结果发送至对应的累加器,以供累加器将当前处理结果叠加至前一次的处理结果中。
133.在本技术实施例中,通过在一个时间周期内,提取各个所述第一矩阵各自对应的第一个数据以及卷积核的第一权重系数,通过乘法器对所述第一个数据以及所述第一权重系数进行并行乘积运算,进而获取第一处理结果,将所述第一处理结果发送至对应的累加器中,进而在下一个时间周期内获取第二个数据以及第二权重系数,通过乘法器对所述第二个数据以及第二权重系数进行并行乘积运算,以获取第二处理结果,进而将第二处理结果发送至所述累加器中,以供所述累加器将所述第二处理结果叠加至所述第一处理结果中,以此类推,在往后的各个时间周期中,依次获取处理结果并依次叠加,以获取最后一次更新的所述第一处理结果,进而将所述第一处理结果确定为所述第一目标矩阵数据组的第一目标卷积结果组,本技术实施例通过利用多个乘法器以及多个累加器,在同一时间周期内,可通过对所述目标矩阵数据组进行并行卷积运算,提高了乘法器的资源利用率,进而提高了depth卷积运算的运算效率。
134.此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有depthwise快速卷积运算程序,所述depthwise快速卷积运算程序被处理器执行时实现如上所述各个实施例的步骤。
135.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
136.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
137.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
138.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

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

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

相关文献