CN108388943A - 一种适用于神经网络的池化装置及方法 - Google Patents
一种适用于神经网络的池化装置及方法 Download PDFInfo
- Publication number
- CN108388943A CN108388943A CN201810014396.3A CN201810014396A CN108388943A CN 108388943 A CN108388943 A CN 108388943A CN 201810014396 A CN201810014396 A CN 201810014396A CN 108388943 A CN108388943 A CN 108388943A
- Authority
- CN
- China
- Prior art keywords
- pond
- neuron
- module
- makeup
- multiplexing
- 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.)
- Granted
Links
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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Advance Control (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及一种适用于神经网络的池化装置,包括神经元输入接口模块,用于接收神经元数据,并识别有效神经元数据;池化缓存模块,用于暂存复用神经元数据;池化计算模块,用于完成针对神经元数据的池化计算;神经元输出接口模块,用于输出池化计算结果;以及池化控制模块,用于控制所述池化装置的各个模块和池化过程。
Description
技术领域
本发明涉及计算领域,特别涉及一种适用于神经网络的池化装置及方法。
背景技术
神经网络是人工智能领域具有高发展水平的感知模型之一,因广泛的应用和出色的表现使其成为了学术界和工业界的研究热点。神经网络通过模拟人类大脑的神经连接结构来建立模型,为大规模数据(例如图像、视频或音频)处理任务带来了突破性进展。神经网络的计算过程一般可分为卷积、激活、池化等步骤,其中,神经网络的各层次特征图尺寸可随着池化操作组成减少,以达到计算收敛效果,高效的池化装置有利于节约神经网络的硬件成本。
在实际应用中,不同神经网络模型的池化尺寸、池化复用选择以及池化数据的调度会存在差异。而现有技术中的池化装置,很难在满足神经网络加速器兼容性要求的同时,保持神经网络芯片的低能耗,这就极大限制了神经网络芯片的效率以及对不同网络的兼容性。
因此,需要一种兼容性好且能耗低的适用于神经网络的池化装置及方法。
发明内容
本发明提供一种适用于神经网络的池化装置包括:神经元输入接口模块,用于接收神经元数据,并识别有效神经元数据;池化缓存模块,用于暂存复用神经元数据;池化计算模块,用于完成针对神经元数据的池化计算;神经元输出接口模块,用于输出池化计算结果;以及池化控制模块,用于控制所述池化装置的各个模块和池化过程。
优选的,所述池化控制模块还用于接收并分析池化参数。
优选的,所述池化控制模块根据所述池化参数判断是否在池化过程中采用复用策略。
优选的,所述池化参数包括池化域的步长和边长。
优选的,若所述步长小于边长,则采用复用策略,所述池化控制模块控制所述池化计算模块执行计算,并控制所述池化缓存模块启动。
优选的,所述池化计算模块从所述神经元输入接口模块和所述池化缓存模块接收神经元数据。
优选的,所述神经元数据是经拼接组成的单个池化域神经元数据。
优选的,若所述步长等于边长,则不采用复用策略,所述池化控制模块控制所述池化计算模块对所述神经元直接执行计算,并控制所述池化缓存模块不启动。
优选的,所述计算池化控制模块还用于控制所述池化装置的休眠和启动。
根据本发明的另一个方面,还一种适用于神经网络的池化方法,包括以下步骤:
接收并分析池化参数,生成有效数据编码并确定复用策略;
根据所述有效数据编码接收有效神经元数据,根据所述复用策略判定是否存储复用神经元数据;
针对所述有效神经元数据或者所述有效神经元数据和所述复用神经元数据拼接组成的神经元数据进行池化计算并输出计算的最终结果。
相对于现有技术,本发明取得了如下有益技术效果:本发明提供的应用于神经网络的池化装置及方法,通过分析神经网络的池化参数,获得有效数据编码和复用策略,利用暂存数据的方式实现池化过程中数据的复用,从而实现利用固定的运算单元对不同池化范围的神经元进行分批激活,提升了池化装置的兼容性;同时为池化装置设立了休眠和启动机制,降低了神经网络芯片的能耗。
附图说明
图1是本发明提供的适用于神经网络的池化装置。
图2是利用图1所示的池化装置进行池化的方法流程图。
图3是本发明的较佳实施例的池化装置结构示意图。
具体实施方式
为了使本发明的目的、技术方案以及优点更加清楚明白,以下结合附图,对根据本发明的实施例中提供的适用于神经网络的池化装置及方法进一步详细说明。
随着近年来人工智能的发展,基于深度学***均值,可对神经网络的计算进行收敛。因此,设计高效的池化装置对神经网络的计算具有重要意义。
针对现有池化装置普遍存在兼容性较差的问题,发明人经研究提出了一种池化装置及方法,能够以固定规模的池化计算模块完成不同规模的池化任务,并且采用了灵活的调用方式来完成神经元的复用,从而能够保证对神经网络加速器的兼容性;同时,采用了启动和休眠相结合的工作机制,从而实现神经网络芯片的低能耗。
图1是本发明提供的适用于神经网络的池化装置,如图1所示,池化装置101包括神经元输入接口模块102、神经元输出接口模块105、池化缓存模块103、池化计算模块104以及池化控制模块106。
其中,神经元输入接口模块102,可用于根据接收的控制信号,按照传输协议接收由外部模块(例如激活模块或外部缓存模块)传递至池化装置101的不同有效带宽的神经元数据,并保证数据准确的传输。该接口模块可与外部模块建立持续的数据传输通道,并根据控制信号中的有效数据段地址编码识别出输入的神经元数据的有效部分;
池化缓存模块103,可用于存储待池化的复用神经元,为神经元的池化操作提供复用部分的数据供应,该模块可根据接收的控制信号,辅助完成神经元数据复用过程中的数据读取过程;
池化计算模块104,可用于完成对每次输入的神经元的激活操作,其池化运算单元数固定,对于不同池化范围的神经元可采用分割方式完成池化;同时,该运算模块还可暂存池化运算的中间结果,以用于辅助完成神经元池化操作时的迭代运算;
神经元输出接口模块105,可用于根据接收的控制信号,按照传输协议向外部模块输出池化装置101的运算结果。
池化控制模块106,可用于接收发送至池化装置101的池化参数,并根据该参数向池化装置101的各个模块发送控制信号,对各模块的工作情况以及池化数据在池化过程中的流水传递进行管控,例如,控制模块106可控制神经元输入接口模块102和神经元输出接口模块105的有效数据输入/输出量,以及池化缓存模块103数据的写入、删除与传递。
在本发明的一个实施例中,池化控制模块106还可以控制池化装置101各模块的启动和休眠。例如,在Resnet50神经网络模型中,其总层数约50层,其中执行池化操作所需的层数为2,分别为池化边长3x3,步长为2,以及池化边长7x7,步长为7,由于该模型中的池化操作为小众计算,可在不使用池化的其它网络层设置池化装置的启动与休眠机制,从而减少池化模块对神经网络加速器带来的附加能耗。
根据本发明的另一个方面,还提供一种利用上述池化装置101对神经元数据进行池化的方法,图2是利用图1所示的池化装置进行池化的方法流程图,如图2所示,该方法具体包括以下步骤:
步骤S10、接收并分析池化参数
当神经网络需要进行池化时,池化控制模块106将接收来自神经网络的激活信号,从而控制启动处于休眠状态的池化装置101中的各个模块。
池化装置启动后,可利用池化控制模块106接收来自外部神经网络模块发送至池化装置101的池化参数并进行参数分析,以便确定池化运算的复用策略,并生成控制信号;
其中,池化参数可包括池化边长、池化步长和池化操作类型。池化控制模块可通过分析池化边长和池化步长,判断当前层池化复用的必要性,例如,若步长与边长相等,控制模块可选择非复用策略;若步长小于边长,则需启动复用策略,并计算出神经元的复用量,再根据池化计算模块104的运算单元数量对池化域内的神经元进行分批,生成表示每批神经元数量的数据编码。
在本发明的一个实施例中,上述池化装置101的输入带宽所对应的神经元数据量与池化计算模块104的运算单元数相同。
步骤S20、接收并存储神经元
利用池化控制模块106,将步骤S10生成的有效数据编码以及神经元复用量发送至神经元输入接口模块102,神经元输入接口模块102根据上述有效数据编码以及相应的传输协议,从外部接收有效的神经元数据;同时,还根据上述神经元复用量,对输入的神经元中待下次激活复用的部分进行赋值,并将其暂存入池化缓存模块103以待下次使用。
步骤S30、执行池化计算并输出计算结果
池化控制模块106控制完成步骤S20上述神经元数据的输入暂存后,可从神经元输入接口模块102和池化缓存模块103加载神经元,并将上述神经元拼接组成单个池化域的神经元输入至池化计算模块104,池化计算模块104根据接收的来自池化控制模块106的控制信息选择计算类型对该神经元数据执行池化运算;其中,上述控制信息包含与当前神经元数据相对应的池化计算类型;
针对当前批次的神经元数据,若池化计算模块104获得的计算结果为中间结果,则将该中间结果暂存,待属于当前池化范围的下一批次神经元数据输入池化装置时,将上述中间结果与下一批次输入的神经元数据共同输入至神经元输入接口模块102,以便进行迭代计算;经过若干次迭代运算后,若池化计算模块104获得的计算结果为池化最终结果,则将该最终结果传输至神经元输出接口模块105,按照数据传输协议将该最终结果输出至外部模块。
在本发明的一个实施例中,当池化运算模块104在执行池化操作时,若输入的神经元数据无法完全填充池化计算模块104的输入带宽,池化控制模块106可依据不同类型池化操作对输入的神经元数据的空闲位进行填充,从而保证池化计算的准确性。
图3是本发明的较佳实施例的池化装置结构示意图,如图3所示,以下将以具体的实例来说明本发明提供的利用池化装置101对神经元数据进行池化的方法。
假设池化装置101的输入带宽为128bit,神经元为8bit,池化域的步长为2、边长为3。当池化装置101接收到激活信号,可由池化控制模块106控制启动,从休眠状态进入池化计算状态。
首先执行上述步骤S10,利用池化控制模块106接收外部模块输入的池化参数,包括池化域边长3,池化步长2,以及池化操作类型;同时,利用池化控制模块106分析上述参数数据,由于池化步长小于池化边长,则判定需要启动神经元复用机制,假设池化窗口为单向移动,则可获得其复用量为3;
其次,执行上述步骤S20,接收神经元,并依据池化计算模块104的运算单元数量对池化域内的神经元进行分批,假设输入的神经元数为16,池化域的有效神经元数为9,单次输入传递可容纳单个池化域中所有神经元,若神经元为输入特征图每行的第一个池化窗口,则有效神经元个数为9,可生成表示每批量神经元数量为9的编码;
根据上述有效编码,输入接口模块102将从外部模块发送的包含有效与无效的数据中接收128bit的有效数据;同时,根据复用量信息将输入神经元中待下次激活复用部分的3个神经元复制并存入池化缓存模块103;
最后,执行上述步骤S30,池化控制模块106将输入的6个神经元与暂存模块中需复用的3个神经元进行拼接组成3x3池化域内的9个输入神经元,并将上述拼接结果传输至池化计算模块,执行池化计算,获得最终结果后经神经元输出接口模块105传输至外部模块。
在本发明的另一个实施例中,假设池化域的步长与边长相同,例如均为7,当池化装置101接收到激活信号进入池化计算状态时,则无需启动神经元复用机制,也就是说,无需启动池化缓存模块103,可将输入的神经元直接传输至池化计算模块104进行池化运算,若池化域的神经元需要分多批次进行池化,则可将中间结果暂存,并与后续批次的神经元共同执行池化,直至完成规定池化域所有神经元的池化操作任务并输出结果,例如,假设单个池化域的神经元为49个,则可分为4个批次,从而生成编码为(16-16-16-1)。
尽管在上述实施例中,采用了Resnet50神经网络模型为例对本发明提供的池化装置及方法进行了说明,但本领域普通技术人员应理解,此处的池化装置及方法还可以用于其它神经网络模型。
相对于现有技术,在本发明实施例中所提供的适用于神经网络的池化装置及方法,通过采用相应复用策略,实现了仅利用固定规模的池化运算单元就可完成不同规模的池化任务,同时以灵活的神经元调用方法完成神经元的复用,实现了池化装置的兼容性;设立了池化装置的启动与休眠机制,降低了池化装置的能耗。
虽然本发明已经通过优选实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所作出的各种改变以及变化。
Claims (10)
1.一种适用于神经网络的池化装置,包括
神经元输入接口模块,用于接收神经元数据,并识别有效神经元数据;
池化缓存模块,用于暂存复用神经元数据;
池化计算模块,用于完成针对神经元数据的池化计算;
神经元输出接口模块,用于输出池化计算结果;以及
池化控制模块,用于控制所述池化装置的各个模块和池化过程。
2.根据权利要求1所述的池化装置,其特征在于,所述池化控制模块还用于接收并分析池化参数。
3.根据权利要求2所述的池化装置,其特征在于,所述池化控制模块根据所述池化参数判断是否在池化过程中采用复用策略。
4.根据权利要求3所述的池化装置,其特征在于,所述池化参数包括池化域的步长和边长。
5.根据权利要求4所述的池化装置,其特征在于,若所述步长小于边长,则采用复用策略,所述池化控制模块控制所述池化计算模块执行计算,并控制所述池化缓存模块启动。
6.根据权利要求5所述的池化装置,其特征在于,所述池化计算模块从所述神经元输入接口模块和所述池化缓存模块接收神经元数据。
7.根据权利要求6所述的池化装置,其特征在于,所述神经元数据是经拼接组成的单个池化域神经元数据。
8.根据权利要求4所述的池化装置,其特征在于,若所述步长等于边长,则不采用复用策略,所述池化控制模块控制所述池化计算模块对所述神经元直接执行计算,并控制所述池化缓存模块不启动。
9.根据权利要求1至8任一项所述的池化装置,其特征在于,所述计算池化控制模块还用于控制所述池化装置的休眠和启动。
10.一种适用于神经网络的池化方法,包括以下步骤:
接收并分析池化参数,生成有效数据编码并确定复用策略;
根据所述有效数据编码接收有效神经元数据,根据所述复用策略判定是否存储复用神经元数据;
针对所述有效神经元数据或者所述有效神经元数据和所述复用神经元数据拼接组成的神经元数据进行池化计算并输出计算的最终结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810014396.3A CN108388943B (zh) | 2018-01-08 | 2018-01-08 | 一种适用于神经网络的池化装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810014396.3A CN108388943B (zh) | 2018-01-08 | 2018-01-08 | 一种适用于神经网络的池化装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108388943A true CN108388943A (zh) | 2018-08-10 |
CN108388943B CN108388943B (zh) | 2020-12-29 |
Family
ID=63076734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810014396.3A Active CN108388943B (zh) | 2018-01-08 | 2018-01-08 | 一种适用于神经网络的池化装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108388943B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558564A (zh) * | 2018-11-30 | 2019-04-02 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN117273102A (zh) * | 2023-11-23 | 2023-12-22 | 深圳鲲云信息科技有限公司 | 用于池化加速器的装置及方法和芯片电路及计算设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015036939A (ja) * | 2013-08-15 | 2015-02-23 | 富士ゼロックス株式会社 | 特徴抽出プログラム及び情報処理装置 |
CN106228240A (zh) * | 2016-07-30 | 2016-12-14 | 复旦大学 | 基于fpga的深度卷积神经网络实现方法 |
CN106355244A (zh) * | 2016-08-30 | 2017-01-25 | 深圳市诺比邻科技有限公司 | 卷积神经网络的构建方法及*** |
CN106682734A (zh) * | 2016-12-30 | 2017-05-17 | 中国科学院深圳先进技术研究院 | 一种提升卷积神经网络泛化能力的方法及装置 |
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速*** |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN107103113A (zh) * | 2017-03-23 | 2017-08-29 | 中国科学院计算技术研究所 | 面向神经网络处理器的自动化设计方法、装置及优化方法 |
US20170300812A1 (en) * | 2016-04-14 | 2017-10-19 | International Business Machines Corporation | Efficient determination of optimized learning settings of neural networks |
-
2018
- 2018-01-08 CN CN201810014396.3A patent/CN108388943B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015036939A (ja) * | 2013-08-15 | 2015-02-23 | 富士ゼロックス株式会社 | 特徴抽出プログラム及び情報処理装置 |
US20170300812A1 (en) * | 2016-04-14 | 2017-10-19 | International Business Machines Corporation | Efficient determination of optimized learning settings of neural networks |
CN106228240A (zh) * | 2016-07-30 | 2016-12-14 | 复旦大学 | 基于fpga的深度卷积神经网络实现方法 |
CN106355244A (zh) * | 2016-08-30 | 2017-01-25 | 深圳市诺比邻科技有限公司 | 卷积神经网络的构建方法及*** |
CN106682734A (zh) * | 2016-12-30 | 2017-05-17 | 中国科学院深圳先进技术研究院 | 一种提升卷积神经网络泛化能力的方法及装置 |
CN106875012A (zh) * | 2017-02-09 | 2017-06-20 | 武汉魅瞳科技有限公司 | 一种基于fpga的深度卷积神经网络的流水化加速*** |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN107103113A (zh) * | 2017-03-23 | 2017-08-29 | 中国科学院计算技术研究所 | 面向神经网络处理器的自动化设计方法、装置及优化方法 |
Non-Patent Citations (2)
Title |
---|
NICOLA CALABRETTA等: "Flow controlled scalable optical packet switch for low latency flat data center network", 《2013 15TH INTERNATIONAL CONFERENCE ON TRANSPARENT OPTICAL NETWORKS (ICTON)》 * |
常亮等: "图像理解中的卷积神经网络", 《自动化学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558564A (zh) * | 2018-11-30 | 2019-04-02 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN109558564B (zh) * | 2018-11-30 | 2022-03-11 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
CN117273102A (zh) * | 2023-11-23 | 2023-12-22 | 深圳鲲云信息科技有限公司 | 用于池化加速器的装置及方法和芯片电路及计算设备 |
CN117273102B (zh) * | 2023-11-23 | 2024-05-24 | 深圳鲲云信息科技有限公司 | 用于池化加速器的装置及方法和芯片电路及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108388943B (zh) | 2020-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11521012B2 (en) | Method for training neural network model and apparatus | |
CN110348574B (zh) | 一种基于zynq的通用卷积神经网络加速结构及设计方法 | |
CN107844826A (zh) | 神经网络处理单元及包含该处理单元的处理*** | |
CN108345934B (zh) | 一种用于神经网络处理器的激活装置及方法 | |
CN110386027A (zh) | 云计算和边缘计算相结合的电动汽车用电池管理*** | |
CN108388943A (zh) | 一种适用于神经网络的池化装置及方法 | |
CN108304925A (zh) | 一种池化计算装置及方法 | |
CN111831359B (zh) | 权重精度配置方法、装置、设备及存储介质 | |
CN111831358B (zh) | 权重精度配置方法、装置、设备及存储介质 | |
CN108304926A (zh) | 一种适用于神经网络的池化计算装置及方法 | |
WO2022078334A1 (zh) | 利用神经元模型及网络处理信号的处理方法、介质、设备 | |
CN109086871A (zh) | 神经网络的训练方法、装置、电子设备和计算机可读介质 | |
CN112383439B (zh) | 一种智能燃气表空中升级***及升级方法 | |
CN114691765A (zh) | 一种人工智能***中数据处理方法及装置 | |
CN111831354B (zh) | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 | |
CN109299487A (zh) | 神经网络模型、加速器、建模方法及装置、介质及*** | |
CN113742082A (zh) | 应用资源分配方法及装置、计算机可读介质和终端 | |
CN111344719A (zh) | 基于深度神经网络的数据处理方法、装置及移动设备 | |
CN106971229B (zh) | 神经网络计算核信息处理方法和*** | |
CN113469206B (zh) | 获取人工智能模型的方法、装置、设备及存储介质 | |
CN108090865B (zh) | 光学卫星遥感影像在轨实时流式处理方法及*** | |
CN115964333A (zh) | 一种基于fpga主控的多芯片神经网络算法的通信方法 | |
CN109190755A (zh) | 面向神经网络的矩阵转换装置及方法 | |
CN108564524A (zh) | 一种视觉图像的卷积计算优化方法 | |
CN114004731B (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 |