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

一种卷积神经网络池化计算方法、系统、及存储介质与流程

2021-12-04 01:23:00 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种卷积神经网络池化计算方法、系统、及存储介质。


背景技术:

2.卷积神经网络是人工神经网络的一种,广泛应用于图像分类、目标识别、行为识别、语音识别、自然语言处理与文档分类等领域。卷积神经网络的结构一般由输入层、若干隐含层与输出层组成。输入层用于多维输入数据(如彩色图片),输出层用于输出识别结果,隐含层用于神经网络计算。神经网络计算算子包括卷积、激励函数、池化、batch norm、全连接计算等。其中第一层隐含层的输入为通过输入层输入的多维输入数据,输出为特征图,其他隐含层的输入都为上一层的特征图,输出为本层特征图。
3.近几年,随着计算机计算能力的增长与卷积神经网络结构的发展,卷积神经网络的识别准确度有了很大提高,但与此同时,卷积神经网络的深度也不断加深,网络结构更加复杂,计算量也越来越大,因此需要gpu(graphics processing unit,图形处理器)、fpga(field programmable gate array,现场可编程门阵列)、asic(application specific integrated circuit,专用集成电路)等异构计算设备来加速卷积神经网络推理计算。
4.池化计算是卷积神经网络中较为常见的计算过程,主要是通过在特征图上划分尺寸为n*n的池化区域,对池化区域数据进行一定的操作,最终得到一个输出结果,从而达到缩小图像数据规模的作用。池化计算方式主要分为最大池化与平均池化两种。最大池化是取池化区域中的最大值作为输出,平均池化是对池化区域内所有数据取平均值作为输出结果。
5.现有的卷积神经网络池化计算单元通常采用缓存全部池化区域数据的方式进行池化计算,对池化区域数据采取重复加载或循环更新的方式。对于数据重复加载的方式,每次池化计算开始时,都要重新加载输入特征图的池化区域的数据,而池化计算结果中临近两个输出数据对应的输入特征图池化区域数据有很大一部分是重合的。对于数据循环更新的方式,池化计算进行过程中仅更新池化区域移动所造成的输入数据非重合部分。虽然池化区域循环更新的方式可以避免数据的重复加载,但这两种方式中每次计算所加载的池化区域数据都是二维的非连续存储数据,在加载池化区域数据时将无法发挥存储器最佳访存带宽,并且增加了寻址的计算复杂度。另外,此计算方式对池化区域的尺寸敏感,不同尺寸的池化计算通常需要不同的硬件电路或指令流程实现。
6.因此,亟需一种可以解决深度神经网络中池化层数据必须加载完全才可进行池化的池化优化方案。以提高在应用于各种人工智能服务,如人脸识别、语音识别、自然语言处理等的深度神经网络中池化层的池化能力。提供更快速的深度神经网络计算速度。


技术实现要素:

7.有鉴于此,本发明提出了一种卷积神经网络池化计算方法、系统、及存储介质,通
过将池化计算分为行池化计算与列池化计算两个步骤,使两个步骤流水并行进行,重复加载数据少,提高了计算速度,实现了输入特征图数据的连续加载与池化计算的连续性,并且通过对行向量输出尺寸、计算类型、滑窗尺寸等的灵活设定,能够灵活适应不同类型的卷积神经网络模型。
8.基于上述目的,本发明实施例的一方面提供了一种卷积神经网络池化计算方法,其特征在于,包括:
9.接收来自卷积层输出的一维行向量形式的数据输入并存储到池化计算单元;建立行池化缓存,从行向量输入数据中读取每次行池化计算的数据,并基于行向量滑窗依次对每个行向量输入数据进行行池化计算,以得到行池化输出数据存入所述行池化缓存;
10.响应于所述行池化缓存中的行池化输出数据满足列池化计算的所需数据大小,从所述行池化缓存中读取每次列池化计算的数据,并基于列向量滑窗依次对所述行池化输出数据进行列池化计算,以得到列池化输出数据。
11.在本发明的一些实施方式中,接收来自卷积层输出的一维行向量形式的数据输入并存储到池化计算单元,还包括:
12.建立边缘数据缓存,将行向量输入数据的边缘数据存储到所述边缘数据缓存。
13.在本发明的一些实施方式中,从行向量输入数据中读取每次行池化计算的数据,还包括:
14.响应于本次行池化计算读取的数据包含上一个行向量输入数据的边缘数据,则从所述边缘数据缓存读取本次池化计算的边缘数据。
15.在本发明的一些实施方式中,方法还包括:
16.响应于上一个行向量输入数据的边缘数据被计算完成,将本次行池化计算所在的行向量输入数据的边缘数据存入边缘数据缓存。
17.在本发明的一些实施方式中,从所述行池化输出数据中读取每次列池化计算的数据,包括:
18.从所述行池化输出数据中读取每次列池化计算的行池化输出数据并以输入特征图的形式存入行池化缓存。
19.在本发明的一些实施方式中,基于列向量滑窗依次对所述行池化输出数据进行列池化计算,以得到列池化输出数据,包括:
20.响应于读取的所述行池化输出数据的数量达到预设行输入特征图数据的数量,基于所述列向量滑窗对本次读取的数据与行池化缓存中的数据进行列池化计算,以得到本次列池化输出数据。
21.在本发明的一些实施方式中,响应于读取的所述行池化输出数据的数量达到预设行输入特征图数据的数量,基于所述列向量滑窗对本次读取的数据与行池化缓存中的数据进行列池化计算,以得到本次列池化输出数据,还包括:
22.将本次列池化计算的行池化输出数据存入所述行池化缓存以进行下一次列池化计算并得到下一次列池化计算输出数据。
23.本发明的又一方面还提出了一种卷积神经网络池化计算系统,包括:
24.输入模块,所述输入模块配置为接收来自卷积层输出的一维行向量形式的数据输入并存储到池化计算单元;
25.行池化计算模块,所述行池化计算模块配置为建立行池化缓存,从行向量输入数据中读取每次行池化计算的数据,并基于行向量滑窗依次对每个行向量输入数据进行行池化计算,以得到行池化输出数据存入所述行池化缓存;
26.列池化计算模块,所述列池化计算模块配置为响应于所述行池化缓存中的行池化输出数据满足列池化计算的所需数据大小,从所述行池化缓存中读取每次列池化计算的数据,并基于列向量滑窗依次对所述行池化输出数据进行列池化计算,以得到列池化输出数据。
27.一种卷积神经网络池化计算方法本发明实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述计算机程序由所述处理器执行时实现如上方法的步骤。
28.本发明实施例的再一方面,还提供了一种计算机存储介质,计算机存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
29.本发明具有以下有益技术效果:通过将池化计算分为行池化计算与列池化计算两个步骤,使两个步骤流水并行进行,重复加载数据少,提高了计算速度,实现了输入特征图数据的连续加载与池化计算的连续性,并且通过对行向量输出尺寸、计算类型、滑窗尺寸等的灵活设定,能够灵活适应不同类型的卷积神经网络模型。
附图说明
30.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
31.图1为本发明提供的卷积神经网络池化计算方法的一实施例的框图;
32.图2为本发明提供的列池化计算过程的一实施例的示意图;
33.图3为本发明提供的行池化输出数据的读取与更新过程的一实施例的示意图;
34.图4为本发明提供的卷积神经网络池化计算系统的一实施例的示意图;
35.图5为本发明提供的计算机设备的一实施例的结构示意图;
36.图6为本发明提供的计算机存储介质的一实施例的结构示意图;
37.图7为本发明提供的卷积神经网络池化计算系统的一实施例的示意图。
具体实施方式
38.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
39.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
40.为解决深度神经网络中卷积层的输出数据在池化层时,本发明采用建立两个缓存来实现对深度神经网路中的池化层的池化过程中的数据进行快速中转,将原有神经网络中对池化的操作时加载满整个池化数据再进行池化计算,改变为边计算边加载边输出以流水
化作业的方式实现池化层的池化操作。即将池化操作的行池化和列池化基本上处于同步进行同步完成的状态,池化过程中对gpu内存或cpu内存的占用极低。本发明的上述解决方案可广泛用于设计深度神经网络的ai应用中,具体包括人脸识别、语音识别、自然语言处理等涉及池化操作的神经网络中,需要配合的是将池化层上一层的卷积层的输出数据为一维输出数据。
41.具体地,本发明实施例的第一个方面,提出了一种卷积神经网络池化计算方法的实施例。如图1所示,其包括如下步骤:
42.s101、接收来自卷积层输出的一维行向量形式的数据输入并存储到池化计算单元;
43.s103、建立行池化缓存,从行向量输入数据中读取每次行池化计算的数据,并基于行向量滑窗依次对每个行向量输入数据进行行池化计算,以得到行池化输出数据存入所述行池化缓存;
44.s105、响应于所述行池化缓存中的行池化输出数据满足列池化计算的所需数据大小,从所述行池化缓存中读取每次列池化计算的数据,并基于列向量滑窗依次对所述行池化输出数据进行列池化计算,以得到列池化输出数据。
45.在本实施例中,在步骤s101中,池化层的池化操作是接收来自卷积层输出数据而进行池化,在本实施例中卷积层的输出数据为一维数据。
46.在步骤s02中,从gpu内存或主机内存中开辟出一定大小数据空间,不会太大,用于存放行池化计算产生的数据,根据列池化的滑窗的大小来决定,例如列池化的滑窗的大小为3行6列,则行池化缓存的空间可设定为5行6列,再根据每一行的每一列的数据类型的数据位宽在gpu内存或主机内存中开辟空间,在本发明的实施例中,以输出数据为int8整型数据为例一个数据占8bit空间,数据范围在[

128,0,127],按照上述的列池化滑窗大小建立空间的大小为5*6*8=240bit=30byte,仅需32字节的数据空间即可,根据需要可以开辟更大或更小皆可以。例如当卷积层输出数据的数据类型为fp32浮点数的时候,一个数据位要占用4个字节,按照上述滑窗的大小,则行池化缓存大小应为120字节,开辟的空间应为128字节。根据卷积层输出数据的数据类型和数据长度以及列池化滑窗的大小灵活设定行池化缓存的大小。
[0047]
在步骤s05中,若行池化缓存中存储的行池化计算的输出数据的行数满列池化数据滑窗计算大小,则从行池化缓存中读取满足该大小的数据进行列池化计算。在计算后将列池化的计算结果输出。行池化计算会持续向行池化缓存输出数据,列池化计算会在每更新一个行池化输出数据后,将行池化缓存中的数据下一一行读取出并计算,将最旧的一行数据删除。例如,当前列池化完成时是对1、2、3行的数据进行计算,计算完后行池化计算又新写入了一行在第4行,此时进行列池化时,数据为2、3、4行的数据,并且删除第一行的数据,上述行池化缓存中的数据示例描述为第1、第2、第3,实际上是缓存的映射地址。按照上述流程进行池化层的池化计算。可以保证在行池化结束的同时,列池化计算也相继结束。大大提高了池化层的计算效率。
[0048]
具体的,假设输入特征图尺寸为h
×
w,那么进行卷积池化计算时,将输入特征图中的数据以固定的一维行向量的形式输入到池化计算单元,行向量输入数据的尺寸可以灵活设定,例如可以为8,以下以尺寸为8的行向量输入数据对本发明实施例中行池化计算和列
池化计算的过程进行说明。
[0049]
行池化计算单元读取行向量输入数据,提前设定好行向量滑窗的尺寸,例如为4,基于行向量滑窗依次对本行行向量数据中的每个数据进行计算,得到行计算输出数据,此时行计算输出数据为8个。
[0050]
依次读取行计算输出数据作为列池化计算的输入数据,设定列向量滑窗尺寸与行向量滑窗尺寸一样,均为4,那么列池化计算单元等待行计算输出数据(即进行列计算的行向量数据)有4行时,开始依次读取行计算输出数据进行列池化计算,得到列池化输出数据。进行列池化计算的行向量数据的尺寸与进行行池化计算的行向量数据的尺寸不一定相同,可以灵活设定,一般基于输入特征图尺寸来设定。
[0051]
还需说明的是,行池化计算与列池化计算方式均可以按按维度最大值计算或按维度平均值计算。例如,若池化类型为尺寸n*n的最大池化,则行池化计算与列池化计算都是尺寸为n的一维最大值计算;若池化类型为尺寸为n*n的平均池化,则行池化计算与列池化计算都是尺寸为n的一维平均值计算。
[0052]
进一步,如图7和图3所示,在图7中,在本发明中的神经网络中,卷积层的输出数据作为输入数据输入到池化层。特别地,根据本发明的构思,由于一维数据在深度神经网络中更方便于在各层或算子之间进行传输,本发明中的卷积层的数据均设定成一维的输出数据,也即如图7所示的行池化过程中输入到池化层进行行池化的数据均是一维数据,如图7第一行数据池化计算所示,池化滑窗(阴影部分)的大小为3,行池化数据的个数为6个,按照池化原理,可选择图中阴影区域中数据的最大值(max

pooling)采样作为第一个输出,也可以选择是平均值(mena

pooling)采样作为第一个输出数据。在进行执行完第一轮池化之后,滑窗根据步进大小向右移动,本实施例中步进为1。进行第二输出数据的池化采样,以此类推直到滑窗的右侧边缘移到第一行数据的边缘,步进距离为4共有4个输出数据,即完成对一条一维数据的池化,将输出的长度为4的一维数据作为行池化输出数据,然后对第二行的一维输入数据进行上述的行池化过程,得到第二条行池化输出数据。重复上述步骤,将卷积层输出的一维数据进行池化。当行池化计算输出的行池化数据满足列池化计算大小的数据时,对行池化输出数据按照列池化的计算如图7右办部分所示。图7示出的是3行4列的列池化计算窗口,与行池化计算一样将窗口位置内(阴影内)数据的最大值或平均值作为输出数据得到输列池化输出数据。
[0053]
在本发明的一些实施例中,行池化计算的方式可并行执行,因为一维数据在深度网络的计算中,便于传输,从卷积层传递过来的一维数据可在gpu中使用多个物理运算单元并行执行。只需保证一维数据的大小与物理运算单元的数据存储空间大小匹配即可。
[0054]
通过上述实施例,可以看出池化计算单元行向量化地加载数据,行池化计算过程一维滑窗式地流水并行处理行向量数据,得到行池化计算的中间计算结果,并将中间计算结果流水化地进入列池化计算,使行向量并行地进行列池化计算处理,保证行池化计算完成的中间结果进入列池化计算中列滑窗的连续性,重复加载数据少,提高了计算速度,实现了输入特征图数据的连续加载与池化计算的连续性,并且通过对行向量输出尺寸、计算类型、滑窗尺寸等的灵活设定,提高了适应不同卷积神经网络的灵活性。
[0055]
在一些实施方式中,将输入特征图数据以一维行向量的形式输入并存储到池化计算单元,还包括:
[0056]
建立边缘数据缓存,将行向量输入数据的边缘数据存储到所述边缘数据缓存。
[0057]
具体的,边缘数据基于滑窗尺寸确定,一般为滑窗尺寸减1,例如行向量输入数据尺寸为8,滑窗尺寸为4,那么行向量输入数据最后的3个数据为边缘数据。
[0058]
在一些实施方式中,从行向量输入数据中读取每次行池化计算的数据,还包括:
[0059]
响应于本次行池化计算读取的数据包含上一个行向量输入数据的边缘数据,则从所述边缘数据缓存读取本次池化计算的边缘数据。
[0060]
在一些实施方式中,方法还包括:
[0061]
响应于上一个行向量输入数据的边缘数据被计算完成,将本次行池化计算所在的行向量输入数据的边缘数据存入边缘数据缓存。
[0062]
在一些实施方式中,从所述行池化输出数据中读取每次列池化计算的数据,包括:
[0063]
从所述行池化输出数据中读取每次列池化计算的行池化输出数据并以输入特征图的形式存入行池化缓存。
[0064]
在一些实施方式中,基于列向量滑窗依次对所述行池化输出数据进行列池化计算,以得到列池化输出数据,包括:
[0065]
响应于读取的所述行池化输出数据的数量达到预设行输入特征图数据的数量,基于所述列向量滑窗对本次读取的数据与行池化缓存中的数据进行列池化计算,以得到本次列池化输出数据。
[0066]
在一些实施方式中,响应于读取的所述行池化输出数据的数量达到预设行输入特征图数据的数量,基于所述列向量滑窗对本次读取的数据与行池化缓存中的数据进行列池化计算,以得到本次列池化输出数据,还包括:
[0067]
将本次列池化计算的行池化输出数据存入所述行池化缓存以进行下一次列池化计算并得到下一次列池化计算输出数据。
[0068]
下面通过具体的实施例对本发明的多个实施方式进行说明。
[0069]
例如,输入特征图数据尺寸为16
×
16,行池化计算的行向量数据尺寸为8,行向量滑窗与列向量缓存尺寸均为4,边缘数据尺寸为3。
[0070]
不断地从输入特征图中将行向量数据输入池化计算单元,行池化单元依次读取每个行向量数据,并基于行向量滑窗对行向量数据进行行池化计算,行向量滑窗包含每次进行行池化操作所使用的行池化输入数据的地址范围,随着行向量滑窗的移动,完成对每一行的行池化输入数据的池化计算。在本实施例中,由于设定行向量滑窗尺寸为4,所以每次行向量计算时,都会使用4个数据进行计算,那么在每个行向量数据的计算过程中,最前面的3个数据都要用到上一个行向量数据的边缘数据,因此要将上一个行向量数据的边缘数据放入边缘数据缓存,供当前行向量数据使用,当当前行向量数据计算到第4个数据时,不再用到上一个行向量数据后,将当前行向量数据的边缘数据放入到边缘数据缓存,以供下一个行向量数据计算时使用。
[0071]
此时,列池化计算是流水并行进行的,但是第一次进行列池化计算时,需等待行池化缓存中有3行的数据后才开始进行,一般列池化计算的行向量数据尺寸与输入特征图数据中每行的尺寸相等,因此,这里的行向量数据尺寸为16,即等行池化缓存中有3
×
16的数据后,开始列池化计算。
[0072]
列池化计算单元依次读取行池化输出数据,并放到行池化输出数据的最后的位
置,其他3个行池化输出数据来自行池化缓存,如图2所示,为行池化输出数据的读取与更新过程的示意图。基于列向量滑窗对读取的4个行池化输出数据进行列池化计算,本次计算结束后,将本次计算的行池化输出数据存入行池化缓存以覆盖上一次计算的数据。如图3所示,为列池化计算过程的示意图,由列向量滑窗实现的,列向量滑窗包含每次进行列池化操作所使用的列池化输入数据(即行池化输出数据)的地址范围,随着列滑窗的移动,完成对列池化输入数据的池化计算,最终得到一个行向量化的池化计算输出数据。
[0073]
通过上述实施例,可以看出池化计算单元不断以行向量地形式加载数据,行池化计算过程一维滑窗式地流水并行处理行向量数据,得到行池化计算的中间计算结果,并将中间计算结果流水化地进入列池化计算,使行向量并行地进行列池化计算处理,在行池化计算过程中只需要重复加载少量数据,就可保证行池化计算完成的中间结果进入列池化计算中列滑窗的连续性,提高了计算速度,实现了输入特征图数据的连续加载与池化计算的连续性,并且通过对行向量输出尺寸、计算类型、滑窗尺寸等的灵活设定,提高了适应不同卷积神经网络的灵活性。
[0074]
基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明还提供了一种卷积神经网络池化计算系统,包括:
[0075]
输入模块110,所述输入模块配置为接收来自卷积层输出的一维行向量形式的数据输入并存储到池化计算单元;
[0076]
行池化计算模块120,所述行池化计算模块配置为建立行池化缓存,从行向量输入数据中读取每次行池化计算的数据,并基于行向量滑窗依次对每个行向量输入数据进行行池化计算,以得到行池化输出数据存入所述行池化缓存;
[0077]
列池化计算模块130,所述列池化计算模块配置为响应于所述行池化缓存中的行池化输出数据满足列池化计算的所需数据大小,从所述行池化缓存中读取每次列池化计算的数据,并基于列向量滑窗依次对所述行池化输出数据进行列池化计算,以得到列池化输出数据。
[0078]
在一些实施方式中,输入模块还配置为:将行向量输入数据的边缘数据,存储到边缘数据缓存。
[0079]
在一些实施方式中,从行向量输入数据中读取每次行池化计算的数据,还包括:
[0080]
响应于本次行池化计算读取的数据包含上一个行向量输入数据的边缘数据,则从所述边缘数据缓存读取本次池化计算的边缘数据。
[0081]
在一些实施方式中,列池化计算模块还配置为:
[0082]
响应于上一个行向量输入数据的边缘数据被计算完成,将本次行池化计算所在的行向量输入数据的边缘数据存入边缘数据缓存。
[0083]
在一些实施方式中,从所述行池化输出数据中读取每次列池化计算的数据,包括:
[0084]
从所述行池化输出数据中读取每次列池化计算的行池化输出数据并以输入特征图的形式存入行池化缓存。
[0085]
在一些实施方式中,基于列向量滑窗依次对所述行池化输出数据进行列池化计算,以得到列池化输出数据,包括:
[0086]
响应于读取的所述行池化输出数据的数量达到预设行输入特征图数据的数量,基于所述列向量滑窗对本次读取的数据与行池化缓存中的数据进行列池化计算,以得到本次
列池化输出数据。
[0087]
在一些实施方式中,响应于读取的所述行池化输出数据的数量达到预设行输入特征图数据的数量,基于所述列向量滑窗对本次读取的数据与行池化缓存中的数据进行列池化计算,以得到本次列池化输出数据,还包括:
[0088]
将本次列池化计算的行池化输出数据存入所述行池化缓存以进行下一次列池化计算并得到下一次列池化计算输出数据。
[0089]
基于同一发明构思,根据本发明的另一个方面,如图5所示,本发明的实施例还提供了一种计算机设备20,在该计算机设备20中包括处理器210以及存储器220,存储器220存储有可在处理器上运行的计算机程序221,处理器210执行程序时执行如下的方法的步骤:
[0090]
将输入特征图数据以一维行向量的形式输入并存储到池化计算单元;
[0091]
从行向量输入数据中读取每次行池化计算的数据,并基于行向量滑窗依次对每个行向量输入数据进行行池化计算,以得到行池化输出数据;
[0092]
从所述行池化输出数据中读取每次列池化计算的数据,并基于列向量滑窗依次对所述行池化输出数据进行列池化计算,以得到列池化输出数据。
[0093]
在一些实施方式中,将输入特征图数据以一维行向量的形式输入并存储到池化计算单元,还包括:
[0094]
将行向量输入数据的边缘数据存储到边缘数据缓存。
[0095]
在一些实施方式中,从行向量输入数据中读取每次行池化计算的数据,还包括:
[0096]
响应于本次行池化计算读取的数据包含上一个行向量输入数据的边缘数据,则从所述边缘数据缓存读取本次池化计算的边缘数据。
[0097]
在一些实施方式中,步骤还包括:
[0098]
响应于上一个行向量输入数据的边缘数据被计算完成,将本次行池化计算所在的行向量输入数据的边缘数据存入边缘数据缓存。
[0099]
在一些实施方式中,从所述行池化输出数据中读取每次列池化计算的数据,包括:
[0100]
从所述行池化输出数据中读取每次列池化计算的行池化输出数据并以输入特征图的形式存入行池化缓存。
[0101]
在一些实施方式中,基于列向量滑窗依次对所述行池化输出数据进行列池化计算,以得到列池化输出数据,包括:
[0102]
响应于读取的所述行池化输出数据的数量达到预设行输入特征图数据的数量,基于所述列向量滑窗对本次读取的数据与行池化缓存中的数据进行列池化计算,以得到本次列池化输出数据。
[0103]
在一些实施方式中,响应于读取的所述行池化输出数据的数量达到预设行输入特征图数据的数量,基于所述列向量滑窗对本次读取的数据与行池化缓存中的数据进行列池化计算,以得到本次列池化输出数据,还包括:
[0104]
将本次列池化计算的行池化输出数据存入所述行池化缓存以进行下一次列池化计算并得到下一次列池化计算输出数据。
[0105]
基于同一发明构思,根据本发明的另一个方面,如图6所示,本发明的实施例还提供了一种计算机存储介质30,计算机存储介质30存储有被处理器执行时执行如上方法的计算机程序310。
[0106]
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
[0107]
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
[0108]
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0109]
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
[0110]
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0111]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0112]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
再多了解一些

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

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

相关文献