掌桥专利:专业的专利平台
掌桥专利
首页

数据运算方法、装置及终端设备

文献发布时间:2023-06-19 11:29:13


数据运算方法、装置及终端设备

技术领域

本申请属于数据处理技术领域,尤其涉及数据运算方法、装置及终端设备。

背景技术

随着AI(Artificial Intelligence,人工智能)技术的发展,数据运算和模型演练都需要通过计算机进行大量的运算过程,传统的数据运算包括多个单次运算,而在执行多个单次运算时,通常是依次进行各个单次运算的,而在后的单次运算依赖于在前的各次单次运算的结果的情况下,需要将在前的各次单次运算进行重新运算,才能得到本次单次运算的结果,由此导致整个数据运算过程较慢、耗时较长,而这样的处理速度无法满足日益复杂的计算需求。

发明内容

为克服相关技术中存在的问题,本申请实施例提供了数据运算方法、装置及终端设备。

本申请是通过如下技术方案实现的:

第一方面,本申请实施例提供了一种数据运算方法,包括:

获取数据运算请求,所述数据运算请求中包含对数据处理的预设运算规则;

基于所述预设运算规则,建立多个并行的数据运算分支;其中,每个所述数据运算分支中包括多个依次连接的运算节点,且至少一个运算节点为第一运算节点,每个所述第一运算节点与其他数据运算分支中的至少一个第一运算节点关联,能够接收相关联的第一运算节点的运算结果和/或向相关联的第一运算节点发送运算结果;

接收待处理数据,并将所述待处理数据输入所述多个并行的数据运算分支;

通过所述多个并行的数据运算分支对所述待处理数据进行运算,得到数据运算结果。

在第一方面的一种可能的实现方式中,所述接收待处理数据,并将所述待处理数据输入所述多个并行的数据运算分支,包括:

接收所述待处理数据,所述待处理数据包括多部分数据;

基于所述预设运算规则,确定各部分数据对应的数据运算分支;

将各部分数据分别输入至对应的数据运算分支中。

在第一方面的一种可能的实现方式中,所述通过所述多个并行的数据运算分支对所述待处理数据进行运算,包括:

对于每个所述数据运算分支,任一运算节点对输入的数据进行运算,并将第一运算结果传输给当前数据运算分支中的下一运算节点;

在下一运算节点为所述第一运算节点的情况下,获取与所述下一运算节点相关联的第一运算节点发送的第二运算结果,并基于所述第一运算结果和所述第二运算结果进行运算,将运算结果发送给当前数据运算分支中的下一运算节点;其中,所述第二运算结果为所述相关联的第一运算节点对输入的数据运算得到的运算结果;或

在下一运算节点为所述第一运算节点的情况下,所述第一运算节点基于所述第一运算结果进行运算得到第三运算结果,并将所述第三运算结果发送给相关联的第一运算节点和当前数据运算分支中的下一运算节点。

在第一方面的一种可能的实现方式中,所述获取相关联的第一运算节点发送的第二运算结果,包括:

所述第一运算节点向所述相关联的第一运算节点发送第一运算结果请求;

所述相关联的第一运算节点基于所述第一运算结果请求,将所述第二运算结果发送给所述第一运算节点。

在第一方面的一种可能的实现方式中,所述将所述第三运算结果发送给相关联的第一运算节点,包括:

接收所述相关联的第一运算节点发送的第二运算结果请求;

基于所述第二运算结果请求,将所述第三运算结果发送给所述相关联的第一运算节点。

在第一方面的一种可能的实现方式中,所述获取相关联的第一运算节点发送的第二运算结果,包括:

在未获取到所述第二运算结果的情况下,所述第一运算节点及在所述第一运算节点之后的运算节点停止运算。

在第一方面的一种可能的实现方式中,所述方法还包括:

输出各个所述数据运算分支得到的数据运算结果到报告生成节点;

通过所述报告生成节点,将各个数据运算结果生成数据运算结果报告。

第二方面,本申请实施例提供了一种数据运算装置,包括:

请求获取模块,用于获取数据运算请求,所述数据运算请求中包含对数据处理的预设运算规则;

运算分支建立模块,用于基于所述预设运算规则,建立多个并行的数据运算分支;其中,每个所述数据运算分支中包括多个依次连接的运算节点,且至少一个运算节点为第一运算节点,每个所述第一运算节点与其他数据运算分支中的至少一个第一运算节点关联,能够接收相关联的第一运算节点的运算结果和/或向相关联的第一运算节点发送运算结果;

数据接收模块,用于接收待处理数据,并将所述待处理数据输入所述多个并行的数据运算分支;

运算模块,用于通过所述多个并行的数据运算分支对所述待处理数据进行运算,得到数据运算结果。

第三方面,本申请实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的数据运算方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的网络训练方法,或如第二方面任一项所述的数据运算方法。

第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的网络训练方法,或如第二方面任一项所述的数据运算方法。

本申请实施例与现有技术相比存在的有益效果是:

本申请实施例,根据数据运算请求中的预设运算规则建立多个并行的数据运算分支,每个数据运算分支中包括多个依次连接的运算节点,且至少一个运算节点为第一运算节点,每个第一运算节点与其他数据运算分支中的至少一个第一运算节点关联,能够接收相关联的第一运算节点的运算结果和/或向相关联的第一运算节点发送运算结果,因此在将待处理数据输入到该多个并行的数据运算分支之后,能够通过多个数据运算分支对该待处理数据进行并行计算,而且在某个数据运算分支依赖于其他数据运算分支的数据的情况下,能够通过相关联的两个第一运算节点传递运算结果数据,而不需要再重新进行运算得到该运算结果数据,而只需直接使用该运算结果数据即可,从而能够提高数据运算速度。

可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一实施例提供的应用场景示意图;

图2是本申请一实施例提供的数据运算方法的流程示意图;

图3是本申请一实施例提供的多个并行的数据运算分支的示意图;

图4是本申请一实施例提供的数据运算方法的流程示意图;

图5是本申请一实施例提供的数据运算方法的流程示意图;

图6是本申请一实施例提供的数据运算方法的流程示意图;

图7是本申请一实施例提供的多个并行的数据运算分支的示意图;

图8是本申请一实施例提供的数据运算装置的结构示意图;

图9是本申请一实施例提供的数据运算装置的结构示意图;

图10是本申请一实施例提供的终端设备的结构示意图;

图11是本申请一实施例提供的数据运算方法所适用于的计算机的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。

随着AI技术的发展,数据运算和模型演练都需要通过计算机进行大量的运算过程,传统的数据运算包括多个单次运算,而在执行多个单次运算时,通常是依次进行各个单次运算的,而在后的单次运算依赖于在前的各次单次运算的结果的情况下,需要将在前的各次单次运算进行重新运算,才能得到本次单次运算的结果,由此导致整个数据运算过程较慢,耗时较长。

单次的运算较为费时费力,无法将运算结果相互匹配。而且,在运算结果依赖于其它单次运算的结果的情况下,只能在新的单次运算上将之前各个单次运算也加上,导致数据运算结果较慢,而这样的处理速度无法满足日益复杂的计算需求。

基于上述问题,本申请实施例中提供了数据运算方法,根据数据运算请求中的预设运算规则建立多个并行的数据运算分支,每个数据运算分支中包括多个依次连接的多个运算节点,且至少一个运算节点为第一运算节点,每个第一运算节点与其他数据运算分支中的至少一个第一运算节点关联,能够接收相关联的第一运算节点的运算结果和/或向相关联的第一运算节点发送运算结果,因此在将待处理数据输入到该多个并行的数据运算分支之后,能够通过多个数据运算分支对该待处理数据同时进行运算,而且在某个数据运算分支依赖于其他数据运算分支的数据的情况下,不需要再重新进行运算得到该运算结果数据,通过相关联的两个第一运算节点传递运算结果数据,即可直接使用该运算结果数据,从而能够提高数据运算速度。

举例说明,本申请实施例可以应用到如图1所示的示例性场景中,在该场景中,可以通过终端10向服务器20发送数据,服务器根据终端10发送的数据按照一定运算规则进行运算,得到数据运算结果。

例如,终端10可以首先将包含对数据处理的预设运算规则的数据运算请求发送给服务器20,服务器20根据该预设运算规则建立多个并行的数据运算分支,每个数据运算分支中包括多个依次连接的运算节点,且至少一个运算节点为第一运算节点,每个第一运算节点与其他数据运算分支中的至少一个第一运算节点关联,能够接收相关联的第一运算节点的运算结果和/或向相关联的第一运算节点发送运算结果;

终端10将待处理数据发送给服务器20,服务器20将待处理数据输入多个并行的数据运算分支,通过多个并行的数据运算分支对待处理数据进行运算,得到数据运算结果。

本实施例中,终端10和服务器20均可以为机器人、计算机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)等终端,本申请实施例对终端10和服务器20的具体类型不作任何限制。

为了使本技术领域的人员更好地理解本发明方案,下面将结合图1,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图2是本申请一实施例提供的数据运算方法的示意性流程图,参照图2,对该数据运算方法的详述如下:

在步骤101中,获取数据运算请求,所述数据运算请求中包含对数据处理的预设运算规则。

其中,上述预设运算规则可以为某种算法,例如,上述预设运算规则可以为人工智能等领域内用到的神经网络算法。

示例性的,以数据A、数据B和数据C为例,上述预设运算规则可以为对数据A、数据B和数据C进行包括加、减、乘、除、微分、积分、迭代等在内的一种运算或两种以上运算的组合。

在步骤102中,基于所述预设运算规则,建立多个并行的数据运算分支。

其中,每个所述数据运算分支中包括多个依次连接的运算节点,且至少一个运算节点为第一运算节点,每个所述第一运算节点与其他数据运算分支中的至少一个第一运算节点关联,能够接收相关联的第一运算节点的运算结果和/或向相关联的第一运算节点发送运算结果。

参见图3,以三个数据运算分支为例进行说明,三个数据运算分支分别为数据运算分支1、数据运算分支2和数据运算分支3,其中每个数据运算分支分别包括三个运算节点。

具体地,数据运算分支1的三个运算节点依次为运算节点11、运算节点12和运算节点13,数据运算分支2的三个运算节点依次为运算节点21、运算节点22和运算节点23,数据运算分支3的三个运算节点依次为运算节点31、运算节点32和运算节点33。其中,在数据运算分支1中,运算节点11和运算节点12为两个第一运算节点;在数据运算分支2中,运算节点22和运算节点23为两个第一运算节点;数据运算分支3中,运算节点31为第一运算节点。

本实施例中,每个数据运算分支中的三个运算节点依次连接,另外运算节点11与运算节点22关联,运算节点22还与运算节点31关联,运算节点31还与运算节点23关联,运算节点23还与运算节点12关联。

一个实施例中,图3所示的三个数据运算分支对应的预设运算规则可以为:

对数据A依次进行运算A11、运算A12和运算A13;

对数据B进行运算B21,再对运算A11的结果和运算B21的结果进行运算B22;

对数据C和运算B22的结果进行运算C31,再对运算C31的结果进行运算C32,再对运算C32的结果进行运算C33;

对运算A12的结果、运算B22的结果和运算C31的结果进行运算B23。

需要说明的是,运算A11的结果即为运算节点11的运算结果,运算B21的结果即为运算节点21的运算结果,依此类推。本实施例中的各个运算都可以为前述的加、减、乘、除、微分、积分、迭代等在内的一种运算或两种以上运算的组合,而且各个运算之间可以部分相同或完全不同,本申请实施例对此不予限定。

在步骤103中,接收待处理数据,并将所述待处理数据输入所述多个并行的数据运算分支。

参见图4,一些实施例中,步骤103可以包括以下步骤:

在步骤1031中,接收所述待处理数据,所述待处理数据包括多部分数据。

其中,上述待处理数据可以为与步骤101中所述的预设运算规则对应的数据。示例性的,上述待处理数据可以包括与各个数据运算分支一一对应的数据。例如,根据该预设运算规则可以建立三个数据运算分支,对应的上述待处理数据可以包括三部分数据,分别于三个数据运算分支一一对应。

在步骤1032中,基于所述预设运算规则,确定各部分数据对应的数据运算分支。

具体地,在基于预设运算规则建立的多个并行的数据运算分支的数量为N时,上述待处理数据中也包括N部分数据。其中,每个数据运算分支对应上述待处理数据中的一部分数据。

例如,每个数据运算分支可以对应一种数据特征,基于每个数据运算分支所对应的数据特征,确定上述待处理数据中各部分数据与各个数据运算分支的对应关系。例如,每个数据运算分支可以对应一种数据名称信息,根据上述待处理数据中各部分数据的数据名称信息,确定各部分数据对应的数据运算分支。例如,可以为每个数据计算分支设置一个数据输入接口,将对应的数据通过数据输入接口直接输入到对应的数据计算分支中进行运算。

在步骤1033中,将各部分数据分别输入至对应的数据运算分支中。

其中,在确定出各部分数据对应的数据运算分支后,将各部分数据输入到对应的数据运算分支中,按照预设运算规则进行对应的运算。而具体的运算过程可以参见步骤104中所述的内容,在此先不予详述。

在步骤104中,通过所述多个并行的数据运算分支对所述待处理数据进行运算,得到数据运算结果。

本步骤中,每个数据运算分支接收到对应的数据之后,对接收到的数据按照预设运算规则进行运算,得到数据运算结果。其中,在存在关联的两个第一运算节点之间,在前的第一运算节点可以直接向在后的第一运算节点传递运算结果,而在后的第一运算节点不需要重新执行在前的第一运算节点的运算过程,直接使用在前的第一运算节点得到的运算结果即可,从而能够提高运算速度。

参见图5,一些实施例中,步骤104可以包括以下过程:

在步骤1041中,对于每个所述数据运算分支,任一运算节点对输入的数据进行运算,并将第一运算结果传输给当前数据运算分支中的下一运算节点。

如图3所示,对于数据运算分支1,运算节点11将输入的数据进行运算,其运算结果作为运算节点12的输入;运算节点12对输入的数据进行运算,其运算结果作为运算节点13的输入;运算节点13对输入的数据进行运算。

对于数据运算分支2,运算节点21将输入的数据进行运算,其运算结果作为运算节点22的输入;运算节点22对输入的数据进行运算,其运算结果作为运算节点23的输入;运算节点23对输入的数据进行运算。

对于数据运算分支3,运算节点31将输入的数据进行运算,其运算结果作为运算节点32的输入;运算节点32对输入的数据进行运算,其运算结果作为运算节点33的输入;运算节点33对输入的数据进行运算。

在步骤1042中,在下一运算节点为所述第一运算节点的情况下,获取与所述下一运算节点相关联的第一运算节点发送的第二运算结果,并基于所述第一运算结果和所述第二运算结果进行运算,将运算结果发送给当前数据运算分支中的下一运算节点。

其中,所述第二运算结果为所述相关联的第一运算节点对输入的数据运算得到的运算结果。

参见图3,例如,运算节点22为第一运算节点,而且运算节点22依赖于运算节点11的运算结果,因此在运算节点22进行运算之前需要获取相关联的运算节点11的运算结果,再根据运算节点12的运算结果和运算节点11的运算结果进行运算,再将运算结果发送给下一运算节点23。

例如,运算节点31为第一运算节点,而且运算节点31依赖于运算节点22的运算结果,因此,在运算节点31进行运算之前需要获取相关联的运算节点22的运算结果,再根据运算节点22的运算结果进行运算,再将运算结果发送给下一运算节点32。

例如,运算节点23为第一运算节点,而且运算节点23依赖于运算节点12的运算结果和运算节点31的运算结果,因此,在运算节点23进行运算之前需要获取相关联的运算节点12的运算结果和运算节点31的运算结果,再根据运算节点12的运算结果和运算节点31的运算结果进行运算。

示例性的,步骤1042中所述的获取相关联的第一运算节点发送的第二运算结果,具体可以包括:

在步骤A1中,所述第一运算节点向所述相关联的第一运算节点发送第一运算结果请求;

在步骤B1中,所述相关联的第一运算节点基于所述第一运算结果请求,将所述第二运算结果发送给所述第一运算节点。

本实施例中,向相关联的第一运算节点发送运算结果的第一运算节点为在前的第一运算节点,获取相关联的第一运算节点发送运算结果的第一运算节点为在后的第一运算节点。如图3所示,运算节点11向运算节点22发送运算结果,因此,运算节点11相对于运算节点22为在前的第一运算节点,运算节点22相对于运算节点11为在后的第一运算节点。

具体地,在后的第一运算节点可以向在前的第一运算节点发送第一运算结果请求,以使得在前的第一运算节点在运算完成得到第二运算结果之后,将第二运算结果发送给在后的第一运算节点。

示例性的,第一运算结果请求可以包含在后的第一运算节点的第一标识,用于指示在前的第一运算节点将第二运算结果发送给与第一标识对应的运算节点。

例如,运算节点22可以向运算节点11发送第一运算结果请求,第一运算结果请求中包含运算节点22的第一标识,运算节点11在运算完成得到运算结果之后,根据第一标识将运算结果发送给运算节点22。

在一种可能的实现方式中,在未获取到所述第二运算结果的情况下,所述第一运算节点及在所述第一运算节点之后的运算节点停止运算,等待上述第二运算结果,并在接收相关联的第一运算节点发送的第二运算结果之后,再基于第一运算结果和第二运算结果进行运算。

可以理解的,由于在后的第一运算节点依赖于在前的第一运算节点的第二运算结果,而在未接收到在前的第一运算节点的第二运算结果的情况下,可以控制在后的第一运算节点及在所述第一运算节点之后的运算节点停止运算,以节省资源,并在接收到在前的第一运算节点的第二运算结果的情况下,再控制在后的第一运算节点基于第一运算结果和第二运算结果进行运算,并将运算结果发送给当前运算分支中的下一运算节点。

在步骤1043中,在下一运算节点为所述第一运算节点的情况下,所述第一运算节点基于所述第一运算结果进行运算得到第三运算结果,并将所述第三运算结果发送给相关联的第一运算节点和当前数据运算分支中的下一运算节点。

参见图3,例如,运算节点11为第一运算节点,而运算节点22依赖于运算节点11的运算结果,因此在运算节点11基于第一运算结果进行运算得到第三运算结果之后,需要将第三运算结果发送给运算节点22,以使得运算节点22直接使用该第三运算结果进行相应运算。

例如,运算节点12为第一运算节点,而运算节点23依赖于运算节点12的运算结果,因此在运算节点12基于第一运算结果进行运算得到第三运算结果之后,需要将第三运算结果发送给运算节点23,以使得运算节点22直接使用该第三运算结果进行相应运算。

示例性的,步骤1043中所述的将所述第三运算结果发送给相关联的第一运算节点,具体可以包括:

在步骤A2中,接收所述相关联的第一运算节点发送的第二运算结果请求;

在步骤B2中,基于所述第二运算结果请求,将所述第三运算结果发送给所述相关联的第一运算节点。

本实施例中,由于在后的第一运算节点依赖于在前的第一运算节点的运算结果,因此在后的第一运算节点可以向在前的第一运算节点发送第二运算结果请求,在前的第一运算节点在运算完成得到第三运算结果之后,根据该第二运算结果请求将第三运算结果发送给在后的第一运算节点。

示例性的,第二运算结果请求可以包含在后的第一运算节点的第二标识,在前的第一运算节点根据该第二标识将第三运算结果发送给在后的第一运算节点。

例如,运算节点22可以向运算节点11发送第二运算结果请求,第二运算结果请求中包含运算节点22的第二标识,运算节点11在运算完成得到运算结果11之后,根据第二标识将运算结果11发送给运算节点22。

示例性的,以图3和图7为例,对步骤104进行进一步说明。具体地,待处理数据可以包括数据A、数据B和数据C,其中,数据A需要输入到数据运算分支1中,数据B需要输入到数据运算分支2中,数据C需要输入到数据运算分支3中,以下基于上述内容说明对数据A、数据B和数据C的运算过程。

输入数据运算分支1中的数据A被运算节点11经过运算A11后,生成运算A11的结果,并将运算A11的结果传递给运算节点12和数据运算分支2中的运算节点22;运算节点12对运算A11的结果进行运算A12后,生成运算A12的结果,并将运算A12的结果传递给运算节点13和数据运算分支2中的运算节点23;运算节点13对运算A12的结果进行运算A13后,生成运算A13的结果。

输入数据运算分支2中的数据B被运算节点21经过运算B21后,生成运算B21的结果,并将运算B21的结果传递给运算节点22;运算节点22对运算B21的结果和运算A11的结果进行运算B22后,生成运算B22的结果,并将运算B22的结果传递给运算节点23和数据运算分支3中的运算节点31。

数据运算分支3中的运算节点31对运算B22的结果和输入数据运算分支3中的数据C(在其他实施例中,也可以不包括数据C)进行运算C31,生成运算C31的结果,并将运算C31的结果传递给运算节点32和数据运算分支2中的运算节点23;运算节点32对运算C31的结果进行运算C32后,生成运算C32的结果,并将运算C32的结果传递给运算节点33;运算节点33对运算C32的结果进行运算C33后,生成运算C33的结果。

数据运算分支2中的运算节点23对运算A12的结果、运算B22的结果和运算C31的结果进行运算B23后,生成运算B23的结果。

其中,运算A13的结果、运算B23的结果和运算C33的结果即为步骤104中所述的数据运算结果。

在一些实施例中,上述数据运算方法还可以包括生成数据运算结果报告的步骤。示例性的,参见图6,基于图2所示的实施例,上述数据运算方法还可以包括:

在步骤105中,输出各个所述数据运算分支得到的数据运算结果到报告生成节点,将各个数据运算结果生成数据运算结果报告。

其中,在各个数据运算分支的最后一个运算节点得到数据运算结果之后,将各个数据运算结果输出到报告生成节点,由报告生成节点基于预设规则将各个数据运算结果生成数据运算结果报告。

参见图7,数据运算分支1对应的数据运算结果为运算A13的结果,数据运算分支2对应的数据运算结果为运算B23的结果,数据运算分支3对应的数据运算结果为运算C33的结果,将运算A13的结果、运算B23的结果和运算C33的结果输入到报告生成节点,报告生成节点基于预设规则将运算A13的结果、运算B23的结果和运算C33的结果生成数据运算结果报告。

上述数据运算方法,在将待处理数据输入到该多个并行的数据运算分支之后,能够通过多个数据运算分支对该待处理数据进行并行计算,而且在某个数据运算分支依赖于其他数据运算分支的数据的情况下,能够通过相关联的两个第一运算节点传递运算结果数据,而不需要再重新进行运算得到该运算结果数据,而只需直接使用该运算结果数据即可,从而尽可能地提高当前计算机的运算效率,通过动态资源调配让计算机的运算效率达到最高,提高算法的运算执行效率,不断缩短运算时间,让计算机的运算任务的执行效率得到提升;同时,能够让不同的线性运算节点之间的运算结果进行多维传递,避免在不同的线性运算节点中进行不必要的重复运算,提升数据运算的总体速度。

应理解,上述车头朝向识别方法的各个实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

对应于上文实施例所述的数据运算方法,图8示出了本申请实施例提供的数据运算装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。

参见图8,本申请实施例中的数据运算装置可以包括请求获取模块201、运算分支建立模块202、数据接收模块203和运算模块204。

其中,请求获取模块201,用于获取数据运算请求,所述数据运算请求中包含对数据处理的预设运算规则;

运算分支建立模块202,用于基于所述预设运算规则,建立多个并行的数据运算分支;其中,一个所述数据运算分支中包括多个依次连接的运算节点,且所述多个数据运算分支中的部分运算节点为第一运算节点,每个所述第一运算节点与至少一个第一运算节点关联,能够接收相关联的第一运算节点的运算结果和/或向相关联的第一运算节点发生运算结果;

数据接收模块203,用于接收待处理数据,并将所述待处理数据输入所述多个并行的数据运算分支;

运算模块204,用于通过所述多个并行的数据运算分支对所述待处理数据进行运算,得到数据运算结果。

在一些实施例中,参见图9,基于图8所示的实施例,上述数据接收模块203可以包括:

接收单元2031,用于接收所述待处理数据,所述待处理数据包括多部分数据;

确定单元2032,用于基于所述预设运算规则,确定各部分数据对应的数据运算分支;

输入单元2033,用于将各部分数据分别输入至对应的数据运算分支中。

在一些实施例中,参见图9,基于图8所示的实施例,上述运算模块204可以包括:

第一运算单元2041,用于对于每个所述数据运算分支,任一运算节点对输入的数据进行运算,并将第一运算结果传输给当前数据运算分支中的下一运算节点;

第二运算单元2042,用于在下一运算节点为所述第一运算节点的情况下,获取与所述下一运算节点相关联的第一运算节点发送的第二运算结果,并基于所述第一运算结果和所述第二运算结果进行运算,将运算结果发送给当前数据运算分支中的下一运算节点;其中,所述第二运算结果为所述相关联的第一运算节点对输入的数据运算得到的运算结果;

第三运算单元2043,用于在下一运算节点为所述第一运算节点的情况下,所述第一运算节点基于所述第一运算结果进行运算得到第三运算结果,并将所述第三运算结果发送给相关联的第一运算节点和当前数据运算分支中的下一运算节点。

可选的,所述获取相关联的第一运算节点发送的第二运算结果,包括:

所述第一运算节点向所述相关联的第一运算节点发送第一运算结果请求;

所述相关联的第一运算节点基于所述第一运算结果请求,将所述第二运算结果发送给所述第一运算节点。

可选的,所述将所述第三运算结果发送给相关联的第一运算节点,包括:

接收所述相关联的第一运算节点发送的第二运算结果请求;

基于所述第二运算结果请求,将所述第三运算结果发送给所述相关联的第一运算节点。

可选的,所述获取相关联的第一运算节点发送的第二运算结果,包括:

在未获取到所述第二运算结果的情况下,所述第一运算节点及在所述第一运算节点之后的运算节点停止运算。

在一些实施例中,参见图9,基于图8所示的实施例,上述装置还可以包括:

报告生成模块205,用于输出各个所述数据运算分支得到的数据运算结果到报告生成节点,将各个数据运算结果生成数据运算结果报告。

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请实施例还提供了一种终端设备,参见图10,该终端设备300可以包括:至少一个处理器310、存储器320以及存储在所述存储器320中并可在所述至少一个处理器310上运行的计算机程序,所述处理器310执行所述计算机程序时实现上述任意各个方法实施例中的步骤,例如图2所示实施例中的步骤101至步骤104。或者,处理器310执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如图8所示模块201至204的功能。

示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器320中,并由处理器310执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序段,该程序段用于描述计算机程序在终端设备300中的执行过程。

本领域技术人员可以理解,图10仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如输入输出设备、网络接入设备、总线等。

处理器310可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器320可以是终端设备的内部存储单元,也可以是终端设备的外部存储设备,例如插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。所述存储器320用于存储所述计算机程序以及终端设备所需的其他程序和数据。所述存储器320还可以用于暂时地存储已经输出或者将要输出的数据。

总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。

本申请实施例提供的数据运算方法可以应用于计算机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。

以所述终端设备为计算机为例。图11示出的是与本申请实施例提供的计算机的部分结构的框图。参考图11,计算机包括:通信电路410、存储器420、输入单元430、显示单元440、音频电路450、无线保真(wireless fidelity,WiFi)模块460、处理器470以及电源480等部件。本领域技术人员可以理解,图11中示出的计算机结构并不构成对计算机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图11对计算机的各个构成部件进行具体的介绍:

通信电路410可用于收发信息,给处理器470处理。通常,通信电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,通信电路410还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobilecommunication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code DivisionMultiple Access,WCDMA)、长期演进(Long Term Evolution,LTE))、电子邮件、短消息服务(Short Messaging Service,SMS)等。

存储器420可用于存储软件程序以及模块,处理器470通过运行存储在存储器420的软件程序以及模块,从而执行计算机的各种功能应用以及数据处理。存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

输入单元430可用于接收输入的数字或字符信息,以及产生与计算机的用户设置以及功能控制有关的键信号输入。具体地,输入单元430可包括触控面板431以及其他输入设备432。触控面板431,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板431上或在触控面板431附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板431可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器470,并能接收处理器470发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板431。除了触控面板431,输入单元430还可以包括其他输入设备432。具体地,其他输入设备432可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。

显示单元440可用于显示由用户输入的信息或提供给用户的信息以及计算机的各种菜单。显示单元440可包括显示面板441,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板441。进一步的,触控面板431可覆盖显示面板441,当触控面板431检测到在其上或附近的触摸操作后,传送给处理器470以确定触摸事件的类型,随后处理器470根据触摸事件的类型在显示面板441上提供相应的视觉输出。虽然在图11中,触控面板431与显示面板441是作为两个独立的部件来实现计算机的输入和输入功能,但是在某些实施例中,可以将触控面板431与显示面板441集成而实现计算机的输入和输出功能。

音频电路450可提供用户与计算机之间的音频接口。音频电路450可将接收到的音频数据转换后的电信号,传输到扬声器由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路450接收后转换为音频数据,再将音频数据输出处理器470处理后,经通信电路410以发送给比如另一计算机,或者将音频数据输出至存储器420以便进一步处理。

WiFi属于短距离无线传输技术,计算机通过WiFi模块460可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图11示出了WiFi模块460,但是可以理解的是,其并不属于计算机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。

处理器470是计算机的控制中心,利用各种接口和线路连接整个计算机的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器420内的数据,执行计算机的各种功能和处理数据,从而对计算机进行整体监控。可选的,处理器470可包括一个或多个处理单元;优选的,处理器470可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器470中。

计算机还包括给各个部件供电的电源480(比如电池),优选的,电源480可以通过电源管理系统与处理器470逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。

本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述数据运算方法各个实施例中的步骤。

本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述数据运算方法各个实施例中的步骤。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

相关技术
  • 数据运算方法、装置及终端设备
  • 一种整数取模运算方法、装置及终端设备
技术分类

06120112942310