CN109754359B - 一种应用于卷积神经网络的池化处理的方法及*** - Google Patents
一种应用于卷积神经网络的池化处理的方法及*** Download PDFInfo
- Publication number
- CN109754359B CN109754359B CN201711059065.3A CN201711059065A CN109754359B CN 109754359 B CN109754359 B CN 109754359B CN 201711059065 A CN201711059065 A CN 201711059065A CN 109754359 B CN109754359 B CN 109754359B
- Authority
- CN
- China
- Prior art keywords
- pooling
- data
- value
- level
- data area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/15—Vehicle, aircraft or watercraft design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/17—Mechanical parametric or variational design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/18—Network design, e.g. design based on topological or interconnect aspects of utility systems, piping, heating ventilation air conditioning [HVAC] or cabling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本申请公开了一种池化处理的方法,应用于卷积神经网络的池化处理***,池化处理***包括第一存储设备、数据区域、池化核和池化控制器,该方法包括:池化控制器每个读取周期从第一存储设备中读取k个特征数据,向数据区域写入所读取的k个特征数据,k个特征数据按照第一方向排布,在一个更新周期中,数据区域被写入n队按照第一方向排布的nk个数据,更新周期的时长为读取周期的时长的n倍;在更新周期结束后,数据区域中的数据被传递到池化核做池化运算,数据区域中的数据包括nk个数据和排布在nk个数据之前的上一个更新周期中在第二方向上排布的最后m队数据。本申请技术方案由于数据复用降低了存储读写的次数,提高了池化处理的效率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种应用于卷积神经网络的池化处理的方法、池化处理***、芯片***及计算机可读存储介质。
背景技术
近年来,深度学习研究的不断深入,卷积神经网络(Convolutional NeuralNetwork,CNN)可实现精确的图像识别和分类,已经广泛应用于医疗影像、安全、生物特征识别、机器人、无人驾驶等领域,成为深度学习的主要方向之一。
CNN通常包括卷积和池化(Pooling)两个步骤,卷积就是使用一个二维的卷积核在输入的图像或二维数据上以可配置步长滑动,直至遍历整个图像或二维数据。卷积核的尺寸相对较小,在每次滑动过程中,从二维数据中获取窗口大小的数据区,同时将卷积核中对应位置的权值与数据区数据相乘,而后求和。其中,卷积核的权值是通过训练过程获得。
因为图像具有一种“静态性”的属性,这也就意味着在一个图像区域有用的特征极有可能在另一个区域同样适用。因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,可以计算图像一个区域上的某个特定特征的平均值或最大值来代表这个区域的特征,这个过程就是池化。
在CNN实现的大多数模型框架中,Pooling运算的频次仅次于卷积。无论是均值模式还是最大值模式,以3*3的Pooling Kernel为例,计算每个位置时需要读取9个位置的数据,对带宽的要求较高。在高性能CNN处理器中,卷积环节占据了大部分计算资源,所以常存在Pooling滞后的现象,导致CNN的处理效率低下。
发明内容
为了解决现有技术中池化滞后,导致CNN的处理效率低下的问题,本申请实施例提供一种池化处理的方法,可以通过数据区域实现数据复用,从而减少了数据读取的次数,提高了池化处理的效率,从而提高CNN的处理效率。本申请实施例还提供了相应的池化处理***、芯片***及计算机可读存储介质。
本申请第一方面提供一种应用于卷积神经网络的池化处理的方法,所述方法应用于池化处理***,所述池化处理***包括第一存储设备、数据区域、池化核和池化控制器,所述方法包括:
所述池化控制器每个读取周期从所述第一存储设备中读取k个特征数据,所述k个特征数据包含于卷积运算所产生的特征图中,所述k为大于1的整数;
所述池化控制器向所述数据区域写入所读取的k个特征数据,所述k个特征数据按照第一方向排布,在一个更新周期中,所述数据区域被写入n队按照所述第一方向排布的nk个数据,所述更新周期的时长为所述读取周期的时长的n倍,所述n为大于1的整数;
在所述更新周期结束后,所述数据区域中的数据被传递到池化核做池化运算,所述数据区域中的数据包括所述nk个数据和排布在所述nk个数据之前的上一个更新周期中在第二方向上排布的最后m队数据,并且所述数据区域缓存所述更新周期中在所述第二方向上排布的最后m队数据用于下一个更新周期使用,所述m为正整数。
本申请第二方面提供一种卷积神经网络的池化处理***,所述池化处理***包括第一存储设备、数据区域、池化核和池化控制器;
所述池化控制器,用于每个读取周期从所述第一存储设备中读取k个特征数据,所述k个特征数据包含于卷积运算所产生的特征图中,所述k为大于1的整数;
所述池化控制器,用于向所述数据区域写入所读取的k个特征数据,所述k个特征数据按照第一方向排布,在一个更新周期中,所述数据区域被写入n队按照所述第一方向排布的nk个数据,所述更新周期的时长为所述读取周期的时长的n倍,所述n为大于1的整数;
在所述更新周期结束后,所述数据区域中的数据被传递到池化核做池化运算,所述数据区域中的数据包括所述nk个数据和排布在所述nk个数据之前的上一个更新周期中在第二方向上排布的最后m队数据,并且所述数据区域缓存所述更新周期中在所述第二方向上排布的最后m队数据用于下一个更新周期使用,所述m为正整数。
本申请的又一方面提供了一种芯片***,所述芯片***包括现场可编程门阵列FPGA电路和/或专用集成电路ASIC,所述FPGA电路和/或ASIC用于执行如第一方面所述的池化处理的方法。
本申请的又一方面提供了一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机设备上运行时,使得所述计算机设备执行如第一方面所述的方法。
本申请的又一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
本申请实施例提供的池化处理的方法中,池化处理***包括数据区域,通过数据区域实现数据复用,从而减少了数据读取的次数,提高了池化处理的效率,从而提高CNN的处理效率。并且每次读取的特征数据的个数k大于1,增加了每次读取特征数据的数量,从而提高池化处理的吞吐能力。
附图说明
图1A是人脸识别场景的一示例示意图;
图1B是本申请实施例中CNN处理过程的一示意图;
图2是本申请实施例中池化处理***的一结构示意图;
图3是本申请实施例中数据区域的一示例示意图;
图4是本申请实施例中向数据区域写数据的一示例示意图;
图5是本申请实施例中特征数据算子化的一示例示意图;
图6是本申请实施例中边界的参数化的一示例示意图;
图7是本申请实施例中池化处理***的一结构示意图;
图8是本申请实施例中计算机设备的一实施例示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请实施例提供一种应用于卷积神经网络的池化处理的方法,可以通过数据区域实现数据复用,从而减少了数据读取的次数,提高了池化处理的效率,从而提高CNN的处理效率。本申请实施例还提供了相应的卷积神经网络的池化处理***、芯片***及计算机可读存储介质。以下分别进行详细说明。
CNN可实现精确的图像识别和分类,已经广泛应用于医疗影像、安全、生物特征识别、机器人和无人驾驶等领域,下面如图1A所示的以人脸识别的场景为例,结合图1B所示的CNN处理过程,描述CNN在人脸识别过程中对人脸图像的处理过程。其他应用场景中,与图像的CNN过程都可以参阅人脸识别过程中CNN的处理过程进行理解。
如图1A所示,当用户通过具有刷脸功能的终端设备10进行考勤时,终端设备10捕获用户的脸部图像,然后,终端设备10将该用户的人脸图像上传给服务器20,服务器20可以是独立的计算机设备,也可以是服务器集群,服务器20接收到该人脸图像后会执行如图1B所示的CNN处理过程。
图1B是本申请实施例中CNN处理过程的一示意图。
如图1B所示,CNN处理过程包括卷积过程和池化过程,卷积过程中,对于每次卷积,将输入的多维特征图FeatureMap m0,m1,...,mn与对应的多维Kernel进行卷积,输出新的一张特征图FeatureMap(m+1)i,图1A中的人脸图像可以包括多个多维特征图,在图1B中,卷积模块将输出的FeatureMap(m+1)i写入Ram A。该Ram A可以为第一存储设备,池化模块置于卷积模块后,从Ram A中读取特征数据进行池化运算,将池化结果写入Ram B,该Ram B可以为第二存储设备。池化可以实现对特征图的降维,如卷积的特征图若是24*24,则池化可以降低到12*12或者更低。对应图1A中的应用场景,服务器20通过第二存储设备中的数据与预先存储的各个用户的脸部特征数据进行匹配,若匹配到相似度满足预设阈值的脸部数据,则服务器向终端设备10返回匹配成功的响应。
图2为本申请实施例中池化处理***的一示意图。
如图2所示,池化处理***包括第一存储设备、数据区域、池化核和池化控制器和第二存储设备,数据区域、池化核和池化控制器可以属于同一个池化装置,也可以是,数据区域和池化核属于一个池化装置,多个池化装置共用一个池化控制器。
数据区域用于放置每个读取周期从第一存储设备中所读取的特征图的特征数据;每个更新周期池化控制器更新一次数据区域。更新周期的时长为所述读取周期的时长的n倍,n为大于1的整数。
数据区域有相应的尺寸,如3行6列,也就是3*6的尺寸,当然,数据区域还可以是其他尺寸,数据区域的尺寸可以依据第一存储设备的位宽设定。第一存储设备的位宽即从所述第一存储设备中读取特征数据的接口数量。
因为特征数据在池化过程中会依据池化核的核尺寸使用不同列数的前一个更新周期的特征数据,因此,数据区域中需要缓存前一个更新周期的特征数据,前一个更新周期的特征数据放置在数据区域的前面m列,例如:若核尺寸为3*3,则m=2。本申请实施例中的核尺寸就是池化核池化数据的行列数。
池化控制器在运行过程中,会先读取表1中的参数,然后根据表1中的参数从第一存储设备中读取特征数据,并向数据区域中写入所读取的特征数据。
表1:池化的运行参数
表1中FM_Width为特征图的宽度。FM_Height为特征图的高度。Stride为滑窗,Stride=1时表示滑窗每次移动一个数据,Stride=2表示滑窗每次移动两个数据。Padding表示是否需要边界扩充,若Padding=0表示需要边界扩充,则Padding=1表示不需要边界扩充;反过来,若Padding=0表示不需要边界扩充,则Padding=1表示需要边界扩充。后续示例中都是以Stride=1为例进行描述,Stride=2的池化处理原理与Stride=1相同。
本申请实施例中,池化处理的方法的一实施例可以包括:
所述池化控制器每个读取周期从所述第一存储设备中读取k个特征数据,所述k个特征数据包含于卷积运算所产生的特征图中,所述k为大于1的整数,所述k的大小与所述数据区域在第一方向上的尺寸对应;
所述池化控制器向所述数据区域写入所读取的k个特征数据,所述k个特征数据按照所述第一方向排布,在一个更新周期中,所述数据区域被写入n队按照所述第一方向排布的nk个数据,所述更新周期的时长为所述读取周期的时长的n倍,所述n为大于1的整数;
在所述更新周期结束后,所述数据区域中的数据被传递到池化核做池化运算,所述数据区域中的数据包括所述nk个数据和排布在所述nk个数据之前的上一个更新周期中在第二方向上排布的最后m队数据,并且所述数据区域缓存所述更新周期中在所述第二方向上排布的最后m队数据用于下一个更新周期使用,所述m为正整数。
其中,k的取值依据第一存储设备的位宽确定,例如k=4,特征图中会包含多个特征数据,如特征图的尺寸为12*12,则该特征图中会包括12*12=144个特征数据。数据区域通常是按照行和列排布的区域,第一方向为行,则第二方向为列;反过来,若第一方向为列,则第二方向为行。本申请实施例后面的实施例中以第一方向为行,第二方向为列进行描述。如图3所示,为数据区域的一示例示意图。
图3中,数据区域包含3行6列,其中,前2列存放了上一个更新周期的特征数据,后面4列用于存放本更新周期所读取的特征数据,每个读取周期读取4个特征数据,写入所述数据区域的同一行,在本示例场景中,n=3,则一个更新周期中,池化控制器3次读取12个特征数据,则向数据区域写入12个特征数据,特征数据读取和写入数据区域的过程可以参阅图4进行理解。对于特征图中的特征数据依次循环直至完成FM_Width×FM_Height下特征数据的遍历。
在该示例场景中,读取周期可以为时钟周期,每三个时钟周期为一个更新周期,每三个时钟周期更新一次数据区域,数据区域更新时将数据区域中的特征数据同步给池化核,由池化核对数据区域中的数据进行池化运算。
数据区域中的数据在向池化核同步数据时,会在数据区域缓存最后两列的特征数据,以用于下一个更新周期使用。
由以上方案可见,通过数据区域可以实现特征数据的复用,从而减少了特征数据读取的次数,提高了池化处理的效率,从而提高CNN的处理效率。而且,本申请实施例中,还增加了第一存储设备的位宽,从而增加了每次读取到的特征数据的个数,也增加了池化处理的吞吐率。
所述池化核确定每个算子的第一级池化值,所述算子为所述第二方向上的每队数据,所述第一级池化值为所述每个算子中所包含数据的最大值或者所述每个算子中所包含数据的求和值;
所述池化核根据所述每个算子,按照核尺寸确定所述数据区域中的数据的第二级池化结果,所述核尺寸为所述池化核池化数据的行列数。
池化核池化的过程可以参阅图5进行理解,如图5中,将数据区域中的每列数据作为一个算子,先确定每个算子的第一级池化值,如图5中的6个算子的第一级池化值分别为C0、C1、C2、C3、C4和C5,若池化过程是最大值池化,则C0、C1、C2、C3、C4和C5分别为所在算子的三个数据中的最大值,若池化过程是平均值池化,则C0、C1、C2、C3、C4和C5分别为每个算子的求和值。
所述池化核根据所述每个算子,按照核尺寸确定所述数据区域中的数据的第二级池化结果,可以包括:
所述池化核选取每相邻的p个算子的第一级池化值,确定p×p区域上的第二级池化值,所述p×p为所述核尺寸,所述第二级池化值为所述p个算子中最大的第一级池化值或者所述p个算子的第一级池化值的求和值与p×p的平均值,所述第二级池化结果包括所述每相邻的p个算子的所述第二级池化值。
本示例场景中,以核尺寸是3*3为例,则在做第二级池化时,对每相邻的三个算子再做进一步的第二级池化,如考虑到C0至C5中所包含数据中会有位于边界的情况,在池化运算过程中,可以根据边界出现的位置选取用于池化运算的数据,以满足3*3的核尺寸。因此,该示例场景中,针对数据区域的算子,以最大值池化为例,会有如表2所示的8种结果。
表2:最大值池化输入与输出的对应关系
序号 | 输入 | 输出 |
1 | C0,C1,C2 | Max(C0,C1,C2) |
2 | C1,C2,C3 | Max(C1,C2,C3) |
3 | C2,C3,C4 | Max(C2,C3,C4) |
4 | C3,C4,C5 | Max(C3,C4,C5) |
5 | C1,C2 | Max(C1,C2) |
6 | C2,C3 | Max(C2,C3) |
7 | C3,C4 | Max(C3,C4) |
8 | C4,C5 | Max(C4,C5) |
以上表2中,序号1至4表示没有边界时每相邻的3个算子做池化运算时的输出情况,序号5中表示边界出现在C2和C3之间,只需要C1和C2参与池化运算,C2的后一列用0补位,序号6中表示边界出现在C1和C2,或C3和C4之间,对应图6中(b)或(d)的情形,只需要C2和C3参与池化运算,C2的前一列或C3的后一列用0补位,序号7中表示边界出现在C2和C3之间或C4和C5之间,对应图6中(c)或(e)的情形,只需要C3和C4参与池化运算,C3的前一列或C4的后一列用0补位,序号8中表示边界出现在C3和C4之间或C5之后,只需要C4和C5参与池化运算,对应图6中(d)或(f)的情形,C4的前一列或C5的后一列用0补位。
以上,表2所描述的是最大值的情况,对于平均值池化则将相应算子的第一级池化值相加再对9求平均值即可。
由以上实施例中可见,不仅特征数据可以复用,第一级池化值也可以复用,从而进一步提高了池化处理的效率。
如图2所示,所述池化处理***还包括第二存储设备,池化处理的方法还可以包括:
所述池化控制器确定所述数据区域中的数据是否包含所述特征图的边界上的数据;
若所述数据区域中的数据包含所述特征图的边界上的数据,则所述池化控制器根据所述边界上的数据在所述数据区域中的位置,从所述第二级池化结果中确定对应的第二级池化值写入到所述第二存储设备中;
若所述数据区域中的数据不包含所述特征图的边界上的数据,则所述池化控制器从所述第二级池化结果中确定对应的第二级池化值写入到所述第二存储设备中。
在数据读取的过程中,通常会一行一行的读取数据,对于每行数据都会有两个边界数据,这两个边界数据分别属于特征图上最左侧一列和最右侧一列,因为参数FM_Width是不断变化的,通常不能被k整除,所以写入数据区域中的特征数据也会出现包含边界上的数据的情况,当数据区域的数据中存在特征图的边界上的数据时,需要根据边界出现的位置,在表2中选择不同的输出。
如图6所示,图6中分别通过(a)至(f)列举了6种可能的情况,若用两个3Bit量化的参数,即起始位置和结束位置,用来表示边界出现的位置。按照C0至C5顺序,分别定义其行坐标顺序为-1、0、1、2、3和4,则图6中的(a)至(f)分别表达的含义为:
其中图6中的(a)表示常规情况,即当前区域的任意两个第一级池化算子之间不存在边界,此时可以约定起始位置和结束位置的参数值分别取3Bit的最大值7和7,则可以用起始位置7(BeginPos:7)和结束位置7(EndPos:7)为索引标识表征数据区域中的各算子中不包含边界上的数据。以滑窗stride=1为例,表示滑窗每次移动一个数据,则在(a)中所示的数据区域中,完成池化运算,需要滑窗移动4次,(a)中第二行0至3列黑框所圈定4个数据表示滑窗每次移动的中心数据。
图6中的(b)中表示边界存在于位置0与位置1之间,此时起始位置为1,表示换行后最左侧一列,结束位置为0,表示换行前最右侧一列。此时,对于(b)中所示的数据区域,包含上一个更新周期的边界上的特征数据,如位置-1和位置0的那两列都是上一个更新周期的边界上的特征数据,在本更新周期中,上一个更新周期的边界上的特征数据不参与本个更新周期的池化运算。因为上一个更新周期的边界上的特征数据不参与本个更新周期的池化运算,所以位置0的那一列不参与池化运算,所以池化过程需要运算三次,则仅计算位置1至位置3区域的池化即可。若参数Padding=1,位置1的池化计算中,将位置0的所需数据补零即可。以滑窗stride=1为例,表示滑窗每次移动一个数据,则在(b)中所示的数据区域中,完成池化运算,需要滑窗移动3次,(b)中第二行1至3列黑框所圈定3个数据表示滑窗每次移动的中心数据。
图6中的(c)表示边界存在于位置3和位置4之间,此时的起始位置为4,表示换行后最左侧起的第四列,结束位置为3,表示换行前最右侧起的第三列。此时,对于(c)中所示的数据区域,包含上一个更新周期的特征数据和上一个更新周期边界上的特征数据,在本更新周期中,因为位置0的那一列为上一周期的更新数据,不包含边界数据,所以池化过程需要运算四次,所以需要计算位置0至位置3数据的池化。以滑窗stride=1为例,表示滑窗每次移动一个数据,则在(c)中所示的数据区域中,完成池化运算,需要滑窗移动4次,(c)中第二行0至3列黑框所圈定4个数据表示滑窗每次移动的中心数据。
图6中的(d)中表示边界存在于位置2和位置3之间,此时起始位置为2,表示换行后最侧起的第二列,结束位置为3,表示换行前最右侧起的第三列。此时,对于(d)中所示的数据区域,包含上一个更新周期的特征数据,在本更新周期中,因为位置0的那一列为上一周期的更新数据,不包含边界数据,所以池化过程需要运算四次,所以需要计算位置0至位置3数据的池化。以滑窗stride=1为例,表示滑窗每次移动一个数据,则在(d)中所示的数据区域中,完成池化运算,需要滑窗移动4次,(d)中第二行0至3列黑框所圈定4个数据表示滑窗每次移动的中心数据。
图6中的(e)表示边界在位置1和位置2之间,此时起始位置为2,表示换行后最左侧起的第二列,结束位置为1,表示换行前最右侧的第一列。此时,对于(e)中所示的数据区域,包含上一个更新周期的特征数据,在本更新周期中,因为位置0的那一列为上一周期的更新数据,不包含边界数据,所以池化过程需要运算四次,需要计算位置0至位置3数据的池化。以滑窗stride=1为例,表示滑窗每次移动一个数据,则在(e)中所示的数据区域中,完成池化运算,需要滑窗移动4次,(e)中第二行0至3列黑框所圈定4个数据表示滑窗每次移动的中心数据。
图6中的(f)表示边界在位置4右侧且紧邻位置4。此时起始位置为位置4右侧的下一列,用最大值7表示;结束为止为4。因为边界出现在位置4的下一列,所以该次池化过程需要运算五次,此时需要计算位置0至位置5数据的池化。以滑窗stride=1为例,表示滑窗每次移动一个数据,则在(f)中所示的数据区域中,完成池化运算,需要滑窗移动5次,(f)中第二行0至4列黑框所圈定5个数据表示滑窗每次移动的中心数据。
所述池化控制器根据所述边界上的数据在所述数据区域中的位置,从所述第二级池化结果中确定对应的第二级池化值写入到所述第二存储设备中,可以包括:
所述池化控制器根据所述边界上的数据在所述数据区域中的位置,确定类型索引,所述类型索引用于关联所述边界上的数据的分布与所述第二级池化结果中第二级池化值的对应关系;
所述池化控制器根据所述类型索引,从所述第二级池化结果中确定对应的第二级池化值写入到所述第二存储设备中。
为了提升性能,通过增加并列的池化装置来提高吞吐量。如图7所示,可以设置多路池化装置,多路池化装置可以共享池化控制器,降低资源消耗。
上述池化处理的过程可在现场可编程门阵列(Field-Programmable Gate Array,FPGA)电路或者专用集成电路(Application Specific Integrated Circuit,ASIC)中由流水线实现,上述池化处理的过程可应用在高性能CNN加速芯片中。每次池化处理的过程中前三个周期读取数据,第4个周期使能并进行FeatureMap的边界检验,将完成3至5个Pooling结果的输出,从而提高了池化处理的吞吐量。
本申请实施例所提供的池化处理***可以应用各种类型的计算机设备上,例如可以应用在云端的计算机设备上,计算机设备可以参阅图8进行理解。
图8是本发明实施例提供的计算机设备50的结构示意图。所述计算机设备50包括处理器510、存储器550、输入输出(I/O)接口530和FPGA电路540,FPGA电路540可以包括图2或图7中的池化装置,该池化装置包含于池化处理***,池化处理***包括池化控制器、池化装置包括数据区域和池化核,存储器550可以包括第一存储设备5501、第二存储设备5502和其他存储设备5503,其他存储设备5503可以包括只读存储器和随机存取存储器,并向处理器510提供操作指令和数据。存储器550的一部分还可以包括非易失性随机存取存储器(NVRAM)。
在一些实施方式中,存储器550存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
在本发明实施例中,在池化处理的过程中,FPGA电路540可以:
每个读取周期从所述第一存储设备中读取k个特征数据,所述k个特征数据包含于卷积运算所产生的特征图中,所述k为大于1的整数;
向所述数据区域写入所读取的k个特征数据,所述k个特征数据按照第一方向排布,在一个更新周期中,所述数据区域被写入n队按照所述第一方向排布的nk个数据,所述更新周期的时长为所述读取周期的时长的n倍,所述n为大于1的整数;
在所述更新周期结束后,所述数据区域中的数据被传递到池化核做池化运算,所述数据区域中的数据包括所述nk个数据和排布在所述nk个数据之前的上一个更新周期中在第二方向上排布的最后m队数据,并且所述数据区域缓存所述更新周期中在所述第二方向上排布的最后m队数据用于下一个更新周期使用,所述m为正整数。
本申请实施例提供的池化处理方案中,通过数据区域实现数据复用,从而减少了数据读取的次数,提高了池化处理的效率,从而提高CNN的处理效率。并且每次读取的特征数据的个数k大于1,增加了每次读取特征数据的数量,从而提高池化处理的吞吐能力。
处理器510控制计算机设备50的操作,处理器510还可以称为CPU(CentralProcessing Unit,中央处理单元)。存储器550可以包括只读存储器和随机存取存储器,并向处理器510提供指令和数据。存储器550的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中计算机设备50的各个组件通过总线***520耦合在一起,其中总线***520除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线***520。
上述本发明实施例揭示的方法可以应用于FPGA电路540中,也可以应用于专用集成电路(ASIC)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选地,FPGA电路540用于:
确定每个算子的第一级池化值,所述算子为所述第二方向上的每队数据,所述第一级池化值为所述每个算子中所包含数据的最大值或者所述每个算子中所包含数据的求和值;
根据所述每个算子,按照核尺寸确定所述数据区域中的数据的第二级池化结果,所述核尺寸为所述池化核池化数据的行列数。
可选地,FPGA电路540用于:
选取每相邻的p个算子的第一级池化值,确定p×p区域上的第二级池化值,所述p×p为所述核尺寸,所述第二级池化值为所述p个算子中最大的第一级池化值或者所述p个算子的第一级池化值的求和值与p×p的平均值,所述第二级池化结果包括所述每相邻的p个算子的所述第二级池化值。
可选地,FPGA电路540用于:
确定所述数据区域中的数据是否包含所述特征图的边界上的数据;
若所述数据区域中的数据包含所述特征图的边界上的数据,则根据所述边界上的数据在所述数据区域中的位置,从所述第二级池化结果中确定对应的第二级池化值写入到所述第二存储设备中;
若所述数据区域中的数据不包含所述特征图的边界上的数据,则所述池化控制器从所述第二级池化结果中确定对应的第二级池化值写入到所述第二存储设备中。
可选地,FPGA电路540用于:
根据所述边界上的数据在所述数据区域中的位置,确定类型索引,所述类型索引用于关联所述边界上的数据的分布与所述第二级池化结果中第二级池化值的对应关系;
根据所述类型索引,从所述第二级池化结果中确定对应的第二级池化值写入到所述第二存储设备中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本申请实施例所提供的应用于卷积神经网络的池化处理的方法、卷积神经网络的池化处理***以及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种应用于卷积神经网络的池化处理的方法,其特征在于,所述方法应用于所述卷积神经网络的池化处理***,所述池化处理***包括第一存储设备、数据区域、池化核和池化控制器,所述方法包括:
所述池化控制器每个读取周期从所述第一存储设备中读取k个特征数据,所述k个特征数据包含于卷积运算所产生的特征图中,所述k为大于1的整数;
所述池化控制器向所述数据区域写入所读取的k个特征数据,所述k个特征数据按照第一方向排布,在一个更新周期中,所述数据区域被写入n队按照所述第一方向排布的nk个数据,所述更新周期的时长为所述读取周期的时长的n倍,所述n为大于1的整数;
在所述更新周期结束后,所述数据区域中的数据被传递到池化核做池化运算,所述数据区域中的数据包括所述nk个数据和排布在所述nk个数据之前的上一个更新周期中在第二方向上排布的最后m队数据,并且所述数据区域缓存所述更新周期中在所述第二方向上排布的最后m队数据用于下一个更新周期使用,所述m为正整数。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述池化核确定每个算子的第一级池化值,所述算子为所述第二方向上的每队数据,所述第一级池化值为所述每个算子中所包含数据的最大值或者所述每个算子中所包含数据的求和值;
所述池化核根据所述每个算子,按照核尺寸确定所述数据区域中的数据的第二级池化结果,所述核尺寸为所述池化核池化数据的行列数。
3.根据权利要求2所述的方法,其特征在于,所述池化核根据所述每个算子,按照核尺寸确定所述数据区域中的数据的第二级池化结果,包括:
所述池化核选取每相邻的p个算子的第一级池化值,确定p×p区域上的第二级池化值,所述p×p为所述核尺寸,所述第二级池化值为所述p个算子中最大的第一级池化值或者所述p个算子的第一级池化值的求和值与p×p的平均值,所述第二级池化结果包括所述每相邻的p个算子的所述第二级池化值。
4.根据权利要求2或3所述的方法,其特征在于,所述池化处理***还包括第二存储设备,所述方法还包括:
所述池化控制器确定所述数据区域中的数据是否包含所述特征图的边界上的数据;
若所述数据区域中的数据包含所述特征图的边界上的数据,则所述池化控制器根据所述边界上的数据在所述数据区域中的位置,从所述第二级池化结果中确定对应的第二级池化值写入到所述第二存储设备中;
若所述数据区域中的数据不包含所述特征图的边界上的数据,则所述池化控制器从所述第二级池化结果中确定对应的第二级池化值写入到所述第二存储设备中。
5.根据权利要求4所述的方法,其特征在于,所述池化控制器根据所述边界上的数据在所述数据区域中的位置,从所述第二级池化结果中确定对应的第二级池化值写入到所述第二存储设备中,包括:
所述池化控制器根据所述边界上的数据在所述数据区域中的位置,确定类型索引,所述类型索引用于关联所述边界上的数据的分布与所述第二级池化结果中第二级池化值的对应关系;
所述池化控制器根据所述类型索引,从所述第二级池化结果中确定对应的第二级池化值写入到所述第二存储设备中。
6.一种卷积神经网络的池化处理***,其特征在于,所述池化处理***包括第一存储设备、数据区域、池化核和池化控制器;
所述池化控制器,用于每个读取周期从所述第一存储设备中读取k个特征数据,所述k个特征数据包含于卷积运算所产生的特征图中,所述k为大于1的整数;
所述池化控制器,用于向所述数据区域写入所读取的k个特征数据,所述k个特征数据按照第一方向排布,在一个更新周期中,所述数据区域被写入n队按照所述第一方向排布的nk个数据,所述更新周期的时长为所述读取周期的时长的n倍,所述n为大于1的整数;
在所述更新周期结束后,所述数据区域中的数据被传递到池化核做池化运算,所述数据区域中的数据包括所述nk个数据和排布在所述nk个数据之前的上一个更新周期中在第二方向上排布的最后m队数据,并且所述数据区域缓存所述更新周期中在所述第二方向上排布的最后m队数据用于下一个更新周期使用,所述m为正整数。
7.根据权利要求6所述的池化处理***,其特征在于,
所述池化核,用于确定每个算子的第一级池化值,所述算子为所述第二方向上的每队数据,所述第一级池化值为所述每个算子中所包含数据的最大值或者所述每个算子中所包含数据的求和值;
所述池化核,用于根据所述每个算子,按照核尺寸确定所述数据区域中的数据的第二级池化结果,所述核尺寸为所述池化核池化数据的行列数。
8.根据权利要求7所述的池化处理***,其特征在于,
所述池化核,用于选取每相邻的p个算子的第一级池化值,确定p×p区域上的第二级池化值,所述p×p为所述核尺寸,所述第二级池化值为所述p个算子中最大的第一级池化值或者所述p个算子的第一级池化值的求和值与p×p的平均值,所述第二级池化结果包括所述每相邻的p个算子的所述第二级池化值。
9.根据权利要求7或8所述的池化处理***,其特征在于,所述池化处理***还包括第二存储设备,
所述池化控制器用于:
确定所述数据区域中的数据是否包含所述特征图的边界上的数据;
若所述数据区域中的数据包含所述特征图的边界上的数据,则根据所述边界上的数据在所述数据区域中的位置,从所述第二级池化结果中确定对应的第二级池化值写入到所述第二存储设备中;
若所述数据区域中的数据不包含所述特征图的边界上的数据,则所述池化控制器从所述第二级池化结果中确定对应的第二级池化值写入到所述第二存储设备中。
10.根据权利要求9所述的池化处理***,其特征在于,
所述池化控制器用于:
根据所述边界上的数据在所述数据区域中的位置,确定类型索引,所述类型索引用于关联所述边界上的数据的分布与所述第二级池化结果中第二级池化值的对应关系;
根据所述类型索引,从所述第二级池化结果中确定对应的第二级池化值写入到所述第二存储设备中。
11.根据权利要求6-8任一所述的池化处理***,其特征在于,所述池化处理***包括至少两个池化装置,所述至少两个池化装置中每个池化装置分别包括一个所述数据区域和一个所述池化核;所述每个池化装置并行处理所述池化控制器读取的所述特征图中的特征数据。
12.一种芯片***,其特征在于,所述芯片***包括现场可编程门阵列FPGA电路和/或专用集成电路ASIC,所述FPGA电路和/或ASIC用于执行权利要求1-5任一所述的池化处理的方法。
13.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机设备上运行时,使得所述计算机设备执行如权利要求1-5中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711059065.3A CN109754359B (zh) | 2017-11-01 | 2017-11-01 | 一种应用于卷积神经网络的池化处理的方法及*** |
PCT/CN2018/109267 WO2019085709A1 (zh) | 2017-11-01 | 2018-10-08 | 一种应用于卷积神经网络的池化处理的方法及*** |
US16/678,726 US11537857B2 (en) | 2017-11-01 | 2019-11-08 | Pooling processing method and system applied to convolutional neural network |
US18/047,716 US11734554B2 (en) | 2017-11-01 | 2022-10-19 | Pooling processing method and system applied to convolutional neural network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711059065.3A CN109754359B (zh) | 2017-11-01 | 2017-11-01 | 一种应用于卷积神经网络的池化处理的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109754359A CN109754359A (zh) | 2019-05-14 |
CN109754359B true CN109754359B (zh) | 2021-12-07 |
Family
ID=66331316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711059065.3A Active CN109754359B (zh) | 2017-11-01 | 2017-11-01 | 一种应用于卷积神经网络的池化处理的方法及*** |
Country Status (3)
Country | Link |
---|---|
US (2) | US11537857B2 (zh) |
CN (1) | CN109754359B (zh) |
WO (1) | WO2019085709A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109754359B (zh) * | 2017-11-01 | 2021-12-07 | 腾讯科技(深圳)有限公司 | 一种应用于卷积神经网络的池化处理的方法及*** |
US11467973B1 (en) * | 2018-09-28 | 2022-10-11 | Amazon Technologies, Inc. | Fine-grained access memory controller |
US11222210B2 (en) * | 2018-11-13 | 2022-01-11 | Nec Corporation | Attention and warping based domain adaptation for videos |
CN112116083B (zh) * | 2019-06-20 | 2024-03-08 | 地平线(上海)人工智能技术有限公司 | 神经网络加速器及其检测方法和装置 |
CN110516793B (zh) * | 2019-08-27 | 2022-06-17 | Oppo广东移动通信有限公司 | 一种池化处理方法及装置、存储介质 |
US11699081B2 (en) * | 2019-12-20 | 2023-07-11 | Meta Platforms, Inc. | Systems and methods for reducing data movement during convolution operations in artificial neural networks |
US11507831B2 (en) * | 2020-02-24 | 2022-11-22 | Stmicroelectronics International N.V. | Pooling unit for deep learning acceleration |
CN115841140B (zh) * | 2022-04-20 | 2023-08-11 | 北京爱芯科技有限公司 | 一种反最大池化运算方法、装置、电子设备及存储介质 |
CN115828079B (zh) * | 2022-04-20 | 2023-08-11 | 北京爱芯科技有限公司 | 一种最大池化运算的方法及装置 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62274471A (ja) * | 1986-05-23 | 1987-11-28 | Fanuc Ltd | 画像処理装置 |
US6044225A (en) * | 1996-03-13 | 2000-03-28 | Diamond Multimedia Systems, Inc. | Multiple parallel digital data stream channel controller |
US5784649A (en) * | 1996-03-13 | 1998-07-21 | Diamond Multimedia Systems, Inc. | Multi-threaded FIFO pool buffer and bus transfer control system |
US6700827B2 (en) * | 2001-02-08 | 2004-03-02 | Integrated Device Technology, Inc. | Cam circuit with error correction |
JP2006526227A (ja) * | 2003-05-23 | 2006-11-16 | ワシントン ユニヴァーシティー | Fpgaデバイスを使用するインテリジェントデータ記憶および処理 |
KR100827677B1 (ko) * | 2006-06-20 | 2008-05-07 | 한국과학기술원 | 행렬 스트라이프 캐쉬를 이용한 raid 시스템의 입출력성능 향상 방법 |
JP2009146474A (ja) * | 2007-12-12 | 2009-07-02 | Toshiba Corp | 不揮発性半導体記憶装置 |
KR101507122B1 (ko) * | 2008-04-29 | 2015-04-01 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 액세스 방법 |
US8964451B2 (en) * | 2011-03-09 | 2015-02-24 | Douglas P. Sheppard | Memory cell system and method |
CN106156807B (zh) * | 2015-04-02 | 2020-06-02 | 华中科技大学 | 卷积神经网络模型的训练方法及装置 |
CN106203619B (zh) * | 2015-05-29 | 2022-09-13 | 三星电子株式会社 | 数据优化的神经网络遍历 |
GB201607713D0 (en) * | 2016-05-03 | 2016-06-15 | Imagination Tech Ltd | Convolutional neural network |
US10318683B2 (en) * | 2016-05-20 | 2019-06-11 | International Business Machines Corporation | Clock domain-independent abstracts |
US10546211B2 (en) * | 2016-07-01 | 2020-01-28 | Google Llc | Convolutional neural network on programmable two dimensional image processor |
CN106156781B (zh) * | 2016-07-12 | 2019-09-10 | 北京航空航天大学 | 排序卷积神经网络构建方法及其图像处理方法与装置 |
CN106250103A (zh) * | 2016-08-04 | 2016-12-21 | 东南大学 | 一种卷积神经网络循环卷积计算数据重用的*** |
CN106355244B (zh) * | 2016-08-30 | 2019-08-13 | 深圳市诺比邻科技有限公司 | 卷积神经网络的构建方法及*** |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
CN106845375A (zh) * | 2017-01-06 | 2017-06-13 | 天津大学 | 一种基于层级化特征学习的动作识别方法 |
CN106779060B (zh) * | 2017-02-09 | 2019-03-08 | 武汉魅瞳科技有限公司 | 一种适于硬件设计实现的深度卷积神经网络的计算方法 |
CN106875012B (zh) * | 2017-02-09 | 2019-09-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速*** |
CN106940815B (zh) * | 2017-02-13 | 2020-07-28 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN106991472A (zh) * | 2017-03-30 | 2017-07-28 | 中国人民解放军国防科学技术大学 | 一种融合ReLU激活函数与最大值池化的向量化实现方法 |
CN106991473A (zh) * | 2017-03-30 | 2017-07-28 | 中国人民解放军国防科学技术大学 | 面向向量处理器的基于simd的平均值值池化并行处理方法 |
CN107013449B (zh) * | 2017-04-18 | 2018-08-24 | 山东万腾电子科技有限公司 | 基于深度学习的声音信号识别压缩机故障的方法及*** |
US10713537B2 (en) * | 2017-07-01 | 2020-07-14 | Algolux Inc. | Method and apparatus for joint image processing and perception |
CN109754359B (zh) * | 2017-11-01 | 2021-12-07 | 腾讯科技(深圳)有限公司 | 一种应用于卷积神经网络的池化处理的方法及*** |
-
2017
- 2017-11-01 CN CN201711059065.3A patent/CN109754359B/zh active Active
-
2018
- 2018-10-08 WO PCT/CN2018/109267 patent/WO2019085709A1/zh active Application Filing
-
2019
- 2019-11-08 US US16/678,726 patent/US11537857B2/en active Active
-
2022
- 2022-10-19 US US18/047,716 patent/US11734554B2/en active Active
Non-Patent Citations (1)
Title |
---|
卷积神经网络研究综述;周飞燕,金林鹏,董军;《计算机学报》;20170122;第1-23页 * |
Also Published As
Publication number | Publication date |
---|---|
US11734554B2 (en) | 2023-08-22 |
CN109754359A (zh) | 2019-05-14 |
WO2019085709A1 (zh) | 2019-05-09 |
US20200074289A1 (en) | 2020-03-05 |
US11537857B2 (en) | 2022-12-27 |
US20230062238A1 (en) | 2023-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109754359B (zh) | 一种应用于卷积神经网络的池化处理的方法及*** | |
US11093805B2 (en) | Image recognition method and apparatus, image verification method and apparatus, learning method and apparatus to recognize image, and learning method and apparatus to verify image | |
CN108073902B (zh) | 基于深度学习的视频总结方法、装置及终端设备 | |
EP3637281A1 (en) | Operational accelerator | |
US10346726B2 (en) | Image recognition method and apparatus, image verification method and apparatus, learning method and apparatus to recognize image, and learning method and apparatus to verify image | |
WO2022042123A1 (zh) | 图像识别模型生成方法、装置、计算机设备和存储介质 | |
US11347308B2 (en) | Method and apparatus with gaze tracking | |
US20220083857A1 (en) | Convolutional neural network operation method and device | |
CN109918498B (zh) | 一种问题入库方法和装置 | |
CN111914908B (zh) | 一种图像识别模型训练方法、图像识别方法及相关设备 | |
US10810458B2 (en) | Incremental automatic update of ranked neighbor lists based on k-th nearest neighbors | |
WO2021147276A1 (zh) | 数据处理方法、装置及芯片、电子设备、存储介质 | |
US9570125B1 (en) | Apparatuses and methods for shifting data during a masked write to a buffer | |
US20220067495A1 (en) | Intelligent processor, data processing method and storage medium | |
CN104899232B (zh) | 协同聚类的方法和设备 | |
CN111178513A (zh) | 神经网络的卷积实现方法、卷积实现装置及终端设备 | |
US12002272B2 (en) | Method and device for classifing densities of cells, electronic device using method, and storage medium | |
CN111860054A (zh) | 一种卷积网络训练方法和装置 | |
CN111652051B (zh) | 人脸检测模型生成方法、装置、设备和存储介质 | |
CN112906728A (zh) | 一种特征比对方法、装置及设备 | |
WO2020063225A1 (zh) | 一种数据处理方法和装置 | |
CN112906724A (zh) | 一种图像处理装置、方法、介质及*** | |
CN112149479B (zh) | 人脸识别的方法、存储介质和电子装置 | |
CN113298049B (zh) | 图像特征降维方法、装置、电子设备和存储介质 | |
TWI828185B (zh) | 三維卷積運算裝置與三維卷積運算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |