当前位置: 首页 > 专利查询>清华大学专利>正文

一种可配置池化算子的方法及电路技术

技术编号:24411901 阅读:54 留言:0更新日期:2020-06-06 09:36
本发明专利技术公开了一种可配置池化算子的方法,在池化计算之前设置一个片上的池化缓存,先按照卷积计算中的排列次序将数据存入池化缓存,然后再按照池化运算的顺序从池化缓存的相应位置依次取出数据进行计算,本发明专利技术还提供了一种可配置池化算子的电路,并公开了最大池化计算模块和平均池化计算模块的具体结构,在平均池化计算模块中,通过复用所述平均池化计算模块若干次,并在第三个加法器的输出与移位器的输入之间设置累加器,从而实现全局平均池化,通过改变复用平均池化计算模块的次数,实现任意尺寸下的全局平均池化计算。本发明专利技术不仅可以省去使用处理器计算池化的时间,优化加速器的性能,而且具有良好的通用性。

A method and circuit of configurable pooling operator

【技术实现步骤摘要】
一种可配置池化算子的方法及电路
本专利技术属于人工智能
,涉及深度学习技术中的池化计算,特别涉及一种可配置池化算子的方法及电路。
技术介绍
近年来CNN网络(convolutionneuralnetwork,卷积神经网络)在计算机视觉领域中发挥着越来越重要的作用。但是随着深度学习技术的发展和应用场景日益多元化,CNN网络参数量变得越来越庞大,增加了将其移植到硬件上的难度。因此CNN网络加速计算已成为一项重要的研究内容。主流的CNN网络包含卷积层、批标准化层、激活层、池化层以及全连接层等,其中以乘加计算为主的卷积层和全连接层占据了网络大部分的计算量,因此目前加速计算的重点都在于设计专门的硬件结构来完成乘加计算,从而缩短卷积和全连接这两层的计算时间。CNN加速器主要采用将输入数据分块并存入片上缓存以及循环计算的方法,将数据复用和并行计算这两项技术结合起来共同提高CNN网络的计算效率。在这种设计思路的基础上,可以对加速器的性能进行进一步的优化。在图像研究领域,池化计算主要是通过在图像特征映射上划分尺寸为N*N的区块,对区块进行一定的操作,最终得到一个输出结果,从而达到缩小图像数据规模的作用。池化计算方式主要分为最大池化和平均池化两种。最大池化是取区块中的最大值作为输出,平均池化是对区块内所有数据取平均值作为输出结果。对图像进行平均池化操作能减少因邻域大小受限而造成的估计值方差增大的误差,同时更多地保留图像的背景信息;而另一方面,最大池化能减少因卷积层参数误差造成的估计均值的偏移,并更多地保留纹理信息。因此在进行卷积神经网络结构设计时,这两种池化方式往往交替使用。而平均池化中较为常见的一种应用是全局平均池化。用全局平均池化取代全连接层,不仅可以直接实现降维,更重要的是极大减少网络的参数量。CNN网络中的池化层能够不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上能够抑制过拟合。目前CNN网络加速计算的重点主要在于卷积计算,而将池化计算交由处理器来完成。但是随着卷积计算的时间不断被优化,池化计算在计算总时间内所占的比例越来越高。
技术实现思路
为了克服上述现有技术的缺点,本专利技术的目的在于提供一种可配置池化算子的方法及电路,通过设计专门用于完成池化计算的硬件结构,不仅可以省去使用处理器计算池化的时间,优化加速器的性能,而且具有良好的通用性,能够支持最大池化和平均池化两种计算类型以及支持不同的区块尺寸等,对于提升CNN加速器的整体性能具有十分重要的作用。为了实现上述目的,本专利技术采用的技术方案是:一种可配置池化算子的方法,设置池化缓存将数据从卷积计算的排列顺序转换为方便进行池化计算的顺序,设计并复用基本的池化计算模块以支持任意区块尺寸下的池化计算。具体地,可在池化计算之前设置一个片上的池化缓存,先按照卷积计算中的排列次序将数据存入池化缓存,然后再按照池化运算的顺序从池化缓存的相应位置依次取出数据进行计算,其中卷积计算的结果是按行或者列进行排列的,一次池化计算的数据来自跨越不同行列的区块。对于最大池化计算,根据实际的计算并行度部署相应数量的四输入的最大池化计算模块,每个最大池化计算模块包括三个两输入的比较器,其中最大池化计算模块的四个输入作为两个比较器的四个输入,两个比较器的两个输出作为第三个比较器的输入,完成四个输入中取最大值的操作,根据所述取出数据的顺序将数据送入各最大池化计算模块,完成多个区块的并行池化计算;所述最大池化计算中,比较器内部对两个有符号数进行比较的具体逻辑为先判断两个数符号位是否一致,若一致则直接比较后面的数字位的大小;若符号位不一致则取符号位为0的数作为输出结果;对于平均池化计算,根据实际的计算并行度部署相应数量的四输入的平均池化计算模块,每个平均池化计算模块包括三个两输入的加法器,其中平均池化计算模块的四个输入作为两个加法器的四个输入,两个加法器的两个输出作为第三个加法器的输入,完成四个输入的相加操作,第三个加法器的输出送入一个移位器,用右移两位来实现取平均数的操作。进一步地,所述平均池化计算中,通过复用所述平均池化计算模块若干次,并在第三个加法器的输出与移位器的输入之间设置累加器,从而实现全局平均池化,通过改变复用平均池化计算模块的次数,实现任意尺寸下的全局平均池化计算。进一步地,将若干块池化后的数据拼接成一块与池化前尺寸相同的数据再存入输出缓存,以保证网络每一层的输入分块数据尺寸均相同。进一步地,可以根据实际计算的需求,从池化前一计算模块输出的数据既存入输出缓存,又进入池化缓存进行池化计算,从而同时得到进行池化计算和非池化计算两种情况下的结果。进一步地,池化单元的控制器会控制将卷积计算结果按顺序存入池化缓存,然后输出一次池化计算区块中左上角位置的数据在池化缓存中的地址;在池化计算完成后进行数据拼接给出结果数据在输出缓存中的地址。本专利技术还提供了一种可配置池化算子的电路,包括:片上池化缓存,按照卷积计算中的排列次序存入数据,再按照池化运算的顺序取出相应位置的数据;池化计算模块,接收池化缓存输出的数据进行计算。所述池化计算模块包括最大池化计算模块和平均池化计算模块,其中:所述最大池化计算模块与池化区块数量相同,每个最大池化计算模块有四个输入,每个最大池化计算模块包括三个两输入的比较器,其中最大池化计算模块的四个输入作为两个比较器的四个输入,两个比较器的两个输出作为第三个比较器的输入,完成四个输入中取最大值的操作,根据所述取出数据的顺序将数据送入各最大池化计算模块,完成多个区块的并行池化计算;所述平均池化计算模块与池化区块数量相同,每个平均池化计算模块有四个输入,每个平均池化计算模块包括三个两输入的加法器,其中平均池化计算模块的四个输入作为两个加法器的四个输入,两个加法器的两个输出作为第三个加法器的输入,完成四个输入的相加操作,第三个加法器的输出送入一个移位器,用右移两位来实现取平均数的操作。进一步地,所述平均池化计算模块中,通过复用所述平均池化计算模块若干次,并在第三个加法器的输出与移位器的输入之间设置累加器,从而实现全局平均池化,通过改变复用平均池化计算模块的次数,实现任意尺寸下的全局平均池化计算。进一步地,本专利技术可配置池化算子的电路还包括:控制器,控制将卷积计算结果按顺序存入池化缓存,然后输出一次池化计算区块中左上角位置的数据在池化缓存中的地址,并在池化计算完成后又进行数据拼接,给出结果数据在输出缓存中的地址;还给出是否进行池化计算以及池化计算类型的信号。与现有技术相比,本专利技术的有益效果是:在CNN加速器中使用以上设计的池化计算模块,可以节省使用处理器进行池化计算的时间。在没有池化模块的情况下,要花费若干个时钟周期将完成卷积和激活操作的数据存入输出缓存中;而增加池化模块之后,将数据先存入池化缓存中,花费的时间与存入输出缓存是相同的。在加速器的流水线设计下,池化计算与原来直接存入输出缓存相比,几乎没有额外的时间本文档来自技高网
...

【技术保护点】
1.一种可配置池化算子的方法,其特征在于,设置池化缓存将数据从卷积计算的排列顺序转换为方便进行池化计算的顺序,设计并复用基本的池化计算模块以支持任意区块尺寸下的池化计算。/n

【技术特征摘要】
1.一种可配置池化算子的方法,其特征在于,设置池化缓存将数据从卷积计算的排列顺序转换为方便进行池化计算的顺序,设计并复用基本的池化计算模块以支持任意区块尺寸下的池化计算。


2.根据权利要求1所述可配置池化算子的方法,其特征在于,对于最大池化计算,根据实际的计算并行度部署相应数量的四输入的最大池化计算模块,每个最大池化计算模块包括三个两输入的比较器,其中最大池化计算模块的四个输入作为两个比较器的四个输入,两个比较器的两个输出作为第三个比较器的输入,完成四个输入中取最大值的操作,根据所述取出数据的顺序将数据送入各最大池化计算模块,完成多个区块的并行池化计算;
对于平均池化计算,根据实际的计算并行度部署相应数量的四输入的平均池化计算模块,每个平均池化计算模块包括三个两输入的加法器,其中平均池化计算模块的四个输入作为两个加法器的四个输入,两个加法器的两个输出作为第三个加法器的输入,完成四个输入的相加操作,第三个加法器的输出送入一个移位器,用右移两位来实现取平均数的操作。


3.根据权利要求2所述可配置池化算子的方法,其特征在于,所述最大池化计算中,比较器内部对两个有符号数进行比较的具体逻辑为先判断两个数符号位是否一致,若一致则直接比较后面的数字位的大小;若符号位不一致则取符号位为0的数作为输出结果;
所述平均池化计算中,通过复用所述平均池化计算模块若干次,并在第三个加法器的输出与移位器的输入之间设置累加器,从而实现全局平均池化,通过改变复用平均池化计算模块的次数,实现任意尺寸下的全局平均池化计算。


4.根据权利要求1或2所述可配置池化算子的方法,其特征在于,将若干块池化后的数据拼接成一块与池化前尺寸相同的数据再存入输出缓存,以保证网络每一层的输入分块数据尺寸均相同。


5.根据权利要求1所述可配置池化算子的方法,其特征在于,支持数据同时进行池化和非池化计算,从池化前一计算模块输出的数据既存入输出缓存,又进入池化缓存进行池化计算。


6.根据权利要求1所述可配置池化算子的方...

【专利技术属性】
技术研发人员:何虎张坤宁赵烁邓宁
申请(专利权)人:清华大学
类型:发明
国别省市:北京;11

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

1