信息处理方法和装置、存储介质及电子设备与流程

文档序号:33319229发布日期:2023-03-03 19:11阅读:22来源:国知局
信息处理方法和装置、存储介质及电子设备与流程

1.本技术涉及计算机领域,具体而言,涉及一种信息处理方法和装置、存储介质及电子设备。


背景技术:

2.目前,在图像识别时,可以将图像输入到识别模型中,这里的识别模型可以是神经网络模型。识别模型通过从图像中提取特征,得到预测的识别结果。在识别模型内部如果涉及到张量数据流分析,仅支持逐元素操作。对于矩阵相乘后合并的融合计算,可以首先分别对多个小张量输入执行逐元素操作,得到多个小张量输出,再对多个小张量输出执行合并操作,得到一个大张量输出。
3.对于上述信息处理的流程,由于涉及到多个小张量的逐元素操作,如果涉及到矩阵乘法,会进行多次矩阵乘法运算,需要通过多个指令多次调用运算资源,例如,gpu(graphics processing unit,图像处理器)。在每次调用运算资源时,由于每个小张量的矩阵乘法运算的运算量较少,每次资源调用无法充分利用所调用的运算资源,导致运算资源的利用率较低。
4.由此可见,相关技术中的信息处理方法存在由于每次资源调用所进行的运算量过少导致的运算资源的利用率低的技术问题。


技术实现要素:

5.本技术实施例提供了一种信息处理方法和装置、存储介质及电子设备,以至少解决相关技术中的信息处理方法存在由于每次资源调用所进行的运算量过少导致的运算资源的利用率低的技术问题。
6.根据本技术实施例的一个方面,提供了一种信息处理方法,包括:获取一组前置输入矩阵和后置输入矩阵,其中,所述一组前置输入矩阵包括多个前置输入矩阵;在检测到需要分别对所述一组前置输入矩阵中的每个前置输入矩阵与所述后置输入矩阵执行矩阵乘法操作,得到第一组输出矩阵、以及对所述第一组输出矩阵执行行合并操作,得到第一目标输出矩阵的情况下,对所述一组前置输入矩阵执行所述行合并操作,得到目标前置输入矩阵;在目标处理装置中对所述目标前置输入矩阵与所述后置输入矩阵执行所述矩阵乘法操作,得到所述第一目标输出矩阵。
7.根据本技术实施例的另一方面,还提供了一种信息处理装置,包括:第一获取单元,用于获取一组前置输入矩阵和后置输入矩阵,其中,所述一组前置输入矩阵包括多个前置输入矩阵;第一执行单元,用于在检测到需要分别对所述一组前置输入矩阵中的每个前置输入矩阵与所述后置输入矩阵执行矩阵乘法操作,得到第一组输出矩阵、以及对所述第一组输出矩阵执行行合并操作,得到第一目标输出矩阵的情况下,对所述一组前置输入矩阵执行所述行合并操作,得到目标前置输入矩阵;第二执行单元,用于在目标处理装置中对所述目标前置输入矩阵与所述后置输入矩阵执行所述矩阵乘法操作,得到所述第一目标输
出矩阵。
8.作为一种可选的实施方案,所述第一执行单元包括:第一执行模块,所述第二执行单元包括:第二执行模块,其中,所述第一执行模块,用于在第一前置输入矩阵是维度为a1
×
b的矩阵、第二前置输入矩阵是维度为a2
×
b的矩阵、且所述后置输入矩阵是维度为b
×
c的矩阵时,对所述维度为a1
×
b的矩阵和所述维度为a2
×
b的矩阵执行所述行合并操作,得到所述目标前置输入矩阵,其中,所述一组前置输入矩阵包括所述第一前置输入矩阵和所述第二前置输入矩阵,所述目标前置输入矩阵是维度为a
×
b的矩阵,a为大于1的自然数,a=a1+a2,a1、a2、b和c为自然数;所述第二执行模块,用于在所述目标处理装置中对所述维度为a
×
b的矩阵与所述维度为b
×
c的矩阵执行所述矩阵乘法操作,得到所述第一目标输出矩阵,其中,所述第一目标输出矩阵是维度为a
×
c的矩阵。
9.作为一种可选的实施方案,所述装置还包括:第三执行单元,用于在检测到需要对所述第一组输出矩阵中的至少一个输出矩阵执行第一预设操作时,对所述第一目标输出矩阵执行行分裂操作,得到所述第一组分裂矩阵;第四执行单元,用于对所述第一组分裂矩阵中的至少一个分裂矩阵执行所述第一预设操作。
10.作为一种可选的实施方案,所述第三执行单元包括:第三执行模块,用于在第一前置输入矩阵是维度为a1
×
b的矩阵、第二前置输入矩阵是维度为a2
×
b的矩阵、所述后置输入矩阵是维度为b
×
c的矩阵、且所述第一目标输出矩阵是维度为a
×
c的矩阵时,对所述维度为a
×
c的矩阵执行所述行分裂操作,得到第一分裂矩阵和第二分裂矩阵,其中,所述一组前置输入矩阵包括所述第一前置输入矩阵和所述第二前置输入矩阵,所述第一组分裂矩阵包括所述第一分裂矩阵和所述第二分裂矩阵,所述第一分裂矩阵是维度为a1
×
c的矩阵,所述第二分裂矩阵是维度为a2
×
c的矩阵,a为大于1的自然数,a=a1+a2,a1、a2、b和c为自然数。
11.作为一种可选的实施方案,所述装置还包括:第二获取单元,用于获取前置输入矩阵和一组后置输入矩阵,其中,所述一组后置输入矩阵包括多个后置输入矩阵;第五执行单元,用于在检测到需要分别对所述前置输入矩阵与所述一组后置输入矩阵中的每个后置输入矩阵执行所述矩阵乘法操作,得到第二组输出矩阵、以及对所述第二组输出矩阵执行列合并操作,得到第二目标输出矩阵的情况下,对所述一组后置输入矩阵执行所述列合并操作,得到目标后置输入矩阵;第六执行单元,用于在目标处理装置中对所述前置输入矩阵与所述目标后置输入矩阵执行所述矩阵乘法操作,得到所述第二目标输出矩阵。
12.作为一种可选的实施方案,所述第五执行单元包括:第四执行模块,所述第六执行单元包括:第五执行模块,其中,所述第四执行模块,用于在第一后置输入矩阵是维度为b
×
c1的矩阵、第二后置输入矩阵是维度为b
×
c2的矩阵、且所述前置输入矩阵是维度为a
×
b的矩阵时,对所述维度为b
×
c1的矩阵和所述维度为b
×
c2的矩阵执行所述列合并操作,得到所述目标后置输入矩阵,其中,所述一组后置输入矩阵包括所述第一后置输入矩阵和所述第二后置输入矩阵,所述目标后置输入矩阵是维度为b
×
c的矩阵,c为大于1的自然数,c=c1+c2,a、b、c1和c2为自然数;所述第五执行模块,用于在所述目标处理装置中对所述维度为a
×
b的矩阵与所述维度为b
×
c的矩阵执行所述矩阵乘法操作,得到所述第二目标输出矩阵,其中,所述第二目标输出矩阵是维度为a
×
c的矩阵。
13.作为一种可选的实施方案,所述装置还包括:第七执行单元,用于在检测到需要对
所述第二组输出矩阵中的至少一个输出矩阵执行第二预设操作时,对所述第二目标输出矩阵执行列分裂操作,得到所述第二组分裂矩阵;第八执行单元,用于对所述第二组分裂矩阵中的至少一个分裂矩阵执行所述第二预设操作。
14.作为一种可选的实施方案,所述第七执行单元包括:第六执行模块,用于在第一后置输入矩阵是维度为b
×
c1的矩阵、第二后置输入矩阵是维度为b
×
c2的矩阵、所述前置输入矩阵是维度为a
×
b的矩阵、且所述第二目标输出矩阵是维度为a
×
c的矩阵时,对所述维度为a
×
c的矩阵执行所述列分裂操作,得到第三分裂矩阵和第四分裂矩阵,其中,所述一组后置输入矩阵包括所述第一后置输入矩阵和所述第二后置输入矩阵,所述第二组分裂矩阵包括所述第三分裂矩阵和所述第四分裂矩阵,所述第三分裂矩阵是维度为a
×
c1的矩阵,所述第四分裂矩阵是维度为a
×
c2的矩阵,c为大于1的自然数,c=c1+c2,a、b、c1和c2为自然数。
15.作为一种可选的实施方案,所述第二执行单元包括:第七执行模块,用于在图像处理器gpu中对所述目标前置输入矩阵与所述后置输入矩阵执行所述矩阵乘法操作,得到所述第一目标输出矩阵,其中,所述目标处理装置包括所述gpu。
16.作为一种可选的实施方案,所述第一获取单元包括:获取模块,用于在目标预测模型中待处理的一组多维矩阵中获取所述一组前置输入矩阵,并在所述目标预测模型中待处理的目标多维矩阵中获取所述后置输入矩阵,其中,所述目标预测模型用于根据所述一组多维矩阵和所述目标多维矩阵,确定预测出的目标对象。
17.作为一种可选的实施方案,所述获取模块包括:获取子模块,所述第一执行单元包括:第八执行模块,所述第二执行单元包括:第九执行模块,其中,所述获取子模块,用于在所述一组多维矩阵包括维度为d
×
a1
×
b的矩阵以及维度为d
×
a2
×
b的矩阵、且所述目标多维矩阵是维度为d
×b×
c的矩阵中,在所述一组多维矩阵中获取d个维度为a1
×
b的第一前置输入矩阵以及d个维度为a2
×
b的第二前置输入矩阵,并在所述目标多维矩阵中获取d个维度为b
×
c的所述后置输入矩阵,其中,d为大于1的自然数,a为大于1的自然数,a=a1+a2,a1、a2、b和c为自然数;所述第八执行模块,用于分别对所述d个维度为a1
×
b的第一前置输入矩阵以及所述d个维度为a2
×
b的第二前置输入矩阵执行所述行合并操作,得到d个所述目标前置输入矩阵,其中,所述目标前置输入矩阵是维度为a
×
b的矩阵,每个所述目标前置输入矩阵是对一个所述第一前置输入矩阵和一个所述第二前置输入矩阵执行所述行合并操作所得到的矩阵;所述第九执行模块,用于在所述目标处理装置中分别对d个所述目标前置输入矩阵和d个所述后置输入矩阵依次执行所述矩阵乘法操作,得到d个维度为a
×
c的所述第一目标输出矩阵,其中,每个所述第一目标输出矩阵是对一个所述目标前置输入矩阵和一个所述后置输入矩阵执行所述矩阵乘法操作所得到的矩阵。
18.作为一种可选的实施方案,所述装置还包括:第一调整单元,用于在检测到第一预测模型中的模型结构用于分别对所述一组前置输入矩阵中的每个前置输入矩阵与所述后置输入矩阵执行矩阵乘法操作,得到第一组输出矩阵、以及对所述第一组输出矩阵执行行合并操作,得到所述第一目标输出矩阵的情况下,对所述第一预测模型中的模型结构进行调整,得到第二预测模型,其中,所述第二预测模型中的模型结构用于对所述一组前置输入矩阵执行所述行合并操作,得到目标前置输入矩阵,并对所述目标前置输入矩阵与所述后置输入矩阵执行所述矩阵乘法操作,得到所述第一目标输出矩阵;其中,所述目标处理装置
用于在所述第二预测模型中对所述目标前置输入矩阵与所述后置输入矩阵执行所述矩阵乘法操作,得到所述第一目标输出矩阵。
19.作为一种可选的实施方案,所述装置还包括:第二调整单元,用于在检测到第三预测模型中的模型结构用于分别对所述前置输入矩阵与所述一组后置输入矩阵中的每个后置输入矩阵执行所述矩阵乘法操作,得到第二组输出矩阵、以及对所述第二组输出矩阵执行列合并操作,得到第二目标输出矩阵的情况下,对所述第三预测模型中的模型结构进行调整,得到第四预测模型,其中,所述第四预测模型中的模型结构用于对所述一组后置输入矩阵执行所述列合并操作,得到目标后置输入矩阵,并对所述前置输入矩阵与所述目标后置输入矩阵执行所述矩阵乘法操作,得到所述第二目标输出矩阵;其中,所述目标处理装置用于在所述第四预测模型中对所述前置输入矩阵与所述目标后置输入矩阵执行所述矩阵乘法操作,得到所述第二目标输出矩阵。
20.根据本技术实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述信息处理方法。
21.根据本技术实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的信息处理方法。
22.根据本技术实施例的又一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如上述的信息处理方法。
23.在本技术实施例中,采用先执行输入矩阵的合并操作、再进行矩阵乘法操作的方式,如果检测到需要对一组前置输入矩阵(即,一系列张量)中的每个输入矩阵与后置输入矩阵(即,同一张量)执行矩阵乘法操作,并对得到的一组输出矩阵执行行合并操作时,先对一组前置输入矩阵执行行合并操作,得到合并后的前置输入矩阵(即,目标前置输入矩阵),再在目标处理装置(例如,gpu)中对合并后的前置输入矩阵和后置输入矩阵执行矩阵乘法操作,由于仅需要执行合并后的前置输入矩阵和后置输入矩阵的矩阵乘法操作,仅需一次运算资源调用即可完成矩阵乘法运算,且大张量(即,合并后的前置输入矩阵)的矩阵乘法运算相对于小张量(合并前的前置输入矩阵)的矩阵乘法运算的运算量更大,可以充分利用运算资源,达到提高运算资源的利用率的技术效果,进而解决了相关技术中的信息处理方法存在由于每次资源调用所进行的运算量过少导致的运算资源的利用率低的技术问题。
附图说明
24.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
25.图1是根据本技术实施例的一种可选的信息处理方法的应用环境的示意图;
26.图2是根据本技术实施例的一种可选的信息处理方法的流程的示意图;
27.图3是根据本技术实施例的一种可选的信息处理方法的示意图;
28.图4是根据本技术实施例的另一种可选的信息处理方法的示意图;
29.图5是根据本技术实施例的又一种可选的信息处理方法的示意图;
30.图6是根据本技术实施例的又一种可选的信息处理方法的示意图;
31.图7是根据本技术实施例的又一种可选的信息处理方法的示意图;
32.图8是根据本技术实施例的又一种可选的信息处理方法的示意图;
33.图9是根据本技术实施例的又一种可选的信息处理方法的示意图;
34.图10是根据本技术实施例的又一种可选的信息处理方法的示意图;
35.图11是根据本技术实施例的又一种可选的信息处理方法的示意图;
36.图12是根据本技术实施例的又一种可选的信息处理方法的示意图;
37.图13是根据本技术实施例的一种可选的信息处理装置的示意图;
38.图14是根据本技术实施例的一种可选的电子设备的结构示意图。
具体实施方式
39.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
40.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
41.根据本技术实施例的一个方面,提供了一种信息处理方法,可选地,作为一种可选的实施方式,上述信息处理方法可以但不限于应用于如图1所示的环境中。其中,可以但不限于包括:用户设备102,该用户设备102可以但不限于包括存储器104、处理器106及显示器108,网络110,服务器112。
42.示例性地,上述信息处理方法的过程可以包括如下步骤:
43.步骤s102,用户设备102获取待识别图像,上述待识别图像可以为待识别出包含预定类型的识别目标的图像;
44.步骤s104-步骤s106,用户设备102通过网络110将待识别图像发送给服务器112;
45.步骤s108,服务器112通过数据库114和处理引擎116将待识别图像输入到用于进行目标识别的神经网络模型中,得到目标识别的识别结果。
46.待识别图像可以是从地图中获取的图像,所需识别的是地图中的特定目标(例如,标志性建筑、任性目标、车辆目标等)。在神经网络模型对输入的待识别图像进行处理的过程中,如果检测到需要对一组前置输入矩阵分别与同一后置输入矩阵执行矩阵乘法操作之后,再对一组输出矩阵执行行行合并操作时,先对一组前置输入矩阵执行行合并操作,再在目标处理装置中对合并得到的输入矩阵和后置输入矩阵执行矩阵乘法操作,得到输出矩
阵。
47.需要说明的是,在对待识别图像进行处理的过程中会涉及到矩阵乘法运算,例如,在通过卷积核进行特征图之间的卷积时、或者在进行特征图之间的融合时会涉及到矩阵乘法运算。示例性地,神经网络模型中的卷积层可以对从待识别图像中所提取的特征图进行矩阵乘法运算,得到乘法运算的结果。
48.这里,前置输入矩阵和后置输入矩阵为矩阵乘法运算的两个输入项,其中,前置输入矩阵为矩阵乘法运算的两个输入项中位于前面的输入项,后置输入矩阵为矩阵乘法运算的两个输入项中位于后面的输入项,前置输入矩阵的行数与后置输入矩阵的列数相同。比如,矩阵乘法运算为:a
×
b,a为前置输入矩阵,b为后置输入矩阵。
49.步骤s110-s114,服务器112通过网络110将目标识别的识别结果发送给用户设备102,用户设备102中的处理器106根据目标识别的识别结果在待识别图像中标识出识别的目标。
50.除了图1示出的示例之外,上述步骤可以由用户设备102独立完成,即由用户设备102执行矩阵的行合并操作、矩阵乘法操作等步骤,从而减轻服务器的处理压力。该用户设备102包括但不限于手持设备(如手机)、笔记本电脑、台式电脑、智能语音交互设备、智能家电、车载设备等,本技术并不限制用户设备102的实现方式。
51.可选地,作为一种可选的实施方式,图2是根据本技术实施例的一种可选的信息处理方法的流程示意图,如图2所示,该信息处理方法的流程可以包括以下步骤:
52.步骤s202,获取一组前置输入矩阵和后置输入矩阵,其中,所述一组前置输入矩阵包括多个前置输入矩阵。
53.本实施例中的信息处理方法可以应用在车联网领域,例如,车联网中的地图领域,可以应用于张量数据流(tensorflow)分析的场景,例如,使用神经网络模型进行图像识别的场景,应用到的引擎可以是张量图优化引擎,张量图优化引擎可以是深度学习中的图优化引擎(例如,tensorflow中的grappler计算图优化引擎),可以被集成到ai(artificial intelligence,人工智能)平台或者ai框架中。张量(tensor)的核心是一个数据容器,可以是一个多维数组,标量、向量、矩阵等分别是不同阶的张量。本实施例中以矩阵为例进行说明。
54.服务器可以获取一组前置输入矩阵(即,一系列张量)和后置输入矩阵(即,同一张量),并对输入矩阵的处理逻辑进行检测。所执行的检测可以包括:检测是否涉及输出矩阵的合并操作,例如,可以找到合并(concatenation)操作,检查它的输入是否都有矩阵乘法产生,并且检查其是否是沿“行”这一维合并,还可以检查上述所有矩阵乘法的第二项输入(后置输入)是否是同一张量输入。如果是,可以按原合并操作的顺序,合并上述所有矩阵(即,一组前置输入矩阵),然后把合并结果(即,第一目标输出矩阵)作为前置输入项和原有后置输入项(即,后置输入矩阵)执行矩阵乘法操作。
55.这里,合并操作是常用张量操作,把多个张量合并成一个张量;矩阵乘法操作(matmul)是常用张量操作,把第一个张量(前置项)第i行的每个元素和第二个张量(后置项)第k列的每个元素逐个相乘并累加,记为输出张量的第i行、第j列的结果。
56.例如,可以检测是否需要分别对一组前置输入矩阵中的每个前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一组输出矩阵(此时,并未执行实际的矩阵乘法操作),
且需要对第一组输出矩阵执行行合并操作,得到第一目标输出矩阵(此时,并未执行实际的行合并操作)。
57.步骤s204,在检测到需要分别对一组前置输入矩阵中的每个前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一组输出矩阵、以及对第一组输出矩阵执行行合并操作,得到第一目标输出矩阵的情况下,对一组前置输入矩阵执行行合并操作,得到目标前置输入矩阵。
58.如果检测到需要分别对一组前置输入矩阵中的每个前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一组输出矩阵、以及对第一组输出矩阵执行行合并操作,得到第一目标输出矩阵,基于一组输出矩阵的行合并规则,服务器可以首先对一组前置输入矩阵执行行合并操作,得到目标前置输入矩阵。
59.上述行合并规则可以用于表示一组输出矩阵的行合并顺序,得到的目标前置输入矩阵的行数为一组前置输入矩阵包含的前置输入矩阵的行数的总和。结合矩阵运算的运算规则,先执行行合并操作、再执行矩阵乘法操作所得到的结果,与先执行矩阵乘法操作、再执行行合并操作所得到结果是一致的。
60.步骤s206,在目标处理装置中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵。
61.在得到目标前置输入矩阵之后,服务器可以控制对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵。上述矩阵乘法操作可以是在目标处理装置内执行的。目标处理装置可以是用于执行矩阵乘法操作的处理部件(例如,gpu),其可以位于服务器的内部,也可以位于服务器的外部,本实施例中对此不做限定。
62.例如,如图3所示,在张量数据流分析的过程中,可以先分别对多张小张量输入执行逐元素操作、再对小张量输出执行合并操作:可以对小张量输入1至小张量输入n分别执行逐元素操作1至以及逐元素操作n,得到小张量输出1至小张量输出n;对小张量输出1至小张量输出n执行合并操作,得到大张量输出。这里,逐元素操作1至逐元素操作n为同类操作,例如,开方操作。上述方式进行了多次运算资源的调用,且对于运算资源的利用率较低。
63.为了克服上述问题,如图4所示,在一系列张量和同一张量做完矩阵乘法(matmul)后再执行合并操作时,这些多个小张量的矩阵乘法操作可以聚合成一个大张量的矩阵乘法操作,进而在矩阵乘法上高效的聚合运行:先对小张量输入1至小张量输入n执行合并操作,得到大张量输入,再对大张量输出执行逐元素操作,得到大张量输出。上述方式可以仅进行一次运算资源的调用,提高了运算资源的利用率。
64.通过本技术提供的实施例,获取一组前置输入矩阵和后置输入矩阵,其中,一组前置输入矩阵包括多个前置输入矩阵;在检测到需要分别对一组前置输入矩阵中的每个前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一组输出矩阵、以及对第一组输出矩阵执行行合并操作,得到第一目标输出矩阵的情况下,对一组前置输入矩阵执行行合并操作,得到目标前置输入矩阵;在目标处理装置中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵,解决了相关技术中的信息处理方法存在由于每次资源调用所进行的运算量过少导致的运算资源的利用率低的技术问题,提高了运算资源的利用率。
65.作为一个示例,一组前置输入矩阵包含两个前置输入矩阵,分别是两个大小为32
×
64的矩阵,后置输入矩阵为大小为64
×
32的矩阵,如果检测到需要分别对一组前置输入矩阵中的每个前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到两个大小为32
×
32的矩阵,再对第一组输出矩阵执行行合并操作,得到一个大小为64
×
32的矩阵,可以基于一组输出矩阵的行合并规则,对第一组输出矩阵执行行合并操作,得到一个大小为64
×
64的矩阵,然后通过调用指令调用gpu资源,在gpu中对大小为64
×
64的矩阵与后置输入矩阵执行矩阵乘法操作,得到一个大小为64
×
32的矩阵。
66.作为一种可选的实施方案,对一组前置输入矩阵执行行合并操作,得到目标前置输入矩阵包括:在第一前置输入矩阵是维度为a1
×
b的矩阵、第二前置输入矩阵是维度为a2
×
b的矩阵、且后置输入矩阵是维度为b
×
c的矩阵时,对维度为a1
×
b的矩阵和维度为a2
×
b的矩阵执行行合并操作,得到目标前置输入矩阵。
67.如果前置输入矩阵和后置输入矩阵均为二维矩阵,其中,一组前置输入矩阵包括第一前置输入矩阵和第二前置输入矩阵,第一前置输入矩阵是维度为a1
×
b的矩阵(即,行数为a1、列数为b的矩阵),第二前置输入矩阵是维度为a2
×
b的矩阵(即,行数为a2、列数为b的矩阵),而后置输入矩阵是维度为b
×
c的矩阵(即,行数为b、列数为c的矩阵),服务器可以对维度为a1
×
b的矩阵和维度为a2
×
b的矩阵执行行合并操作,得到目标前置输入矩阵,该目标前置输入矩阵的维度为a
×
b,a=a1+a2。这里,a1、a2、b和c为自然数,而a为大于1的自然数。
68.在进行行合并时,服务器可以将第二前置输入矩阵合并到第一前置输入矩阵之前、之后,或者,按照合并规则将第一前置输入矩阵的行向量和第二前置输入矩阵的行向量进行混合,在此情况下,属于同一前置输入矩阵的行向量不一定全部相邻。
69.对应地,在目标处理装置中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵包括:在目标处理装置中对维度为a
×
b的矩阵与维度为b
×
c的矩阵执行矩阵乘法操作,得到第一目标输出矩阵,其中,第一目标输出矩阵是维度为a
×
c的矩阵。
70.服务器可以在目标处理装置中对维度为a
×
b的矩阵和维度为b
×
c的矩阵执行矩阵乘法操作。在执行矩阵乘法时,可以逐行进行乘法运算,即,将维度为a
×
b的矩阵的每一行与维度为b
×
c的矩阵的每一列分别进行乘法运算,执行矩阵乘法运算之后得到的矩阵为第一目标输出矩阵。
71.示例性地,如图5所示,一组前置输入矩阵为前置输入1[a1,b](即,a1行、b列的矩阵)和前置输入2[a2,b](即,a2行、b列的矩阵),后置输入[b,c]。首先对按照参数1(第一参数)处理之后的前置输入1和前置输入2分别和按照参数2(第二参数)处理之后的后置输入[b,c]执行矩阵乘法操作,得到输出结果1[a1,c]和输出结果2[a2,c],然后,对输出结果1[a1,c]和输出结果2[a2,c]执行行合并操作,得到输出结果[a,c]。对于上述信息处理方式,执行了两次小矩阵的矩阵乘法操作,硬件上的开销是两份,需要下发两个调用指令;并且,执行了两次小矩阵的矩阵乘法操作,每次调用的运算资源的利用率较低。
[0072]
为了优化处理流程,如图6所示,可以对按照参数1处理之后的前置输入1[a1,b]与按照参数n处理之后的前置输入2[a2,b]执行合并操作,得到前置输入[a,b](即,a行、b列的矩阵),然后,再对按照参数1处理之后的前置输入[a,b]和按照参数2处理之后的后置输入[b,c]执行矩阵乘法操作,得到输出结果[a,c]。在进行优化之后,仅执行一次大矩阵的矩阵
乘法操作,硬件上的开销是一份,只需下发一个调用指令;并且,仅执行一次大矩阵的矩阵乘法操作,可以提升每次调用的运算资源的利用率。
[0073]
通过本可选实施例,通过对二维输入矩阵先执行行合并操作、再执行矩阵的矩阵乘法操作,可以提高矩阵融合计算的适用性,提升调用的运算资源的利用率。
[0074]
作为一种可选的实施方案,上述方法还包括:
[0075]
s1,在检测到需要对第一组输出矩阵中的至少一个输出矩阵执行第一预设操作时,对第一目标输出矩阵执行行分裂操作,得到第一组分裂矩阵;
[0076]
s2,对第一组分裂矩阵中的至少一个分裂矩阵执行第一预设操作。
[0077]
除执行矩阵乘法操作以外,原有矩阵乘法的结果可以是其他操作的输入。例如,如图7所示,除了对输出结果1[a1,c]和输出结果2[a2,c]执行合并操作以外,还需对输出结果1[a1,c]执行其他操作1,对输出结果2[a2,c]执行其他操作2。
[0078]
如果检测到需要对第一组输出矩阵中的至少一个输出矩阵执行第一预设操作(不同的输出矩阵所执行的第一预设操作可以是相同的,也可以是不同的),即,前置输入矩阵执行矩阵乘法操作的输出结果是其他操作的输入,则可以把新矩阵乘法的结果分裂(split)得到原有矩阵乘法张量,对第一目标输出矩阵执行行分裂操作,得到第一组分裂矩阵。
[0079]
在得到第一组分裂矩阵之后,服务器可以对第一组分裂矩阵中的至少一个分裂矩阵执行第一预设操作。如果至少一个分裂矩阵包含的分裂矩阵的数量为多个,则可以分别对至少一个分裂矩阵中的每个分裂矩阵执行对应的第一预设操作。
[0080]
可选地,在本实施例中,如果至少一个分裂矩阵是第一组分裂矩阵的部分,也可以对第一目标输出矩阵执行行分裂操作,得到至少一个分裂矩阵;对至少一个分裂矩阵执行第一预设操作。
[0081]
例如,如图8所示,在得到输出矩阵[a,c]之后,可以对其执行分裂操作,得到输出结果1[a1,c]和输出结果2[a2,c],然后对输出结果1[a1,c]执行其他操作1,对输出结果2[a2,c]执行其他操作2。
[0082]
通过本可选实施例,通过对第一目标输出矩阵执行行分裂操作并对分裂得到的分裂矩阵执行其他操作,可以适应于具有其他操作需求的场景,提高矩阵融合计算的兼容性。
[0083]
作为一种可选的实施方案,对第一组分裂矩阵中的至少一个分裂矩阵执行第一预设操作包括:
[0084]
在第一前置输入矩阵是维度为a1
×
b的矩阵、第二前置输入矩阵是维度为a2
×
b的矩阵、后置输入矩阵是维度为b
×
c的矩阵、且第一目标输出矩阵是维度为a
×
c的矩阵时,对维度为a
×
c的矩阵执行行分裂操作,得到第一分裂矩阵和第二分裂矩阵。
[0085]
如果第一前置输入矩阵为维度为a1
×
b的矩阵、第二前置输入矩阵是维度为a2
×
b的矩阵、后置输入矩阵是维度为b
×
c的矩阵,则第一前置输入矩阵与后置输入矩阵执行矩阵乘法操作所得到的输出矩阵是维度为a1
×
c的矩阵,第二前置输入矩阵与后置输入矩阵执行矩阵乘法操作所得到的输出矩阵是维度为a2
×
c的矩阵。
[0086]
第一目标输出矩阵是维度为a
×
c的矩阵,服务器可以对其执行行分裂操作,所得到的分裂矩阵为第一组分裂矩阵,其所包含的分裂矩阵的数量为至少两个。如果分裂矩阵的数量为两个,服务器可以对维度为a
×
b的矩阵执行行分裂操作得到分裂矩阵为:第三分
裂矩阵和第四分裂矩阵。这里,第三分裂矩阵是维度为a1
×
b的矩阵,第四分裂矩阵是维度为a2
×
b的矩阵,a=a1+a2。而第一组分裂矩阵包括第三分裂矩阵和第四分裂矩阵。
[0087]
可选地,在执行行分裂操作时,可以首先确定第一目标输出矩阵中与第三分裂矩阵所对应的a1个行以及与第四分裂矩阵所对应的a2个行。与第三分裂矩阵所对应的a1个行可以是连续的多个行,也可以是不连续的多个行,而与第四分裂矩阵所对应的a2个行可以是连续的多个行,也可以是不连续的多个行。本实施例中对此不做限定。
[0088]
通过本可选实施例,通过对输出矩阵执行行分裂操作,得到对应的两个分裂矩阵,可以提高向量融合计算的适用性。
[0089]
作为一种可选的实施方案,上述方法还包括:
[0090]
s1,获取前置输入矩阵和一组后置输入矩阵,其中,一组后置输入矩阵包括多个后置输入矩阵;
[0091]
s2,在检测到需要分别对前置输入矩阵与一组后置输入矩阵中的每个后置输入矩阵执行矩阵乘法操作,得到第二组输出矩阵、以及对第二组输出矩阵执行列合并操作,得到第二目标输出矩阵的情况下,对一组后置输入矩阵执行列合并操作,得到目标后置输入矩阵;
[0092]
s3,在目标处理装置中对前置输入矩阵与目标后置输入矩阵执行矩阵乘法操作,得到第二目标输出矩阵。
[0093]
服务器可以获取一组前置输入矩阵(即,一系列张量)和后置输入矩阵(即,同一张量),
[0094]
服务器可以获取一组后置输入矩阵(即,一系列张量)和前置输入矩阵(即,同一张量),并对输入矩阵的处理逻辑进行检测。所执行的检测可以包括:检测是否涉及输出矩阵的合并操作,例如,可以找到合并操作,检查它的输入是否都有矩阵乘法产生,并且检查其是否是沿“列”这一维合并,还可以检查上述所有矩阵乘法的第一项输入(前置输入)是否是同一张量输入。如果是,可以按原合并操作的顺序,合并上述所有矩阵(即,一组后置输入矩阵),然后把合并结果(即,第二目标输出矩阵)作为后置输入项和原有前置输入项(即,前置输入矩阵)执行矩阵乘法操作。
[0095]
例如,可以检测是否需要对前置输入矩阵分别与一组后置输入矩阵中的每个后置输入矩阵执行矩阵乘法操作,得到第二组输出矩阵(此时,并未执行实际的矩阵乘法操作)、以及对第二组输出矩阵执行列合并操作,得到第二目标输出矩阵(此时,并未执行实际的行合并操作)。
[0096]
如果检测到需要执行上述操作,基于第二组输出矩阵的列合并规则,服务器可以首先对一组后置输入矩阵执行列合并操作,得到目标后置输入矩阵。上述列合并规则可以用于表示第二组输出矩阵的列合并顺序,得到的目标后置输入矩阵的行数为一组后置输入矩阵包含的后置输入矩阵的行数的总和。结合矩阵运算的运算规则,先执行列合并操作、再执行矩阵乘法操作所得到的结果,与先执行矩阵乘法操作、再执行列合并操作所得到结果是一致的。
[0097]
在得到目标后置输入矩阵之后,服务器可以控制对前置输入矩阵与目标后置输入矩阵执行矩阵乘法操作,得到第二目标输出矩阵。上述矩阵乘法操作可以是在目标处理装置内执行的。目标处理装置可以是用于执行矩阵乘法操作的处理部件(例如,gpu),其可以
位于服务器的内部,也可以位于服务器的外部,本实施例中对此不做限定。
[0098]
作为一个示例,一组后置输入矩阵包含两个后置输入矩阵,分别是两个大小为64
×
32的矩阵,前置输入矩阵为大小为32
×
64的矩阵,如果检测到需要分别对前置输入矩阵与一组后置输入矩阵中的每个后置输入矩阵执行矩阵乘法操作,得到两个大小为32
×
32的矩阵,再对第二组输出矩阵执行列合并操作,得到一个大小为32
×
64的矩阵,可以基于第一组输出矩阵的列合并规则,对第一组输出矩阵执行列合并操作,得到一个大小为64
×
64的矩阵,然后通过调用指令调用gpu资源,在gpu中对前置输入矩阵与大小为64
×
64的矩阵执行矩阵乘法操作,得到一个大小为32
×
64的矩阵。
[0099]
通过本技术提供的实施例,通过先执行输入矩阵的矩阵合并操作、再执行矩阵的矩阵乘法操作,可以提高运算资源的利用率。
[0100]
作为一种可选的实施方案,对一组后置输入矩阵执行行合并操作,得到目标后置输入矩阵包括:在第一后置输入矩阵是维度为b
×
c1的矩阵、第二后置输入矩阵是维度为b
×
c2的矩阵、且前置输入矩阵是维度为a
×
b的矩阵时,对维度为b
×
c1的矩阵和维度为b
×
c2的矩阵执行列合并操作,得到目标后置输入矩阵。
[0101]
如果前置输入矩阵和后置输入矩阵均为二维矩阵,其中,一组后置输入矩阵包括第一后置输入矩阵和第二后置输入矩阵,第一后置输入矩阵是维度为b
×
c1的矩阵(即,行数为b、列数为c1的矩阵),第二后置输入矩阵是维度为b
×
c2的矩阵(即,行数为b、列数为c2的矩阵),而前置输入矩阵是维度为a
×
b的矩阵(即,行数为a、列数为b的矩阵),服务器可以对维度为b
×
c1的矩阵和维度为b
×
c2的矩阵执行列合并操作,得到目标后置输入矩阵,该目标后置输入矩阵的维度为b
×
c,c=c1+c2。这里,a、b、c1和c2为自然数,而c为大于1的自然数。
[0102]
在进行列合并时,服务器可以将第二后置输入矩阵合并到第一后置输入矩阵之前、之后,或者,按照合并规则将第一后置输入矩阵的列向量和第二后置输入矩阵的列向量进行混合,在此情况下,属于同一后置输入矩阵的列向量不一定全部相邻。
[0103]
对应地,在目标处理装置中对前置输入矩阵与目标后置输入矩阵执行矩阵乘法操作,得到第二目标输出矩阵包括:在目标处理装置中对维度为a
×
b的矩阵与维度为b
×
c的矩阵执行矩阵乘法操作,得到第二目标输出矩阵,其中,第二目标输出矩阵是维度为a
×
c的矩阵
[0104]
服务器可以在目标处理装置中对维度为a
×
b的矩阵和维度为b
×
c的矩阵执行矩阵乘法操作。在执行矩阵乘法时,可以逐行进行乘法运算,即,将维度为a
×
b的矩阵的每一行与维度为b
×
c的矩阵的每一列分别进行乘法运算,执行矩阵乘法运算之后得到的矩阵为第二目标输出矩阵。
[0105]
示例性地,如图9所示,后置输入[a,b],一组后置输入矩阵为后置输入1[b,c1](即,b行、c1列的矩阵)和后置输入2[b,c2](即,b行、c2列的矩阵)。首先对按照参数1处理之后的前置输入分别和按照参数2处理之后的后置输入1[b,c1]和后置输入2[b,c2]执行矩阵乘法操作,得到输出结果1[a,c1]和输出结果2[a,c2];然后,对输出结果1[a,c1]和输出结果2[a,c2]执行行合并操作,得到输出结果[a,c]。对于上述信息处理方式,执行了两次小矩阵的矩阵乘法操作,硬件上的开销是两份,需要下发两个调用指令;并且,执行了两次小矩阵的矩阵乘法操作,每次调用的运算资源的利用率较低。
[0106]
为了优化处理流程,如图10所示,可以对按照参数1处理之后的后置输入1[b,c1]与按照参数n处理之后的后置输入2[b,c2]执行合并操作,得到后置输入[b,c],然后,再对按照参数1处理之后的前置输入[a,b]和按照参数2处理之后的后置输入[b,c]执行矩阵乘法操作,得到输出结果[a,c]。在进行优化后,仅执行一次大矩阵的矩阵乘法操作,硬件上的开销是一份,只需下发一个调用指令,且仅执行一次大矩阵的矩阵乘法操作,可以提升每次调用的运算资源的利用率。
[0107]
通过本可选实施例,通过对二维输入矩阵先执行列合并操作、再执行矩阵的矩阵乘法操作,可以提高矩阵融合计算的适用性,提升调用的运算资源的利用率。
[0108]
作为一种可选的实施方案,上述方法还包括:
[0109]
s1,在检测到需要对第二组输出矩阵中的至少一个输出矩阵执行第二预设操作时,对第二目标输出矩阵执行列分裂操作,得到第二组分裂矩阵;
[0110]
s2,对第二组分裂矩阵中的至少一个分裂矩阵执行第二预设操作。
[0111]
除了执行矩阵乘法操作以外,原有矩阵乘法的结果可以是其他操作的输入。例如,如图11所示,除了对输出输入1[a,c1]和输出输入2[a,c2]执行矩阵乘法操作以外,还需对输出输入1[a,c1]执行其他操作3,对输出输入2[a,c2]执行其他操作4。
[0112]
如果检测到需要对第二组输出矩阵中的至少一个输出矩阵执行第二预设操作(不同的输出矩阵所执行的第二预设操作可以是相同的,也可以是不同的),即,后置输入矩阵执行矩阵乘法操作的输出结果是其他操作的输入,则可以把新矩阵乘法的结果分裂得到原有矩阵乘法张量,对第二目标输出矩阵执行列分裂操作,得到第二组分裂矩阵。
[0113]
在得到第二组分裂矩阵之后,服务器可以对第二组分裂矩阵中的至少一个分裂矩阵执行第二预设操作。如果至少一个分裂矩阵包含的分裂矩阵的数量为多个,则可以分别对至少一个分裂矩阵中的每个分裂矩阵执行对应的第二预设操作。
[0114]
可选地,在本实施例中,如果至少一个分裂矩阵是第二组分裂矩阵的部分,也可以对第二目标输出矩阵执行列分裂操作,得到至少一个分裂矩阵;对至少一个分裂矩阵执行第二预设操作。
[0115]
例如,如图12所示,在得到输出矩阵[a,c]之后,可以对其执行分裂操作,得到输出结果1[a,c1]和输出结果2[a,c2],然后对输出结果1[a,c1]执行其他操作3,对输出结果2[a,c2]执行其他操作4。
[0116]
通过本可选实施例,通过对第二目标输出矩阵执行列分裂操作并对分裂得到的分裂矩阵执行其他操作,可以适应于具有其他操作需求的场景,提高矩阵融合计算的兼容性。
[0117]
作为一种可选的实施方案,对第二目标输出矩阵执行列分裂操作,得到第二组分裂矩阵包括:
[0118]
在第一后置输入矩阵是维度为b
×
c1的矩阵、第二后置输入矩阵是维度为b
×
c2的矩阵、前置输入矩阵是维度为a
×
b的矩阵、且第二目标输出矩阵是维度为a
×
c的矩阵时,对维度为a
×
c的矩阵执行列分裂操作,得到第三分裂矩阵和第四分裂矩阵。
[0119]
如果前置输入矩阵是维度为a
×
b的矩阵、第一后置输入矩阵是维度为b
×
c1的矩阵、第二后置输入矩阵是维度为b
×
c2的矩阵,前置输入矩阵与第一后置输入矩阵执行矩阵乘法操作所得到的输出矩阵是维度为a
×
c1的矩阵,前置输入矩阵与第二后置输入矩阵执行矩阵乘法操作所得到的输出矩阵是维度为a
×
c2的矩阵。
[0120]
第二目标输出矩阵为维度为a
×
c的二维矩阵,服务器可以对其执行列分裂操作,所得到的分裂矩阵为第二组分裂矩阵,其所包含的分裂矩阵的数量为至少两个。如果分裂矩阵的数量为两个,服务器可以对维度为a
×
c的矩阵执行行分裂操作得到分裂矩阵为:第三分裂矩阵和第四分裂矩阵。这里,第三分裂矩阵是维度为a
×
c1的矩阵,第四分裂矩阵是维度为a
×
c2的矩阵,c=c1+c2。而第二组分裂矩阵包括第三分裂矩阵和第四分裂矩阵。
[0121]
可选地,在执列列分裂操作时,可以首先确定第二目标输出矩阵中与第三分裂矩阵所对应的c1个列、以及与第四分裂矩阵所对应的c2个列。与第三分裂矩阵所对应的c1个列可以是连续的多个列,也可以是不连续的多个列,而与第四分裂矩阵所对应的c2个列可以是连续的多个列,也可以是不连续的多个列。本实施例中对此不做限定。
[0122]
通过本可选实施例,通过对二维输出矩阵执行列分裂操作,得到对应的两个分裂矩阵,可以提高向量融合计算的适用性。。
[0123]
作为一种可选的实施方案,在目标处理装置中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵,包括:
[0124]
在gpu中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵,其中,目标处理装置包括gpu。
[0125]
目标处理装置可以包括gpu,该cpu可以布设在服务器上,可以是多核gpu,矩阵乘法操作可以是由该gpu执行的。在进行矩阵处理时,服务器上的处理器或者其他控制部件可以向gpu下发调用指令,指示该gpu执行对应的矩阵乘法操作。
[0126]
在进行矩阵融合计算时,如果先执行矩阵的矩阵乘法操作、再执行矩阵的合并操作,需要下发多个调用指令分别调用gpu执行矩阵乘法操作。如果仅有一个gpu,则矩阵乘法操作需要先后执行,每次执行均无法充分利用调用的gpu资源。如果有多个gpu核,虽然可以使用不同的gpu核来分别执行不同的矩阵乘法操作,但仍然无法充分利用每次调用的gpu资源。
[0127]
在本实施例中,可以通过一个调用指令来调用gpu资源,在调用的gpu中对前置输入矩阵和后置输入矩阵执行矩阵乘法操作,得到目标输出矩阵。由于仅进行了一次gpu调用,因此,只需下发一个调用指令;并且,由于使用一个gpu完成了大矩阵的矩阵乘法操作,可以提高gpu资源的利用率。
[0128]
例如,如果执行的是先执行矩阵乘法操作、再执行输出矩阵的矩阵合并操作,需要调用两个gpu核来分别执行对应的矩阵乘法操作,每个gpu核的资源利用率为30%。如果先执行输入矩阵的合并操作,再执行矩阵的矩阵乘法操作,只需调用一个gpu核来执行对应的矩阵乘法操作,该gpu核的资源利用率为60%。
[0129]
通过本实施例,通过调用gpu执行矩阵乘法操作,可以利用gpu计算速度快的优点,提高了矩阵融合计算的速度,同时,也提高了gpu资源的利用率。
[0130]
作为一种可选的实施方案,获取一组前置输入矩阵和后置输入矩阵,包括:
[0131]
在目标预测模型中待处理的一组多维矩阵中获取一组前置输入矩阵,并在目标预测模型中待处理的目标多维矩阵中获取后置输入矩阵,其中,目标预测模型用于根据一组多维矩阵和目标多维矩阵,确定预测出的目标对象。
[0132]
一组前置输入矩阵和后置输入矩阵可以是从目标预测模型中获取到的矩阵,该目标预测模型可以布设在服务器上,可以用于根据一组多维矩阵和目标多维矩阵,确定预测
出的目标对象。目标预测模型可以是神经网络模型,其输入可以是待识别图像。一组多维矩阵和目标多维矩阵可以是神经网络模型的目标卷积层(也可以是其他涉及到矩阵乘法的层)的输入。
[0133]
在处理一组多维矩阵和目标多维矩阵时,可以从一组多维矩阵中获取一组前置输入矩阵,从目标多维矩阵中获取后置输入矩阵,并采用前述实施例中所示的信息处理方法对一组前置输入矩阵和后置输入矩阵进行处理。已经进行过描述的,在此不做赘述。
[0134]
需要说明的是,本实施例中所提供的多个矩阵乘以同一矩阵后合并的融合计算方案可以应用到更高维度的张量计算,即,batched-matmul(批量矩阵乘法),当其他维度均为batch维度时,可以保持其他维度不变,还可以推广到转置操作、取对角线操作等其他可用爱因斯坦累加协议表达的操作。其中,爱因斯坦求和操作是常用张量操作,是指把两个张量元素逐个标量相乘之后,沿着某几个指定维度进行累加收缩,矩阵乘法是爱因斯坦求和操作的示例。
[0135]
一组多维矩阵中待处理的一组前置输入矩阵的数量可以为多个,目标多维矩阵中待处理的后置输入矩阵的数量也可以为多个。服务器可以串行的、或者并行的对不同组前置输入矩阵和后置输入矩阵进行处理。不同组前置输入矩阵和后置输入矩阵的处理流程可以是类似的,也可以基于处理目标的不同有所区别,本实施例中对此不做限定。
[0136]
通过本实施例,通过从预测目标的预测模型中待处理的多维矩阵中获取输入矩阵进行矩阵融合计算,可以提高目标对象预测的效率,提高矩阵融合计算的适用性。
[0137]
作为一种可选的实施方案,在目标预测模型中待处理的一组多维矩阵中获取一组前置输入矩阵,并在目标预测模型中待处理的目标多维矩阵中获取后置输入矩阵包括:在一组多维矩阵包括维度为d
×
a1
×
b的矩阵以及维度为d
×
a2
×
b的矩阵、且目标多维矩阵是维度为d
×b×
c的矩阵中,在一组多维矩阵中获取d个维度为a1
×
b的第一前置输入矩阵以及d个维度为a2
×
b的第二前置输入矩阵,并在目标多维矩阵中获取d个维度为b
×
c的后置输入矩阵,其中,d为大于1的自然数,a为大于1的自然数,a=a1+a2,a1、a2、b和c为自然数。
[0138]
一组多维矩阵和目标多维矩阵可以均为三维矩阵。一组多维矩阵包括维度为d
×
a1
×
b的矩阵(可以认为是d个维度为a1
×
b的矩阵)以及维度为d
×
a2
×
b的矩阵(可以认为是d个维度为a2
×
b的矩阵)。对应地,在目标预测模型中待处理的一组多维矩阵中获取一组前置输入矩阵可以包括:在一组多维矩阵中获取d个维度为a1
×
b的第一前置输入矩阵以及d个维度为a2
×
b的第二前置输入矩阵。从一组多维矩阵中获取到d组前置输入矩阵,一组前置输入矩阵包括一个维度为a1
×
b的第一前置输入矩阵和一个维度为a2
×
b的第二前置输入矩阵。
[0139]
可选地,对一组前置输入矩阵执行行合并操作,得到目标前置输入矩阵包括:分别对d个维度为a1
×
b的第一前置输入矩阵以及d个维度为a2
×
b的第二前置输入矩阵执行行合并操作,得到d个目标前置输入矩阵。
[0140]
在执行输入矩阵的合并操作时,服务器可以分别对d个维度为a1
×
b的第一前置输入矩阵以及d个维度为a2
×
b的第二前置输入矩阵执行行合并操作,每个a1
×
b的第一前置输入矩阵与其对应的维度为a2
×
b的第二前置输入矩阵执行行合并操作,得到d个目标前置输入矩阵。目标前置输入矩阵是维度为a
×
b的矩阵,每个目标前置输入矩阵是对一个第一前置输入矩阵和一个第二前置输入矩阵执行行合并操作所得到的矩阵。
[0141]
在本实施例中,在目标处理装置中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵包括:在目标处理装置中分别对d个目标前置输入矩阵和d个后置输入矩阵依次执行矩阵乘法操作,得到d个维度为a
×
c的第一目标输出矩阵,其中,每个第一目标输出矩阵是对一个目标前置输入矩阵和一个后置输入矩阵执行矩阵乘法操作所得到的矩阵。
[0142]
目标多维矩阵可以是维度为d
×b×
c的矩阵,可以认为其包含d个维度为b
×
c的二维矩阵。对应地,在目标预测模型中待处理的目标多维矩阵中获取后置输入矩阵包括:在目标多维矩阵中获取d个维度为b
×
c的后置输入矩阵。
[0143]
d个目标前置输入矩阵和d个后置输入矩阵可以是一一对应关系,例如,一个目标前置输入矩阵仅允许与一个后置输入矩阵关联,且一个后置输入矩阵也仅允许与一个目标前置输入矩阵关联;也可以是一对多的关系,一个目标前置输入矩阵允许与一个或多个后置输入矩阵关联,而一个后置输入矩阵仅允许与一个目标前置输入矩阵关联;还可以是多对多的关系,即,一个目标前置输入矩阵允许与一个或多个后置输入矩阵关联,且一个后置输入矩阵也允许与一个或多个目标前置输入矩阵关联。
[0144]
可选地,在目标处理装置中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵包括:在目标处理装置中分别对d个目标前置输入矩阵和d个后置输入矩阵依次执行矩阵乘法操作,得到d个维度为a
×
c的第一目标输出矩阵。
[0145]
对于d个目标前置输入矩阵和d个后置输入矩阵是一一对应关系的场景,在执行矩阵乘法操作时,可以在目标处理装置中分别对每个目标前置输入矩阵与对应的后置输入矩阵依次执行矩阵乘法操作,得到d个维度为a
×
c的第一目标输出矩阵。不同的矩阵乘法操作可以是串行执行的,也可以是并行执行的,本实施例中对此不做限定。
[0146]
可选地,对于每个目标前置输入矩阵与每个后置输入矩阵均执行矩阵乘法操作的场景,在目标处理装置中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵包括:在目标处理装置中分别对d个目标前置输入矩阵中的每个目标前置输入矩阵分别与d个后置输入矩阵依次执行矩阵乘法操作,得到d
×
d个维度为a
×
c的目标输出矩阵。
[0147]
通过本实施例,通过从一组多维矩阵中获取多组前置输入矩阵进而得到多个目标前置输入矩阵,从多维矩阵中获取多个后置输入矩阵,并对每个目标前置输入矩阵分别与对应的后置输入矩阵执行矩阵乘法操作,可以简化对多维矩阵进行矩阵融合计算的流程,提高矩阵融合计算的效率。
[0148]
作为一种可选的实施方案,上述方法还包括:
[0149]
在检测到第一预测模型中的模型结构用于分别对一组前置输入矩阵中的每个前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一组输出矩阵、以及对第一组输出矩阵执行行合并操作,得到第一目标输出矩阵的情况下,对第一预测模型中的模型结构进行调整,得到第二预测模型,其中,第二预测模型中的模型结构用于对一组前置输入矩阵执行行合并操作,得到目标前置输入矩阵,并对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵。
[0150]
在本实施例中,如果检测到第一预测模型中的模型结构用于对一组前置输入矩阵中的每个前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一组输出矩阵、以及对
第一组输出矩阵执行行合并操作,得到第一目标输出矩阵前置输入矩阵执行行分裂操作、且分别对第一组分裂矩阵中的每个分裂矩阵与后置输入矩阵执行矩阵乘法操作,得到第二组分裂矩阵,服务器可以对第一预测模型中的模型结构进行调整,得到第二预测模型。上述调整是将第一预测模型中的上述模型结构调整为:用于对一组前置输入矩阵执行行合并操作,得到目标前置输入矩阵,并对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵。
[0151]
上述调整可以是通过调整第一预测模型的执行逻辑来实现的,在服务器上可以预先设置有第一预测模型的结构调整程序,可以通过调用上述结构调整程序对第一预测模型中的模型结构进行调整,从而得到第二预测模型。可选地,第二预测模型可以为前述实施例中的目标预测模型。在进行模型结构调整之后,目标处理装置可以用于在第二预测模型中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵。
[0152]
通过本实施例,基于检测到的预测模型的模型结构所执行的操作来对预测模型的模型结构进行调整,可以提高模型配置的灵活性,同时提高预测模型进行目标预测的效率。
[0153]
作为一种可选的实施方案,上述方法还包括:
[0154]
在检测到第三预测模型中的模型结构用于分别对前置输入矩阵与一组后置输入矩阵中的每个后置输入矩阵执行矩阵乘法操作,得到第二组输出矩阵、以及对第二组输出矩阵执行列合并操作,得到第二目标输出矩阵的情况下,对第三预测模型中的模型结构进行调整,得到第四预测模型,其中,第四预测模型中的模型结构用于对一组后置输入矩阵执行列合并操作,得到目标后置输入矩阵,并对前置输入矩阵与目标后置输入矩阵执行矩阵乘法操作,得到第二目标输出矩阵。
[0155]
在本实施例中,如果检测到第三预测模型中的模型结构用于分别对前置输入矩阵与一组后置输入矩阵中的每个后置输入矩阵执行矩阵乘法操作,得到第二组输出矩阵、以及对第二组输出矩阵执行列合并操作,得到第二目标输出矩阵,服务器可以对第三预测模型中的模型结构进行调整,得到第四预测模型。上述调整是将第三预测模型中的上述模型结构调整为:用于对一组后置输入矩阵执行列合并操作,得到目标后置输入矩阵,并对前置输入矩阵与目标后置输入矩阵执行矩阵乘法操作,得到第二目标输出矩阵。
[0156]
上述调整可以是通过调整第三预测模型的执行逻辑来实现的,在服务器上可以预先设置有第三预测模型的结构调整程序,可以通过调用上述结构调整程序对第三预测模型中的模型结构进行调整,从而得到第四预测模型。可选地,第四预测模型可以为前述实施例中的目标预测模型。在进行模型结构调整之后,目标处理装置可以用于在第四预测模型中对前置输入矩阵与目标后置输入矩阵执行矩阵乘法操作,得到第二目标输出矩阵。
[0157]
通过本实施例,基于检测到的预测模型的模型结构所执行的操作来对预测模型的模型结构进行调整,可以提高模型配置的灵活性,同时提高预测模型进行目标预测的效率。
[0158]
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本技术所必须的。
[0159]
根据本技术实施例的另一个方面,还提供了一种用于实施上述信息处理方法的信
息处理装置。如图13所示,该装置包括:
[0160]
第一获取单元1302,用于获取一组前置输入矩阵和后置输入矩阵,其中,一组前置输入矩阵包括多个前置输入矩阵;
[0161]
第一执行单元1304,用于在检测到需要分别对一组前置输入矩阵中的每个前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一组输出矩阵、以及对第一组输出矩阵执行行合并操作,得到第一目标输出矩阵的情况下,对一组前置输入矩阵执行行合并操作,得到目标前置输入矩阵;
[0162]
第二执行单元1306,用于在目标处理装置中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵。
[0163]
需要说明的是,该实施例中的第一获取单元1302可以用于执行上述步骤s202,该实施例中的第一执行单元1304可以用于执行上述步骤s204,该实施例中的第二执行单元1306可以用于执行上述步骤s206。
[0164]
通过本技术提供的实施例,获取一组前置输入矩阵和后置输入矩阵,其中,一组前置输入矩阵包括多个前置输入矩阵;在检测到需要分别对一组前置输入矩阵中的每个前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一组输出矩阵、以及对第一组输出矩阵执行行合并操作,得到第一目标输出矩阵的情况下,对一组前置输入矩阵执行行合并操作,得到目标前置输入矩阵;在目标处理装置中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵,解决了相关技术中的信息处理方法存在由于每次资源调用所进行的运算量过少导致的运算资源的利用率低的技术问题,提高了运算资源的利用率。
[0165]
作为一种可选的实施方案,第一执行单元1304包括:第一执行模块,第二执行单元1306包括:第二执行模块,其中,
[0166]
第一执行模块,用于在第一前置输入矩阵是维度为a1
×
b的矩阵、第二前置输入矩阵是维度为a2
×
b的矩阵、且后置输入矩阵是维度为b
×
c的矩阵时,对维度为a1
×
b的矩阵和维度为a2
×
b的矩阵执行行合并操作,得到目标前置输入矩阵,其中,一组前置输入矩阵包括第一前置输入矩阵和第二前置输入矩阵,目标前置输入矩阵是维度为a
×
b的矩阵,a为大于1的自然数,a=a1+a2,a1、a2、b和c为自然数;
[0167]
第二执行模块,用于在目标处理装置中对维度为a
×
b的矩阵与维度为b
×
c的矩阵执行矩阵乘法操作,得到第一目标输出矩阵,其中,第一目标输出矩阵是维度为a
×
c的矩阵。
[0168]
本实施方案的可选示例可以参考上述信息处理方法中所示的示例,本实施方案中在此不再赘述。
[0169]
作为一种可选的实施方案,上述装置还包括:
[0170]
第三执行单元,用于在检测到需要对第一组输出矩阵中的至少一个输出矩阵执行第一预设操作时,对第一目标输出矩阵执行行分裂操作,得到第一组分裂矩阵;
[0171]
第四执行单元,用于对第一组分裂矩阵中的至少一个分裂矩阵执行第一预设操作。
[0172]
本实施方案的可选示例可以参考上述信息处理方法中所示的示例,本实施方案中在此不再赘述。
[0173]
作为一种可选的实施方案,第三执行单元包括:
[0174]
第三执行模块,用于在第一前置输入矩阵是维度为a1
×
b的矩阵、第二前置输入矩阵是维度为a2
×
b的矩阵、后置输入矩阵是维度为b
×
c的矩阵、且第一目标输出矩阵是维度为a
×
c的矩阵时,对维度为a
×
c的矩阵执行行分裂操作,得到第一分裂矩阵和第二分裂矩阵,其中,一组前置输入矩阵包括第一前置输入矩阵和第二前置输入矩阵,第一组分裂矩阵包括第一分裂矩阵和第二分裂矩阵,第一分裂矩阵是维度为a1
×
c的矩阵,第二分裂矩阵是维度为a2
×
c的矩阵,a为大于1的自然数,a=a1+a2,a1、a2、b和c为自然数。
[0175]
本实施方案的可选示例可以参考上述信息处理方法中所示的示例,本实施方案中在此不再赘述。
[0176]
作为一种可选的实施方案,上述装置还包括:
[0177]
第二获取单元,用于获取前置输入矩阵和一组后置输入矩阵,其中,一组后置输入矩阵包括多个后置输入矩阵;
[0178]
第五执行单元,用于在检测到需要分别对前置输入矩阵与一组后置输入矩阵中的每个后置输入矩阵执行矩阵乘法操作,得到第二组输出矩阵、以及对第二组输出矩阵执行列合并操作,得到第二目标输出矩阵的情况下,对一组后置输入矩阵执行列合并操作,得到目标后置输入矩阵;
[0179]
第六执行单元,用于在目标处理装置中对前置输入矩阵与目标后置输入矩阵执行矩阵乘法操作,得到第二目标输出矩阵。
[0180]
本实施方案的可选示例可以参考上述信息处理方法中所示的示例,本实施方案中在此不再赘述。
[0181]
作为一种可选的实施方案,第五执行单元包括:第四执行模块,第六执行单元包括:第五执行模块,其中,
[0182]
第四执行模块,用于在第一后置输入矩阵是维度为b
×
c1的矩阵、第二后置输入矩阵是维度为b
×
c2的矩阵、且前置输入矩阵是维度为a
×
b的矩阵时,对维度为b
×
c1的矩阵和维度为b
×
c2的矩阵执行列合并操作,得到目标后置输入矩阵,其中,一组后置输入矩阵包括第一后置输入矩阵和第二后置输入矩阵,目标后置输入矩阵是维度为b
×
c的矩阵,c为大于1的自然数,c=c1+c2,a、b、c1和c2为自然数;
[0183]
第五执行模块,用于在目标处理装置中对维度为a
×
b的矩阵与维度为b
×
c的矩阵执行矩阵乘法操作,得到第二目标输出矩阵,其中,第二目标输出矩阵是维度为a
×
c的矩阵。
[0184]
本实施方案的可选示例可以参考上述信息处理方法中所示的示例,本实施方案中在此不再赘述。
[0185]
作为一种可选的实施方案,上述装置还包括:
[0186]
第七执行单元,用于在检测到需要对第二组输出矩阵中的至少一个输出矩阵执行第二预设操作时,对第二目标输出矩阵执行列分裂操作,得到第二组分裂矩阵;
[0187]
第八执行单元,用于对第二组分裂矩阵中的至少一个分裂矩阵执行第二预设操作。
[0188]
本实施方案的可选示例可以参考上述信息处理方法中所示的示例,本实施方案中在此不再赘述。
[0189]
作为一种可选的实施方案,第七执行单元包括:
[0190]
第六执行模块,用于在第一后置输入矩阵是维度为b
×
c1的矩阵、第二后置输入矩阵是维度为b
×
c2的矩阵、前置输入矩阵是维度为a
×
b的矩阵、且第二目标输出矩阵是维度为a
×
c的矩阵时,对维度为a
×
c的矩阵执行列分裂操作,得到第三分裂矩阵和第四分裂矩阵,其中,一组后置输入矩阵包括第一后置输入矩阵和第二后置输入矩阵,第二组分裂矩阵包括第三分裂矩阵和第四分裂矩阵,第三分裂矩阵是维度为a
×
c1的矩阵,第四分裂矩阵是维度为a
×
c2的矩阵,c为大于1的自然数,c=c1+c2,a、b、c1和c2为自然数。
[0191]
本实施方案的可选示例可以参考上述信息处理方法中所示的示例,本实施方案中在此不再赘述。
[0192]
作为一种可选的实施方案,第二执行单元1306包括:
[0193]
第七执行模块,用于在图像处理器gpu中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵,其中,目标处理装置包括gpu。
[0194]
本实施方案的可选示例可以参考上述信息处理方法中所示的示例,本实施方案中在此不再赘述。
[0195]
作为一种可选的实施方案,第一获取单元1302包括:
[0196]
获取模块,用于在目标预测模型中待处理的一组多维矩阵中获取所述一组前置输入矩阵,并在所述目标预测模型中待处理的目标多维矩阵中获取所述后置输入矩阵,其中,所述目标预测模型用于根据所述一组多维矩阵和所述目标多维矩阵,确定预测出的目标对象。
[0197]
本实施方案的可选示例可以参考上述信息处理方法中所示的示例,本实施方案中在此不再赘述。
[0198]
作为一种可选的实施方案,获取模块包括:获取子模块,第一执行单元1304包括:第八执行模块,第二执行单元1306包括:第九执行模块,其中,
[0199]
获取子模块,用于在一组多维矩阵包括维度为d
×
a1
×
b的矩阵以及维度为d
×
a2
×
b的矩阵、且目标多维矩阵是维度为d
×b×
c的矩阵中,在一组多维矩阵中获取d个维度为a1
×
b的第一前置输入矩阵以及d个维度为a2
×
b的第二前置输入矩阵,并在目标多维矩阵中获取d个维度为b
×
c的后置输入矩阵,其中,d为大于1的自然数,a为大于1的自然数,a=a1+a2,a1、a2、b和c为自然数;
[0200]
第八执行模块,用于分别对d个维度为a1
×
b的第一前置输入矩阵以及d个维度为a2
×
b的第二前置输入矩阵执行行合并操作,得到d个目标前置输入矩阵,其中,目标前置输入矩阵是维度为a
×
b的矩阵,每个目标前置输入矩阵是对一个第一前置输入矩阵和一个第二前置输入矩阵执行行合并操作所得到的矩阵;
[0201]
第九执行模块,用于在目标处理装置中分别对d个目标前置输入矩阵和d个后置输入矩阵依次执行矩阵乘法操作,得到d个维度为a
×
c的第一目标输出矩阵,其中,每个第一目标输出矩阵是对一个目标前置输入矩阵和一个后置输入矩阵执行矩阵乘法操作所得到的矩阵。
[0202]
本实施方案的可选示例可以参考上述信息处理方法中所示的示例,本实施方案中在此不再赘述。
[0203]
作为一种可选的实施方案,上述装置还包括:
[0204]
第一调整单元,用于在检测到第一预测模型中的模型结构用于分别对一组前置输入矩阵中的每个前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一组输出矩阵、以及对第一组输出矩阵执行行合并操作,得到第一目标输出矩阵的情况下,对第一预测模型中的模型结构进行调整,得到第二预测模型,其中,第二预测模型中的模型结构用于对一组前置输入矩阵执行行合并操作,得到目标前置输入矩阵,并对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵;
[0205]
其中,目标处理装置用于在第二预测模型中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵。
[0206]
本实施方案的可选示例可以参考上述信息处理方法中所示的示例,本实施方案中在此不再赘述。
[0207]
作为一种可选的实施方案,上述装置还包括:
[0208]
第二调整单元,用于在检测到第三预测模型中的模型结构用于分别对前置输入矩阵与一组后置输入矩阵中的每个后置输入矩阵执行矩阵乘法操作,得到第二组输出矩阵、以及对第二组输出矩阵执行列合并操作,得到第二目标输出矩阵的情况下,对第三预测模型中的模型结构进行调整,得到第四预测模型,其中,第四预测模型中的模型结构用于对一组后置输入矩阵执行列合并操作,得到目标后置输入矩阵,并对前置输入矩阵与目标后置输入矩阵执行矩阵乘法操作,得到第二目标输出矩阵;
[0209]
其中,目标处理装置用于在第四预测模型中对前置输入矩阵与目标后置输入矩阵执行矩阵乘法操作,得到第二目标输出矩阵。
[0210]
本实施方案的可选示例可以参考上述信息处理方法中所示的示例,本实施方案中在此不再赘述。
[0211]
根据本技术实施例的又一个方面,还提供了一种用于实施上述信息处理方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为服务器为例来说明。如图14所示,该电子设备包括存储器1402和处理器1404,该存储器1402中存储有计算机程序,该处理器1404被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
[0212]
可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。
[0213]
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0214]
s1,获取一组前置输入矩阵和后置输入矩阵,其中,一组前置输入矩阵包括多个前置输入矩阵;
[0215]
s2,在检测到需要分别对一组前置输入矩阵中的每个前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一组输出矩阵、以及对第一组输出矩阵执行行合并操作,得到第一目标输出矩阵的情况下,对一组前置输入矩阵执行行合并操作,得到目标前置输入矩阵;
[0216]
s3,在目标处理装置中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一目标输出矩阵。
[0217]
可选地,本领域普通技术人员可以理解,图14所示的结构仅为示意,电子设备也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备
(mobile internet devices,mid)、pad等终端设备。图14其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图14中所示更多或者更少的组件(如网络接口等),或者具有与图14所示不同的配置。
[0218]
其中,存储器1402可用于存储软件程序以及模块,如本技术实施例中的。信息处理方法和装置对应的程序指令/模块,处理器1404通过运行存储在存储器1402内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的信息处理方法。存储器1402可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1402可进一步包括相对于处理器1404远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。作为一种示例,如图14所示,上述存储器1402中可以但不限于包括上述信息处理装置中的第一获取单元1302、第一执行单元1304及第二执行单元1306。此外,还可以包括但不限于上述信息处理装置中的其他模块单元,本示例中不再赘述。
[0219]
可选地,上述的传输装置1406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1406包括一个网络适配器(network interface controller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1406为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯。
[0220]
此外,上述电子设备还包括:显示器1408,用于显示待识别图像,还可以用于显示目标识别结果;连接总线1410,用于连接上述电子设备中的各个模块部件。
[0221]
在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(p2p,peer to peer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
[0222]
根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0223]
可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0224]
s1,获取一组前置输入矩阵和后置输入矩阵,其中,一组前置输入矩阵包括多个前置输入矩阵;
[0225]
s2,在检测到需要分别对一组前置输入矩阵中的每个前置输入矩阵与后置输入矩阵执行矩阵乘法操作,得到第一组输出矩阵、以及对第一组输出矩阵执行行合并操作,得到第一目标输出矩阵的情况下,对一组前置输入矩阵执行行合并操作,得到目标前置输入矩阵;
[0226]
s3,在目标处理装置中对目标前置输入矩阵与后置输入矩阵执行矩阵乘法操作,
得到第一目标输出矩阵。
[0227]
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-only memory,rom)、随机存取器(random access memory,ram)、磁盘或光盘等。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0228]
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。
[0229]
在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0230]
在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0231]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0232]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以至少两个单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0233]
以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1