一种适用于神经网络的池化装置及方法制造方法及图纸

技术编号:18658787 阅读:26 留言:0更新日期:2018-08-11 14:45
本发明专利技术涉及一种适用于神经网络的池化装置,包括神经元输入接口模块,用于接收神经元数据,并识别有效神经元数据;池化缓存模块,用于暂存复用神经元数据;池化计算模块,用于完成针对神经元数据的池化计算;神经元输出接口模块,用于输出池化计算结果;以及池化控制模块,用于控制所述池化装置的各个模块和池化过程。

A pooling device and method for neural network

The invention relates to a pooling device suitable for neural networks, including a neuron input interface module for receiving neuron data and identifying valid neuron data; a pooling buffer module for temporarily storing and reusing neuron data; a pooling calculation module for completing pooling calculation for neuron data; and a neuron. The output interface module is used to output the results of pooling calculation, and the pooling control module is used to control each module of the pooling device and the pooling process.

【技术实现步骤摘要】
一种适用于神经网络的池化装置及方法
本专利技术涉及计算领域,特别涉及一种适用于神经网络的池化装置及方法。
技术介绍
神经网络是人工智能领域具有高发展水平的感知模型之一,因广泛的应用和出色的表现使其成为了学术界和工业界的研究热点。神经网络通过模拟人类大脑的神经连接结构来建立模型,为大规模数据(例如图像、视频或音频)处理任务带来了突破性进展。神经网络的计算过程一般可分为卷积、激活、池化等步骤,其中,神经网络的各层次特征图尺寸可随着池化操作组成减少,以达到计算收敛效果,高效的池化装置有利于节约神经网络的硬件成本。在实际应用中,不同神经网络模型的池化尺寸、池化复用选择以及池化数据的调度会存在差异。而现有技术中的池化装置,很难在满足神经网络加速器兼容性要求的同时,保持神经网络芯片的低能耗,这就极大限制了神经网络芯片的效率以及对不同网络的兼容性。因此,需要一种兼容性好且能耗低的适用于神经网络的池化装置及方法。
技术实现思路
本专利技术提供一种适用于神经网络的池化装置包括:神经元输入接口模块,用于接收神经元数据,并识别有效神经元数据;池化缓存模块,用于暂存复用神经元数据;池化计算模块,用于完成针对神经元数据的池化计算;神经元输出接口模块,用于输出池化计算结果;以及池化控制模块,用于控制所述池化装置的各个模块和池化过程。优选的,所述池化控制模块还用于接收并分析池化参数。优选的,所述池化控制模块根据所述池化参数判断是否在池化过程中采用复用策略。优选的,所述池化参数包括池化域的步长和边长。优选的,若所述步长小于边长,则采用复用策略,所述池化控制模块控制所述池化计算模块执行计算,并控制所述池化缓存模块启动。优选的,所述池化计算模块从所述神经元输入接口模块和所述池化缓存模块接收神经元数据。优选的,所述神经元数据是经拼接组成的单个池化域神经元数据。优选的,若所述步长等于边长,则不采用复用策略,所述池化控制模块控制所述池化计算模块对所述神经元直接执行计算,并控制所述池化缓存模块不启动。优选的,所述计算池化控制模块还用于控制所述池化装置的休眠和启动。根据本专利技术的另一个方面,还一种适用于神经网络的池化方法,包括以下步骤:接收并分析池化参数,生成有效数据编码并确定复用策略;根据所述有效数据编码接收有效神经元数据,根据所述复用策略判定是否存储复用神经元数据;针对所述有效神经元数据或者所述有效神经元数据和所述复用神经元数据拼接组成的神经元数据进行池化计算并输出计算的最终结果。相对于现有技术,本专利技术取得了如下有益技术效果:本专利技术提供的应用于神经网络的池化装置及方法,通过分析神经网络的池化参数,获得有效数据编码和复用策略,利用暂存数据的方式实现池化过程中数据的复用,从而实现利用固定的运算单元对不同池化范围的神经元进行分批激活,提升了池化装置的兼容性;同时为池化装置设立了休眠和启动机制,降低了神经网络芯片的能耗。附图说明图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、接收并存储神经元利用池化控制本文档来自技高网...

【技术保护点】
1.一种适用于神经网络的池化装置,包括神经元输入接口模块,用于接收神经元数据,并识别有效神经元数据;池化缓存模块,用于暂存复用神经元数据;池化计算模块,用于完成针对神经元数据的池化计算;神经元输出接口模块,用于输出池化计算结果;以及池化控制模块,用于控制所述池化装置的各个模块和池化过程。

【技术特征摘要】
1.一种适用于神经网络的池化装置,包括神经元输入接口模块,用于接收神经元数据,并识别有效神经元数据;池化缓存模块,用于暂存复用神经元数据;池化计算模块,用于完成针对神经元数据的池化计算;神经元输出接口模块,用于输出池化计算结果;以及池化控制模块,用于控制所述池化装置的各个模块和池化过程。2.根据权利要求1所述的池化装置,其特征在于,所述池化控制模块还用于接收并分析池化参数。3.根据权利要求2所述的池化装置,其特征在于,所述池化控制模块根据所述池化参数判断是否在池化过程中采用复用策略。4.根据权利要求3所述的池化装置,其特征在于,所述池化参数包括池化域的步长和边长。5.根据权利要求4所述的池化装置,其特征在于,若所述步长小于边长,则采用复用策略,所述池化控制模块控制所述池化计算模块执行计算,并控制所述池化缓存模块启动。6.根据权利要求5所述的池化装置,其特征...

【专利技术属性】
技术研发人员:韩银和闵丰许浩博王颖
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1