CN108304926B - 一种适用于神经网络的池化计算装置及方法 - Google Patents
一种适用于神经网络的池化计算装置及方法 Download PDFInfo
- Publication number
- CN108304926B CN108304926B CN201810014202.XA CN201810014202A CN108304926B CN 108304926 B CN108304926 B CN 108304926B CN 201810014202 A CN201810014202 A CN 201810014202A CN 108304926 B CN108304926 B CN 108304926B
- Authority
- CN
- China
- Prior art keywords
- pooling
- unit
- pooling operation
- result
- calculation
- 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/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
- G06F7/575—Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
Abstract
本发明涉及一种适用于神经网络的池化计算装置,包括内部缓存单元,用于接收和暂存神经元数据;池化运算单元,用于对所述内部缓存单元中存储的神经元数据执行池化运算;迭代判断单元,用于判断所述池化运算单元获得的计算结果是中间结果还是最终结果,并输出所述计算结果;池化控制模块,用于控制所述内部缓存单元、所述池化运算单元以及所述迭代判断单元针对所述内部缓存单元接收的神经元数据执行池化操作。
Description
技术领域
本发明涉及计算领域,特别涉及一种适用于神经网络的池化计算装置及方法。
背景技术
神经网络是人工智能领域具有高发展水平的感知模型之一,因广泛的应用和出色的表现使其成为了学术界和工业界的研究热点。神经网络通过模拟人类大脑的神经连接结构来建立模型,为大规模数据(例如图像、视频或音频)处理任务带来了突破性进展。神经网络的计算过程一般可分为卷积、激活、池化等步骤,其中,神经网络的各层次特征图尺寸可随着池化操作而减少,以达到计算收敛效果,高效的池化装置有利于节约神经网络的硬件成本。
由于不同神经网络模型的池化方式通常会存在差异,主要体现在计算方法和池化范围的选择不同。现有技术中的池化装置,通常只考虑了固定池化的计算方式和池化范围,这就极大限制了神经网络芯片对不同网络的兼容性。
因此,需要一种能够兼容性好的适用于神经网络的池化计算装置及方法。
发明内容
本发明提供一种适用于神经网络的池化计算装置及方法,包括内部缓存单元,用于接收和暂存神经元数据;池化运算单元,用于对所述内部缓存单元中存储的神经元数据执行池化运算并获得计算结果;迭代判断单元,用于判断所述池化运算单元获得的计算结果是中间结果还是最终结果;池化控制模块,用于控制所述内部缓存单元、所述池化运算单元以及所述迭代判断单元针对所述内部缓存单元接收的神经元数据执行池化操作。
优选的,所述池化控制模块根据接收的池化参数生成细分方案、选通信号和运算规则。
优选的,所述内部缓存单元根据所述细分方案对接收的神经元数据进行划分。
优选的,所述迭代判断单元根据所述运算规则决策执行迭代中间结果或者输出最终结果。
优选的,所述池化运算单元根据选通信号选择计算部件执行池化运算。
优选的,所述计算部件包括两个一级比较器和一个二级比较器。
本发明还提供一种利用如上所述的池化计算装置进行池化计算方法,包括以下步骤:
接收并分析池化参数,生成细分方案、选通信号和运算规则;
根据所述细分方案对接收的神经元数据进行划分;
根据选通信号分配相应的计算部件执行池化运算;
利用运算规则进行中间结果迭代运算,并输出最终池化运算结果,
优选的,在针对大小为2*2的池化核进行最大值/最小值池化运算时,利用两个一级比较器和二级比较器获得最终结果
优选的,在针对大小为3*3的池化核进行最大值/最小值池化运算时,首先将激活值按行或列分为三组并进行补位,再针对经补位后的四个激活值,利用两个一级比较器获得中间结果,并利用二级比较器获得最终结果。
优选的,若针对大小为4*4的池化核进行最大值/最小值池化运算,首先将激活值分为四组,利用一级比较器和二级比较器获得每组的最终结果,再将四个每组的最终结果分成两组分别输入两个一级比较器获得中间结果,最后利用二级比较器获得池化运算的最终结果。
相对于现有技术,本发明取得了如下有益技术效果:本发明提供的应用于神经网络的池化计算装置及方法,通过采用具有多级比较器的池化运算单元针对池化核中的数值进行计算,以及采用迭代判断单元实现中间计算结果和最终结果的暂存和传输,并且通过数值补位的方式,能够实现针对不同池化范围的池化操作,从而提高了池化计算的兼容性。
附图说明
图1是本发明提供的适用于神经网络的池化计算装置。
图2是利用图1所示的池化计算装置进行池化计算的方法流程图。
图3是输入图层中的2*2的池化核示意图。
图4是对图3所示的池化核进行最大/最小值计算的示意图。
图5是输入图层中的3*3的池化核示意图。
图6是输入图层中的4*4的池化核示意图
具体实施方式
为了使本发明的目的、技术方案以及优点更加清楚明白,以下结合附图,对根据本发明的实施例中提供的适用于神经网络的池化计算装置及方法进一步详细说明。
随着近年来人工智能的发展,基于深度学习的神经网络在解决抽象问题上得到了广泛的应用,深度神经网络可以通过多个变换阶段分层对数据特征进行描述,从而建立一种由大量节点通过网状互连构成的运算模型,这些节点通常被称为神经元。一般来说,神经网络的计算量较大,且计算过程复杂,利用池化装置的取最大/小值以及取平均值,可对神经网络的计算进行收敛。因此,设计高效的池化装置对神经网络的计算具有重要意义。
针对现有池化装置普遍存在兼容性较差的问题,发明人经研究提出了一种池化计算装置及方法,通过组合多种模式的运算模块,并且采用灵活的数据的管理模式,可以实现针对多种池化方式的兼容性以及池化范围的可扩展性。
图1是本发明提供的适用于神经网络的池化计算装置,如图1所示,该池化计算装置10包括内部缓存单元102、池化运算单元103、迭代判断单元104以及池化控制单元101。
其中,内部缓存单元102,可用于接收与暂存输入池化计算装置10的进行单次池化操作的神经元数据,并按照接收的划分方案将这些神经元数据进行分批,并根据划分方案针对不同的池化尺寸的进一步细分,例如,针对大小2*2的池化核可将神经元数据进行分批;针对大小为3*3或4*4的池化核,在执行分批之后还需要将每个池化核内的数据继续分组,以便利用池化运算单元103进行池化计算。
池化运算单元103,用于完成针对上述经细分的神经元数据进行的池化运算,具体包括用于计算最大/最小值的计算部件以及用于计算平均值的计算部件。池化运算单元103可根据接收的选通信号,为输入的神经元数据选通相应的计算部件,从而实现不同类型池化操作;
其中,用于计算最大/最小值的计算部件包括两个一级比较器和一个二级比较器,每个比较器可用于比较两组神经元数值的大小,例如,若池化核大小为2*2,则可将池化核内的激活值分为两组,并将每组分别输入至一个一级比较器中,利用两个一级比较器分别获得两组中的较大/较小值,再将获得的两个较大/较小值输入至二级比较器中,从而获得上述四个激活值中的最大/最小值的最终计算结果;
用于计算平均值的计算部件包括累加器和乘法器,其中,累加器用于针对输入的多个神经元数据进行累加求和并获得累加结果,乘法器用于将累加结果乘以所有神经元数据总个数的倒数,从而获得平均值。
迭代判断单元104,可用于根据接收的运算规则判断池化运算单元103获得运算结果,是需要进一步计算的中间结果还是所有计算完成后获得的可以直接输出的最终结果,同时,根据上述决策结果将中间结果输入至内部缓存单元102暂存,以便重新输入至池化运算单元103,或将最终结果直接输出;其中,上述中间结果可以指针对当前批次神经元数据进行计算时获得的中间计算结果,也可以指针对当前池化核内不同分组计算时获得的中间计算结果。
池化控制单元101,可用于接收神经网络的池化参数并生成相应的控制信息,例如,细分方案、选通信号和运算规则,并将上述控制信息发送至对应的单元,从而实现池化装置10的正确运行。其中,细分方案可用于指导内部缓存单元102可对输入的神经元数据执行的细分;选通信号可用于指导池化运算单元103为指定神经元数据分配的相应计算部件;运算规则可用于指导迭代判断单元104对中间结果的迭代或者对最终结果的输出。
以下将以针对大小为2*2的池化核取最大值/最小值为例,详细说明利用上述池化计算装置进行池化运算的方法,图2是利用图1所示的池化计算装置进行池化计算的方法流程图,如图2所示,该方法具体包括以下步骤:
步骤S10、接收并分析控制信号
当池化控制单元101接收到来自神经网络的池化操作控制信号,将控制池化计算装置10执行池化操作。
接收的池化操作控制信号包括池化操作的选通信号(即最大值/最小值)以及池化尺寸信号(即大小为2*2);通过分析选通信号,利用池化控制单元101选通池化运算单元103中的计算部件(即一级比较器和二级比较器);通过分析池化尺寸信号确定相应的细分方案以及运算规则。
步骤S20、接收并划分神经元数据
内部缓存单元102接收并存储输入的神经元数据,根据步骤S10获得的细分方案,确定输入图层中的每批池化核大小为2*2;同时,将划分后的细分批量神经元数据分批次逐一传输至经步骤S10选通的池化运算单元103中的计算部件,即一级比较器和二级比较器。
步骤S30、进行池化计算并输出最终结果
利用池化计算单元103对输入的细批量神经元数据执行池化操作,图4是利用上述池化运算单元103进行最大/最小值计算的示意图,如图4所示,将当前批次的池化核中的四个激活值a、b、c、d分成两组输入一级比较器,分别求出a、b之中的较大/较小值e,和c、d之中的较大/较小值f,再将e、f输入二级比较器,从而获得四个激活值中的最大/最小值的计算结果;然后,将该计算结果输出至迭代判断单元104进行决策,迭代判断单元104根据池化控制单元101发出的运算规则进行判定,若该结算结果为中间结果,则可将其与下一批由内部缓存单元102传输至池化计算单元103执行池化操作的神经元数据一起输入至池化运算单元103执行池化操作;循坏上述迭代步骤,直到完成针对所有神经元数据的池化运算,则可判定该计算结果为最终结果,从而将该结果作为池化最终结果存储在内部缓存单元102中或者输出至外部神经网络。
在本发明的一个实施例中,利用上述池化计算装置还可针对大小为3*3的池化核进行池化运算,图5是3*3的池化核示意图,如图5所示,假设输入图层中的每批池化核大小为3*3,利用池化计算单元103对该池化核进行最大/最小值计算与大小为2*2的池化核相似,主要区别在于:
根据池化控制单元101接收的池化参数分析获得的细分方案,内部缓存单元102可将大小为3*3池化核内的激活值按行或列方向分成三组,其中每组包括三个激活值;假设第一组包括的三个激活值为a、b、c,为了利用池化运算单元103中的一级比较器和二级比较器计算a、b、c中的最大/最小值,需要对其进行补位,例如,在计算最大值时,可利用神经网络处理器可以表示的最小值d进行补位,相应的,在计算最小值时,可利用神经网络处理器可以表示的最大值d进行补位,从而使得输入至池化计算单元的神经元数值为四个,再利用上述方式求得a、b、c、d之中的最大/最小值并输出到迭代判断单元104进行决策;
由于该值是第一组的中间结果,迭代判断单元104经过决策后,会将其传输至池化运算单元103,与第二组激活值一起再进行最大/最小值计算;按照相同的方法对第三组激活值执行池化运算,可获得大小为3*3池化核的最大值/最小值;循坏上述步骤,直到完成针对所有神经元数据的池化运算,则可判定该计算结果为最终结果,从而将该结果作为池化最终结果存储在内部缓存单元102中或者输出至外部神经网络。
在本发明的一个实施例中,对上述3*3的池化核进行补位时,还可采用同时对三组进行补位的方式,即将3*3的池化核补位成4*4的池化核再进行池化计算。
在本发明的一个实施例中,利用上述池化计算装置还可针对大小为4*4的池化核进行池化运算,图6是4*4的池化核示意图,如图6所示,假设输入图层中的每批池化核大小为4*4,假设输入图层中的每批池化核大小为4*4,利用池化计算单元103对该池化核进行最大/最小值计算与大小为2*2的池化核相似,主要区别在于:
根据池化控制单元101接收的池化参数分析获得的细分方案,内部缓存单元102可将大小为4*4池化核内的激活值按行或列方向分成四组,每组包括四个激活值,从而可将每组视作一个大小为2*2的池化核执行池化运算,并获得每组的较大/较小值共计四个,然后再将上述四个较大/较小值再视作一个2*2的池化核再计算,从而获得该4*4池化核内激活值的最大/最小值;循坏上述步骤,直到完成针对所有神经元数据的池化运算,则可判定该计算结果为最终结果,从而将该结果作为池化最终结果存储在内部缓存单元102中或者输出至外部神经网络。
尽管在上述实施例中,采用了两级比较器为例对最大/最小值的池化计算进行了举例说明,但本领域普通技术人员应理解,上述池化运算单元103的计算部件还可在硬件允许的条件下包括更多级的比较器,以便提高计算效率;另外,虽然在上述实施例中采用了大小为2*2、3*3以及4*4的池化核为例对本发明提供的池化计算方法进行了说明,但本领域普通技术人员应理解,上述方法也可适用于其它池化范围的神经元数据。
相对于现有技术,在本发明实施例中所提供的池化计算装置及方法,采用了具有多级比较器的池化运算单元,利用数据迭代和数值补位的方式,能够实现针对不同类型和尺寸的池化操作,从而提高了池化计算的兼容性。
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。
Claims (6)
1.一种适用于神经网络的池化计算装置,包括
内部缓存单元,用于接收和暂存输入池化计算装置的进行池化操作的神经元数据;
池化运算单元,其包括多个计算部件,用于对所述内部缓存单元中存储的所述进行池化操作的神经元数据执行池化运算并获得计算结果;
迭代判断单元,用于判断所述池化运算单元获得的计算结果是中间结果还是最终结果;
池化控制模块,用于控制所述内部缓存单元、所述池化运算单元以及所述迭代判断单元针对所述内部缓存单元接收的所述进行池化操作的神经元数据执行池化操作;其中,
所述池化控制模块根据池化参数生成细分方案、选通信号和运算规则;
所述细分方案用于所述内部缓存单元按照接收的划分方案将所述进行池化操作的神经元数据进行分批,并根据所述划分方案针对不同的池化尺寸的进一步细分;
所述选通信号用于所述池化运算单元选择相应的计算部件执行池化运算;
所述运算规则用于所述迭代判断单元决策执行迭代中间结果或者输出最终结果。
2.根据权利要求1所述的池化计算装置,其特征在于,所述计算部件包括两个一级比较器和一个二级比较器。
3.一种利用如权利要求1至2任一项所述的池化计算装置进行池化计算方法,包括以下步骤:
接收并分析池化参数,生成细分方案、选通信号和运算规则;
按照接收的划分方案将所述进行池化操作的神经元数据进行分批,并根据所述划分方案针对不同的池化尺寸的进一步细分;
根据选通信号分配相应的计算部件执行池化运算;
利用运算规则进行中间结果迭代运算,并输出最终池化运算结果。
4.根据权利要求3所述的池化计算方法,其特征在于,在针对大小为2*2的池化核进行最大值/最小值池化运算时,利用两个一级比较器和二级比较器获得最终结果。
5.根据权利要求3所述的池化计算方法,其特征在于,在针对大小为3*3的池化核进行最大值/最小值池化运算时,首先将激活值按行或列分为三组并进行补位,再针对经补位后的四个激活值,利用两个一级比较器获得中间结果,并利用二级比较器获得最终结果。
6.根据权利要求3所述的池化计算方法,其特征在于,若针对大小为4*4的池化核进行最大值/最小值池化运算,首先将激活值分为四组,利用一级比较器和二级比较器获得每组的最终结果,再将四个每组的最终结果分成两组分别输入两个一级比较器获得中间结果,最后利用二级比较器获得池化运算的最终结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810014202.XA CN108304926B (zh) | 2018-01-08 | 2018-01-08 | 一种适用于神经网络的池化计算装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810014202.XA CN108304926B (zh) | 2018-01-08 | 2018-01-08 | 一种适用于神经网络的池化计算装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108304926A CN108304926A (zh) | 2018-07-20 |
CN108304926B true CN108304926B (zh) | 2020-12-29 |
Family
ID=62868732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810014202.XA Active CN108304926B (zh) | 2018-01-08 | 2018-01-08 | 一种适用于神经网络的池化计算装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108304926B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002885A (zh) * | 2018-07-24 | 2018-12-14 | 济南浪潮高新科技投资发展有限公司 | 一种卷积神经网络池化单元及池化计算方法 |
CN110119807B (zh) * | 2018-10-12 | 2021-11-09 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
US10915248B1 (en) | 2019-08-07 | 2021-02-09 | Macronix International Co., Ltd. | Memory device |
CN111738417B (zh) * | 2020-06-19 | 2024-03-08 | 格兰菲智能科技有限公司 | 神经网络计算装置及其快取管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160267380A1 (en) * | 2015-03-13 | 2016-09-15 | Nuance Communications, Inc. | Method and System for Training a Neural Network |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
CN107527090A (zh) * | 2017-08-24 | 2017-12-29 | 中国科学院计算技术研究所 | 应用于稀疏神经网络的处理器和处理方法 |
-
2018
- 2018-01-08 CN CN201810014202.XA patent/CN108304926B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160267380A1 (en) * | 2015-03-13 | 2016-09-15 | Nuance Communications, Inc. | Method and System for Training a Neural Network |
CN107239824A (zh) * | 2016-12-05 | 2017-10-10 | 北京深鉴智能科技有限公司 | 用于实现稀疏卷积神经网络加速器的装置和方法 |
CN107527090A (zh) * | 2017-08-24 | 2017-12-29 | 中国科学院计算技术研究所 | 应用于稀疏神经网络的处理器和处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108304926A (zh) | 2018-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10096134B2 (en) | Data compaction and memory bandwidth reduction for sparse neural networks | |
CN108304926B (zh) | 一种适用于神经网络的池化计算装置及方法 | |
US10482380B2 (en) | Conditional parallel processing in fully-connected neural networks | |
CN108304925B (zh) | 一种池化计算装置及方法 | |
US20180197084A1 (en) | Convolutional neural network system having binary parameter and operation method thereof | |
US20190087713A1 (en) | Compression of sparse deep convolutional network weights | |
WO2020238843A1 (zh) | 神经网络计算设备、方法以及计算设备 | |
CN109472356A (zh) | 一种可重构神经网络算法的加速装置及方法 | |
US20220083857A1 (en) | Convolutional neural network operation method and device | |
CN115186821B (zh) | 面向芯粒的神经网络推理开销估计方法及装置、电子设备 | |
JP2023510566A (ja) | ニューラル・ネットワークのための適応的探索方法および装置 | |
US20220092408A1 (en) | Neural network weight distribution using a tree direct-memory access (dma) bus | |
CN112101525A (zh) | 一种通过nas设计神经网络的方法、装置和系统 | |
KR101950786B1 (ko) | 분산처리용 인공신경망 연산 가속화 방법 | |
CN108491924B (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
CN116644804A (zh) | 分布式训练系统、神经网络模型训练方法、设备和介质 | |
CN111831359A (zh) | 权重精度配置方法、装置、设备及存储介质 | |
CN111831354A (zh) | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 | |
CN116762080A (zh) | 神经网络生成装置、神经网络运算装置、边缘设备、神经网络控制方法以及软件生成程序 | |
CN111831356B (zh) | 权重精度配置方法、装置、设备及存储介质 | |
CN111199276B (zh) | 数据处理方法及相关产品 | |
Zhan et al. | Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems | |
Wu et al. | Skeletongcn: a simple yet effective accelerator for gcn training | |
CN114897133A (zh) | 一种通用可配置的Transformer硬件加速器及其实现方法 | |
CN113112009B (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 |