卷积运算方法及装置与流程

文档序号:14008266阅读:151来源:国知局
卷积运算方法及装置与流程

本发明涉及图像处理领域,具体而言,涉及一种卷积运算方法及装置。



背景技术:

在卷积神经网络的应用中,卷积运算占用了处理器的大部分资源。特别是在进行大规模卷积运算时,对处理器的性能要求也大大增加,导致处理器负荷较重的问题。现有技术在解决该问题时,大多是采用性能更佳的处理器来进行卷积运算,然而,这无疑会导致成本增加。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种卷积运算方法及装置,以至少解决由于卷积运算耗能较大造成的处理器负荷较重的技术问题。

根据本发明实施例的一个方面,提供了一种卷积运算方法,包括:在进行本轮卷积运算的过程中,从待处理数据中获取上一轮卷积运算未处理的第一数据,以及从卷积运算模块中获取第二数据;根据上述第一数据及上述第二数据进行本轮卷积运算;将本轮卷积运算的部分数据存储在上述卷积运算模块中,上述部分数据作为下一轮卷积运算的第二数据。

可选地,上述从待处理数据中获取上一轮卷积运算未处理的第一数据包括:通过移动卷积运算窗,提取上述第一数据,其中,上述卷积运算窗移动的步幅小于上述卷积运算窗的宽度。

可选地,在根据上述第一数据及上述第二数据进行本轮卷积运算之后,上述方法还包括:对本轮卷积运算得到的运算结果进行池化运算。

可选地,上述池化运算包括以下至少之一:最大池化运算、平均池化运算。

可选地,上述待处理数据包括串流媒体数据。

根据本发明实施例的另一方面,还提供了一种卷积运算装置,包括:获取模块,用于在进行本轮卷积运算的过程中,从待处理数据中获取上一轮卷积运算未处理的第一数据,以及从卷积运算模块中获取第二数据;卷积运算模块,用于根据上述第一数据及上述第二数据进行本轮卷积运算;以及存储本轮卷积运算的部分数据,上述部分数据作为下一轮卷积运算的第二数据。

可选地,上述获取模块用于执行以下步骤:从待处理数据中获取上一轮卷积运算未处理的第一数据:通过移动卷积运算窗,提取上述第一数据,其中,上述卷积运算窗移动的步幅小于上述卷积运算窗的宽度。

可选地,上述装置还包括:池化模块,用于对本轮卷积运算得到的运算结果进行池化运算。

根据本发明实施例的另一方面,还提供了一种终端,包括:移动卷积运算窗;处理器,上述处理器运行程序,其中,上述程序运行时对于从上述移动卷积运算窗输出的数据执行如下处理步骤:在进行本轮卷积运算的过程中,从待处理数据中获取上一轮卷积运算未处理的第一数据,以及从卷积运算模块中获取第二数据;根据上述第一数据及上述第二数据进行本轮卷积运算;将本轮卷积运算的部分数据存储在上述卷积运算模块中,上述部分数据作为下一轮卷积运算的第二数据。

根据本发明实施例的另一方面,还提供了一种存储介质,上述存储介质包括存储的程序,其中,上述程序执行具有上述任意特征的卷积运算方法。

在本发明实施例中,采用在进行本轮卷积运算的过程中,从待处理数据中获取上一轮卷积运算未处理的第一数据,以及从卷积运算模块中获取第二数据;根据第一数据及第二数据进行本轮卷积运算;将本轮卷积运算的部分数据存储在上述卷积运算模块中,部分数据作为下一轮卷积运算的第二数据的方式,通过根据卷积运算模块中上一轮卷积运算保留的第二数据和待处理数据中上一轮卷积运算未处理的第一数据进行本轮卷积运算,该第一数据不予第二数据重复,达到了提升卷积运算处理效率、降低卷积运算功耗的目的,从而实现了减轻处理器负荷的技术效果,进而解决了由于卷积运算耗能较大造成的处理器负荷较重的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的一种可选的卷积运算方法的流程示意图;

图2是根据本发明实施例的一种可选的卷积运算装置的结构示意图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本发明实施例,提供了一种卷积运算方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本发明实施例的卷积运算方法,如图1所示,该方法包括如下步骤:

步骤s102,在进行本轮卷积运算的过程中,从待处理数据中获取上一轮卷积运算未处理的第一数据,以及从卷积运算模块中获取第二数据。

卷积运算是一种很耗费效能的运算,在卷积神经网络的应用中,特别是卷积运算及连续平行运算,将占据大部分处理器的效能。另一方面,因特网的多媒体应用例如串流媒体也越来越广泛,因此,有必要提出一种卷积运算装置,当用于卷积运算及连续地平行运算的处理数据时,可具有优异的运算性能和低功耗表现,并且能够处理数据串流,实为当前重要的课题之一。

本申请上述步骤s102中,从待处理数据中获取上一轮卷积运算未处理的第一数据包括:通过移动卷积运算窗,提取第一数据,其中,卷积运算窗移动的步幅小于卷积运算窗的宽度。

其中,待处理数据包括串流媒体数据。

步骤s104,根据第一数据及第二数据进行本轮卷积运算。

本申请上述步骤s104中,第一数据与第二数据不重复,在根据第一数据及第二数据进行本轮卷积运算的过程中,基于卷积运算窗的滤波器系数对第一数据及第二数据进行本轮卷积运算。

步骤s106,将本轮卷积运算的部分数据存储在上述卷积运算模块中,部分数据作为下一轮卷积运算的第二数据。

本申请上述步骤s106中,卷积神经网络可以包括多个运算层,如卷积层、池化窗等,卷积层和池化层的层数也可以是多层,各层的输出可以所谓下一层的输入,例如,第n层卷积层的输出可以是第n层池化层的输入,第n层池化层的输出可以是第n+1层卷积层的输入,第n层运算层的输出可以是第n+1层运算层的输入。为了提高运算效率,在进行第n层运算层的云算时,可以进行第n+i层运算层的部分运算,有效利用运算资源同时降低第n+i层运算层的运算量,其中,n、i为正整数。

可选地,在根据第一数据及第二数据进行本轮卷积运算之后,方法还包括:对本轮卷积运算得到的运算结果进行池化运算。其中,池化运算包括以下至少之一:最大池化运算、平均池化运算。

通过上述步骤,通过根据卷积运算模块中上一轮卷积运算保留的第二数据和待处理数据中上一轮卷积运算未处理的第一数据进行本轮卷积运算,该第一数据不予第二数据重复,达到了提升卷积运算处理效率、降低卷积运算功耗的目的,从而实现了减轻处理器负荷的技术效果,进而解决了由于卷积运算耗能较大造成的处理器负荷较重的技术问题。

实施例2

本发明实施例还提供了一种卷积运算装置。需要说明的是,该实施例的卷积运算装置可以用于执行本发明实施例的卷积运算方法。

图2是根据本发明实施例的一种卷积运算装置的示意图。如图2所示,该卷积运算包括:获取模块20和卷积运算模块22。

获取模块20,用于在进行本轮卷积运算的过程中,从待处理数据中获取上一轮卷积运算未处理的第一数据,以及从卷积运算模块中获取第二数据;

卷积运算模块22,用于根据所述第一数据及所述第二数据进行本轮卷积运算;以及存储本轮卷积运算的部分数据,所述部分数据作为下一轮卷积运算的第二数据。

可选地,所述获取模块20用于执行以下步骤:从待处理数据中获取上一轮卷积运算未处理的第一数据:通过移动卷积运算窗,提取所述第一数据,其中,所述卷积运算窗移动的步幅小于所述卷积运算窗的宽度。

可选地,本实施例的卷积运算装置还包括:池化模块,用于对本轮卷积运算得到的运算结果进行池化运算。

可选地,所述池化运算包括以下至少之一:最大池化运算、平均池化运算。

可选地,所述待处理数据包括串流媒体数据。

在本发明实施例中,采用在进行本轮卷积运算的过程中,从待处理数据中获取上一轮卷积运算未处理的第一数据,以及从卷积运算模块中获取第二数据;根据第一数据及第二数据进行本轮卷积运算;将本轮卷积运算的部分数据存储在上述卷积运算模块中,部分数据作为下一轮卷积运算的第二数据的方式,通过根据卷积运算模块中上一轮卷积运算保留的第二数据和待处理数据中上一轮卷积运算未处理的第一数据进行本轮卷积运算,该第一数据不予第二数据重复,达到了提升卷积运算处理效率、降低卷积运算功耗的目的,从而实现了减轻处理器负荷的技术效果,进而解决了由于卷积运算耗能较大造成的处理器负荷较重的技术问题。

实施例3

本发明实施例还提供了一种终端。需要说明的是,该实施例的卷积运算装置可以用于执行本发明实施例的卷积运算方法。

该终端包括:移动卷积运算窗;处理器,所述处理器运行程序,其中,所述程序运行时对于从所述移动卷积运算窗输出的数据执行如下处理步骤:在进行本轮卷积运算的过程中,从待处理数据中获取上一轮卷积运算未处理的第一数据,以及从卷积运算模块中获取第二数据;根据所述第一数据及所述第二数据进行本轮卷积运算;将本轮卷积运算的部分数据存储在上述卷积运算模块中,所述部分数据作为下一轮卷积运算的第二数据。

本发明实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,所述程序执行具有上述任意特征的卷积运算方法。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

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

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

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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