一种数据处理方法和装置与流程

文档序号:20874769发布日期:2020-05-26 16:20阅读:164来源:国知局
一种数据处理方法和装置与流程

本申请涉及数据处理领域,特别是涉及一种数据处理方法和装置。



背景技术:

神经网络在语音、图像等多种领域都有着广泛的应用。在神经网络中,归一化指数(softmax)函数是应用于神经网络的输出层的一种函数。

在使用神经网络时,需要对输出层中的节点依次计算每一个节点对应的softmax函数。当输出层中具有n个节点,各个节点的值为x_1,x_2,…,x_n时,其中任意一个节点i的softmax函数可以通过下式得到:

exp(x_i)/sum(exp(x_1),exp(x_2),…,exp(x_n))

其中,exp(x_i)为x_i以自然数e为底的指数函数值,exp也可以示为e,sum()为求和。

传统计算输出层各节点的softmax函数主要采用串行计算的方式,即先依次计算输出层各个节点对应的指数函数值,再对各个节点对应的指数函数值求和,然后根据求和结果依次计算各个节点对应的softmax函数。

当输出层中节点数量较多时,这种串行计算方式会消耗大量的计算时间,降低了数据处理效率。



技术实现要素:

为了解决上述技术问题,本申请提供了一种数据处理方法和装置,可以并行计算输出层中节点的指数函数值,缩短了计算时间,提高了神经网络的数据处理效率。

本申请实施例公开了如下技术方案:

第一方面,本申请实施例提供了一种数据处理方法,神经网络的输出层中节点被分配给多个计算单元,所述计算单元的数量是处理设备根据自身并行处理能力确定的,所述方法包括:

所述处理设备通过所述多个计算单元并行计算所述多个计算单元所分配节点的指数函数值;其中,针对所述多个计算单元中的任意一个目标计算单元,所述目标计算单元依次计算所分配节点各自对应的指数函数值;

所述处理设备根据所述输出层中节点各自对应的指数函数值确定所述输出层中节点各自对应的softmax函数。

可选的,所述目标计算单元依次计算所分配节点各自对应的指数函数值,包括:

所述目标计算单元依次计算所分配节点各自对应的指数函数值,并对所分配节点各自对应的指数函数值求和得到子求和结果。

可选的,所述处理设备根据所述输出层中节点各自对应的指数函数值确定所述输出层中节点各自对应的softmax函数,包括:

所述处理设备通过所述目标计算单元,根据所述多个计算单元分别得到的子求和计算得到所述输出层中节点对应的指数函数值之和;

所述处理设备根据所述输出层中节点各自对应的指数函数值,以及所述指数函数值之和确定所述输出层中节点各自对应的softmax函数。

可选的,所述处理设备根据所述输出层中节点各自对应的指数函数值,以及所述指数函数值之和确定所述输出层中节点各自对应的softmax函数,包括:

所述处理设备通过所述多个计算单元获取所述指数函数值之和;

所述处理设备通过所述多个计算单元并行计算所述多个计算单元所分配节点各自对应的softmax函数。

可选的,所述并行处理能力是根据所述处理设备的线程数量确定的,相应的,所述计算单元的数量等于所述处理设备的空闲线程数量。

可选的,所述神经网络包括多个输出层,所述方法还包括:

所述处理设备通过用于每个输出层的计算单元并行计算每个输出层中节点各自对应的softmax函数。

可选的,所述神经网络应用于语音唤醒,所述神经网络的输出层中节点各自对应的softmax函数用于体现所述神经网络所识别语音的发音元素在不同状态下的概率;其中,所述输出层中任意一个节点用于标识一个状态。

第二方面,本申请实施例提供了一种数据处理装置,神经网络的输出层中节点被分配给多个计算单元,所述计算单元的数量是所述装置根据自身并行处理能力确定的,所述装置包括计算模块和确定模块:

所述计算模块,用于通过所述多个计算单元并行计算所述多个计算单元所分配节点的指数函数值;其中,针对所述多个计算单元中的任意一个目标计算单元,所述目标计算单元依次计算所分配节点各自对应的指数函数值;

所述确定模块,用于根据所述输出层中节点各自对应的指数函数值确定所述输出层中节点各自对应的归一化指数softmax函数。

可选的,所述确定模块,还用于根据目标计算单元依次计算所分配节点各自对应的指数函数值,并对所分配节点各自对应的指数函数值求和得到子求和结果。

可选的,所述确定模块包括第一确定子模块和第二确定子模块:

所述第一确定子模块,用于通过所述目标计算单元,根据所述多个计算单元分别得到的子求和计算得到所述输出层中节点对应的指数函数值之和;

所述第二确定子模块,用于根据所述输出层中节点各自对应的指数函数值,以及所述指数函数值之和确定所述输出层中节点各自对应的softmax函数。

可选的,所述第二确定子模块还用于通过所述多个计算单元获取所述指数函数值之和;

通过所述多个计算单元并行计算所述多个计算单元所分配节点各自对应的softmax函数。

可选的,其特征在于,所述并行处理能力是根据所述装置的线程数量确定的,相应的,所述计算单元的数量等于所述装置的空闲线程数量。

可选的,所述神经网络包括多个输出层,所述计算模块,还用于通过用于每个输出层的计算单元并行计算每个输出层中节点各自对应的softmax函数。

可选的,所述神经网络应用于语音唤醒,所述神经网络的输出层中节点各自对应的softmax函数用于体现所述神经网络所识别语音的发音元素在不同状态下的概率;其中,所述输出层中任意一个节点用于标识一个状态。

第三方面,本申请实施例提供了一种数据处理设备,应用于神经网络,所述神经网络的输出层中节点被分配给多个计算单元,所述计算单元的数量是数据处理设备根据自身并行处理能力确定的;所述数据处理设备包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

通过所述多个计算单元并行计算所述多个计算单元所分配节点的指数函数值;其中,针对所述多个计算单元中的任意一个目标计算单元,所述目标计算单元依次计算所分配节点各自对应的指数函数值;

根据所述输出层中节点各自对应的指数函数值确定所述输出层中节点各自对应的softmax函数。

第四方面,本申请实施例提供了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如第一方面中任意一项或多项所述数据处理方法。

由上述技术方案可以看出,在通过处理设备使用神经网络时,可以根据处理设备自身的并行处理能力确定出计算单元的数量,并将神经网络输出层中节点分配给这些计算单元。在计算输出层中节点各自对应的softmax函数时,处理设备可以通过所述多个计算单元并行计算所述多个计算单元所分配节点的指数函数值,具体的,针对所述多个计算单元中的任意一个目标计算单元,所述目标计算单元依次计算所分配节点各自对应的指数函数值。之后处理设备根据计算出的指数函数值确定所述输出层中节点各自对应的softmax函数。由于可以通过多个计算节点并行计算输出层中节点的指数函数值,相对于串行计算来说提高了计算效率,缩短了计算时间,提高了神经网络的数据处理效率。

附图说明

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

图1为本申请实施例提供的一种数据处理方法的方法流程图;

图2为本申请实施例提供的一种并行计算神经网络输出层中节点对应softmax函数的系统示意图;

图3为本申请实施例提供的一种数据处理装置的装置结构图;

图4为本申请实施例提供的一种数据处理设备的结构图;

图5为本申请实施例提供的一种服务器的结构图。

具体实施方式

下面结合附图,对本申请的实施例进行描述。

由于传统计算输出层各节点的softmax函数主要采用串行计算的方式,当输出层中节点数量较多时,例如有些神经网络输出层的节点会有几千个、几万个,这种串行计算方式会消耗大量的计算时间,降低了数据处理效率。

故此,本申请实施例提供了一种数据处理方法,会根据处理设备的并行处理能力确定出多个计算单元,并采用这多个计算单元并行的计算输出层中节点的指数函数值,从而成倍的节约了计算时间,提高了神经网络的数据处理效率。

本申请实施例所应用的神经网络是存在softmax函数计算的神经网络,例如可以包括深度神经网络(deepneuralnetwork,dnn)、卷积神经网络(convolutionalneuralnetwork,cnn)、递归神经网络(recurrentneuralnetwork,rnn)、长短时记忆模型(longshort-termmemory,lstm)等多种可能的神经网络结构。

本申请实施例采用处理设备进行神经网络中softmax函数的相关计算,该处理设备可以是计算机、服务器、移动终端等设备。为了实现并行化计算输出层节点的softmax函数,本申请实施例中,通过处理设备自身的并行处理能力确定出多个计算单元,并通过多个计算单元并行的处理输出层中节点的softmax函数的计算任务。

本申请实施例提供的数据处理方案包括两个处理阶段,第一个处理阶段用于为输出层中节点设置计算单元的阶段,第二个处理阶段用于通过设置的计算节点为输出层中节点并行计算对应的softmax函数的阶段。其中第一个处理阶段并不需要每一次计算时都执行,例如当一台处理设备已经通过分析并行处理能力确定出了多个计算单元后,若这台处理设备的并行处理能力没有发生改变,这台处理设备可以在之后执行并行计算softmax函数的各类任务时仅执行第二个处理阶段。

本申请实施例并不限定通过何种参数确定一个处理设备的并行处理能力,不过,本申请实施例也提供了一种可行的确定方式,即通过处理设备用于处理softmax函数计算的计算组件的相关参数确定处理设备的并行处理能力。其中,计算组件例如可以是处理设备中的中央处理器(centralprocessingunit,cpu)、图形处理器(graphicsprocessingunit,gpu)、现场可编程门阵列(field-programmablegatearray,fpga)等具有数据处理能的组件中的任意一种或多种,计算组件的相关参数例如可以是cpu的线程数量、gpu的线程数量、fpga的硬件多线程数量等。故在这种实现方式中,处理设备的并行处理能力是根据所述处理设备的线程数量确定的,相应的,计算单元的数量可以等于处理设备的空闲线程数量。同时,采用何种方式实现gpu或cpu的多线程也不应当受到限制,包括但不限于gpu上的统一计算设备架构(computeunifieddevicearchitecture,cuda)、开放运算语言(opencomputinglanguage,opencl),cpu上的共享存储并行编程(openmulti-processing,openmp)、posix线程(pthread)等等。

需要注意的是,神经网络的输出层可以有一个,也可以有多个。当有一个输出层时,处理设备可以将确定出的多个计算单元都应用于该输出层,通过多个计算单元并行计算该输出层中节点的softmax函数。

当有多个输出层时,在一种可能的实现方式中,处理设备可以将确定出的多个计算单元分为多组,包括多个计算单元的一组计算单元可以标识为一个工作组(workgroup),工作组的数量与输出层的数量一致,分别将工作组应用于这些输出层中,例如输出层有10个,确定出的计算单元有100个,处理设备可以将计算单元分为10个工作组,每个工作组包括10个计算单元,并为每个输出层配置一个工作组用于并行计算该输出层中节点的softmax函数。

上述例子中,为了便于说明,针对多个输出层是采用均分计算单元的方式确定工作组,在本申请实施例中,针对多个输出层,也可以采用不均分计算单元的方式确定每个输出层对应的工作组,例如对包括节点数量较多的输出层,其对应的工作组中可以包括数量较多的计算单元,对包括节点数量较少的输出层,其对应的工作组中可以包括数量较少的计算单元。

不论输出层的数量是一个还是多个,针对一个输出层来说,其被配置的一个工作组所包括的一组计算单元中,每一个计算单元需要负责被分配的多个节点的softmax函数计算。本申请实施例中并不限定如何为计算单元分配输出层中的节点,可以是均分,也可以不是均分。

从而,处理设备通过用于每个输出层的计算单元并行计算每个输出层中节点各自对应的softmax函数。针对每个输出层来说,处理设备针对任一个输出层都可以通过用于该输出层的多个计算单元并行计算输出层中节点各自对应的softmax函数。也就是说,不仅在一个输出层中可以采用并行计算节点的softmax函数,在输出层的层面上,处理设备也能并行的处理多个输出层中节点的softmax函数的计算任务,从而进一步的缩短了计算效率。

在介绍完第一个处理阶段后,接下来结合附图对第二个处理阶段进行说明。为了便于说明,之后的实施例中主要以一个输出层作为计算对象,当神经网络中包括多个输出层时,其中任意一个输出层的处理方式均可以参照如下实施例的说明。

图1为本申请实施例提供的一种数据处理方法的方法流程图,神经网络的输出层中节点被分配给多个计算单元,所述计算单元的数量是处理设备根据自身并行处理能力确定的,所述方法包括:

s101:所述处理设备通过所述多个计算单元并行计算所述多个计算单元所分配节点的指数函数值。

其中,针对所述多个计算单元中的任意一个计算单元:目标计算单元,所述目标计算单元依次计算所分配节点各自对应的指数函数值。为了便于描述,在后续实施例中,将目标计算节点作为多个计算单元中的任意一个计算单元说明本申请实施例所提供的实现方案。针对目标计算单元的说明可以视为针对多个计算单元中任意一个计算单元的说明。

以均分输出层中节点为例,若是顺序分配的话,假设一个计算单元n被分配的节点为节点x10n-节点x10n+9,n为大于等于0的整数。

在计算节点的指数函数值时,该输出层的多个计算单元由于是通过处理设备的并行处理能力确定的,故该多个计算单元可以并行的计算各自所负责节点的softmax函数计算任务。在s101中,该softmax函数计算任务为计算节点的指数函数值。

例如图2所示的场景中,假设输出层具有n个节点,分别为x0-xn-1,该输出层被配置了k个计算单元,假设以均分的方式,且一个计算单元被分配了n/k=10个节点。在计算各节点的指数函数值时,虽然一个计算单元是对所分配的10个节点依次计算指数函数,例如计算单元1(kernel1)是依次计算节点x0-x9的指数函数值但是,由于是k个计算单元同时并行处理,故对于该输出层来说,计算完n个节点的指数函数值所需的计算时间将相对于传统方式大大缩短,在该例子中,理想状态下,本申请的这种并行计算方式仅需要传统方式的1/k的计算时间即可完成对n个节点的指数函数计算。

s102:所述处理设备根据所述输出层中节点各自对应的指数函数值确定所述输出层中节点各自对应的softmax函数。

由于通过s101,多个计算单元通过并行的方式快速的计算出输出层中所有节点的指数函数值,故处理设备可以根据计算出的指数函数值确定输出层中节点各自对应的softmax函数。

可见,在通过处理设备使用神经网络时,可以根据处理设备自身的并行处理能力确定出计算单元的数量,并将神经网络输出层中节点分配给这些计算单元。在计算输出层中节点各自对应的softmax函数时,处理设备可以通过所述多个计算单元并行计算所述多个计算单元所分配节点的指数函数值,具体的,针对所述多个计算单元中的任意一个目标计算单元,所述目标计算单元依次计算所分配节点各自对应的指数函数值。之后处理设备根据计算出的指数函数值确定所述输出层中节点各自对应的softmax函数。由于可以通过多个计算节点并行计算输出层中节点的指数函数值,相对于串行计算来说提高了计算效率,缩短了计算时间,提高了神经网络的数据处理效率。

在本申请实施例中,除了可以通过多个计算单元并行的方式快速计算输出层中节点的指数函数外,还可以通过多个计算单元进一步的继续协助计算输出层中节点各自对应的softmax函数,以进一步提高计算softmax函数的效率。

在一种可能的实现方式中,计算单元可以在计算完所分配节点的指数函数后再对指数函数值求和得到子求和结果。以一个目标计算单元为例,目标计算单元依次计算所分配节点各自对应的指数函数值,并对所分配节点各自对应的指数函数值求和得到子求和结果。例如目标计算单元为图2中的计算单元1,计算单元1可以依次计算完x0-x9的指数函数值再对进行求和得到子求和结果即对这10个指数函数值的求和结果。这样在之后计算输出层中节点各自对应的softmax函数过程中,可以更快的通过各个计算单元确定出的子求和结果计算出输出层中节点的指数函数值之和,即不需要对n个指数函数值进行求和,而是仅需要对k个子求和结果进行求和。

在s102中,处理设备在计算输出层中节点的指数函数值之和的过程中,在一种可能的实现方式中,处理设备可以通过应用于该输出层的任意一个计算单元实施该求和计算,例如通过目标计算单元。在图2所示的场景中,处理设备是通过计算单元2完成的指数函数值之和即的计算,其中i处于0~n-1。

由于应用于一个输出层的计算单元的计算结果都缓存在同一个计算空间中指定位置,故目标计算单元可以从指定位置读取各个计算单元确定出的子求和结果,并以此确定出输出层中全部节点的指数函数值之和。在确定出指数函数值之和后,处理设备可以根据所述输出层中节点各自对应的指数函数值,以及所述指数函数值之和确定所述输出层中节点各自对应的softmax函数。

需要注意的是,为了避免出现计算错误,处理设备中应用于输出层的多个计算节点需要在进行计算子求和结果后进行同步操作,即需要等待所有计算节点都确定出对应的子求和结果后再继续之后的计算任务。

当神经网络中包括多个输出层的情况下,被配置用于不同输出层的计算节点不需要进行同步操作,即工作组中计算节点间的同步操作仅限于工作组内的计算节点。例如,神经网络包括输出层1和输出层2,输出层1被配置了三个计算节点,这三个计算节点作为输出层1对应的工作组1。输出层2被配置了十个计算节点,这十个计算节点作为输出层2对应的工作组2。工作组1中的计算节点在进行同步操作时,只要工作组1中的三个计算节点都确定出对应的子求和结果即完成同步操作,继续后续计算任务,并不需要等待工作组2中的计算节点确定出对应的子求和结果。

在通过s102确定出指数函数值之和后,处理设备需要计算各个节点的各自对应的softmax函数。在一种可能的实现方式中,处理设备可以通过多个计算单元并行的完成各个节点的softmax函数计算,进一步的提高计算softmax函数的效率。

由于应用于一个输出层的计算单元的计算结果都缓存在同一个计算空间中指定位置,故各个计算单元可以从指定位置读取目标计算单元确定出的指数函数值之和,并以此确定出所分配节点各自对应的softmax函数。

具体的,处理设备可以通过多个计算单元获取指数函数之和,之后,通过多个计算单元并行计算所述多个计算单元所分配节点各自对应的softmax函数。

例如图2所示的场景中,假设输出层具有n个节点,分别为x0-xn-1,该输出层被配置了k个计算单元,以均分的方式,假设一个计算单元被分配了n/k=10个节点。在计算各节点的softmax函数时,虽然一个计算单元是对所分配的10个节点依次计算softmax函数,例如计算单元1(kernel1)是依次计算节点x0-x9的softmax函数但是,由于是k个计算单元同时并行处理,故对于该输出层来说,计算完n个节点的softmax函数所需的计算时间将相对于传统方式大大缩短,在该例子中,理想状态下,本申请的这种并行计算方式仅需要传统方式的1/k的计算时间即可完成对n个节点的softmax函数计算。

处理设备在通过多个计算单元并行计算节点的softmax函数时,为了避免计算错误,可以先进行同步操作,使得应用于输出层的全部计算单元都获取指数函数值之和后再开始并行计算softmax函数。

当神经网络中包括多个输出层的情况下,被配置用于不同输出层的计算节点不需要进行同步操作,即工作组中计算节点间的同步操作仅限于工作组内的计算节点。以前述输出层1对应的工作组1和输出层2对应的工作组2为例,工作组1中的计算节点在进行同步操作时,只要工作组1中的三个计算节点都获取到指数函数值之和即完成同步操作,可以继续后续计算softmax函数,并不需要等待工作组2中的计算节点都获取到指数函数值之和。

可见,处理设备通过多个计算单元,在计算输出层中节点各自对应的softmax函数的过程中,不仅在计算指数函数值时可以采用并行计算的方式,在最终计算softmax函数时也可以采用并行计算的方式,大大的提高了计算softmax函数的速度,从而有效了提高了神经网络的处理效率。

接下来结合具体的应用场景进一步说明本申请实施例所提供的数据处理方案。

目前一些智能设备或智能设备中的应用具有语音唤醒的功能,例如智能音箱、智能手机中的语音助手等,这些智能设备能够通过语音识别的方式从用户输入的语音中识别出唤醒声音,并在用户输入唤醒声音时激活,以便为用户提供相应的服务。而语音唤醒场景中的唤醒语音的识别就是本申请实施例中数据处理方案的一个常见的应用场景。

在本应用场景中,本申请实施例的神经网络以dnn为例进行介绍,在该dnn的输出层中的任意一个节点可以标识发音元素的一个状态。当根据dnn计算待识别语音时,通过dnn对待识别语音确定出的发音元素进行计算,dnn输出层中各个节点得到各自对应的softmax函数,这些softmax函数用于体现该dnn所识别语音的发音元素在不同状态下的概率。智能设备可以根据dnn确定出的softmax函数,来确定待识别语音是否唤醒语音。

在本应用场景中的dnn,输出层所包括的节点数量一般可以达到6000个左右,如果采用传统的串行计算方式,需要依次计算6000次各节点的指数函数,再进行求和,在根据求和结果依次计算6000次各节点的softmax函数。导致dnn输出层中节点的softmax函数计算时间较长。若通过本申请实施例提供的数据处理方案,可以大大缩减计算softmax函数的时间。

例如dnn包括一个输出层,该输出层包括6000个节点的情况,若为该输出层配置的工作组中包括了100个计算单元,每个计算单元被分配了60个节点,在计算各节点的softmax函数时,可以通过这100个计算单元并行计算,使得完成这6000个节点softmax函数计算的时间在理论上和一个计算单元计算完所分配60个节点的softmax函数的时间相似,使得理论上计算时间最多能够缩短到传统方式中的1/100,从而起到加速整个神经网络计算,缩短响应时间、降低计算功耗等作用。

可以理解的是,本申请的技术方案并不局限应用于上述场景,对于输出层节点较多的模型,例如关键词识别、机器翻译、图像分类、语音识别中使用的模型等,输出层会占据比较多的计算时间,应用本发明的方法均可以起到较为明显的加速效果。

图3为本申请实施例提供的一种数据处理装置的装置结构图,神经网络的输出层中节点被分配给多个计算单元,所述计算单元的数量是所述装置根据自身并行处理能力确定的,所述装置包括计算模块301和确定模块302:

所述计算模块301,用于通过所述多个计算单元并行计算所述多个计算单元所分配节点的指数函数值;其中,针对所述多个计算单元中的任意一个目标计算单元,所述目标计算单元依次计算所分配节点各自对应的指数函数值;

所述确定模块302,用于根据所述输出层中节点各自对应的指数函数值确定所述输出层中节点各自对应的softmax函数。

可选的,所述确定模块,还用于根据目标计算单元依次计算所分配节点各自对应的指数函数值,并对所分配节点各自对应的指数函数值求和得到子求和结果。

可选的,所述确定模块包括第一确定子模块和第二确定子模块:

所述第一确定子模块,用于通过所述目标计算单元,根据所述多个计算单元分别得到的子求和计算得到所述输出层中节点对应的指数函数值之和;

所述第二确定子模块,用于根据所述输出层中节点各自对应的指数函数值,以及所述指数函数值之和确定所述输出层中节点各自对应的softmax函数。

可选的,所述第二确定子模块还用于通过所述多个计算单元获取所述指数函数值之和;

通过所述多个计算单元并行计算所述多个计算单元所分配节点各自对应的softmax函数。

可选的,所述并行处理能力是根据所述装置的线程数量确定的,相应的,所述计算单元的数量等于所述装置的空闲线程数量。

可选的,所述神经网络包括多个输出层,所述计算模块,还用于通过用于每个输出层的计算单元并行计算每个输出层中节点各自对应的softmax函数。

可选的,所述神经网络为深度神经网络,应用于针对智能设备的语音唤醒,所述深度神经网络的输出层中节点各自对应的softmax函数用于体现所述深度神经网络所识别语音的发音元素在不同状态下的概率;其中,所述输出层中任意一个节点用于标识一个状态。

可见,在通过处理设备使用神经网络时,可以根据处理设备自身的并行处理能力确定出计算单元的数量,并将神经网络输出层中节点分配给这些计算单元。在计算输出层中节点各自对应的softmax函数时,处理设备可以通过所述多个计算单元并行计算所述多个计算单元所分配节点的指数函数值,具体的,针对所述多个计算单元中的任意一个目标计算单元,所述目标计算单元依次计算所分配节点各自对应的指数函数值。之后处理设备根据计算出的指数函数值确定所述输出层中节点各自对应的softmax函数。由于可以通过多个计算节点并行计算输出层中节点的指数函数值,相对于串行计算来说提高了计算效率,缩短了计算时间,提高了神经网络的数据处理效率。

图4是根据一示例性实施例示出的一种查询词分类模型的确定装置400的框图。例如,装置400可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

参照图4,装置400可以包括以下一个或多个组件:处理组件402,存储器404,电源组件406,多媒体组件408,音频组件410,输入/输出(i/o)的接口412,传感器组件414,以及通信组件416。

处理组件402通常控制装置400的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件402可以包括一个或多个处理器420来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。例如,处理部件402可以包括多媒体模块,以方便多媒体组件408和处理组件402之间的交互。

存储器404被配置为存储各种类型的数据以支持在设备400的操作。这些数据的示例包括用于在装置400上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器404可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

电源组件406为装置400的各种组件提供电力。电源组件406可以包括电源管理系统,一个或多个电源,及其他与为装置400生成、管理和分配电力相关联的组件。

多媒体组件408包括在所述装置400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件408包括一个前置摄像头和/或后置摄像头。当设备400处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件410被配置为输出和/或输入音频信号。例如,音频组件410包括一个麦克风(mic),当装置400处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器404或经由通信组件416发送。在一些实施例中,音频组件410还包括一个扬声器,用于输出音频信号。

i/o接口412为处理组件402和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件414包括一个或多个传感器,用于为装置400提供各个方面的状态评估。例如,传感器组件414可以检测到设备400的打开/关闭状态,组件的相对定位,例如所述组件为装置400的显示器和小键盘,传感器组件414还可以检测装置400或装置400一个组件的位置改变,用户与装置400接触的存在或不存在,装置400方位或加速/减速和装置400的温度变化。传感器组件414可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件414还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件414还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件416被配置为便于装置400和其他设备之间有线或无线方式的通信。装置400可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信部件416经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件416还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。

在示例性实施例中,装置400可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

图5是本发明实施例中服务器的结构示意图。该服务器500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,cpu)522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在服务器500上执行存储介质530中的一系列指令操作。

服务器500还可以包括一个或一个以上电源526,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,一个或一个以上键盘556,和/或,一个或一个以上操作系统541,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器404,上述指令可由装置400的处理器420执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种数据处理方法,所述方法包括:

通过所述多个计算单元并行计算所述多个计算单元所分配节点的指数函数值;其中,针对所述多个计算单元中的任意一个目标计算单元,所述目标计算单元依次计算所分配节点各自对应的指数函数值;

根据所述输出层中节点各自对应的指数函数值确定所述输出层中节点各自对应的softmax函数。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(英文:read-onlymemory,缩写:rom)、ram、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1