用于神经网络的运算装置、电路及相关方法制造方法及图纸

技术编号:19397127 阅读:25 留言:0更新日期:2018-11-10 05:08
提供一种用于神经网络的运算装置、电路及相关方法,该运算装置包括:第一处理单元,用于根据计算窗口的大小对k1个输入特征数据进行第一运算操作,获得中间结果,该计算窗口的大小为k1×k2,k1与k2均为正整数;第二处理单元,用于根据该计算窗口的大小对该第一处理单元输出的k2个中间结果进行第二运算操作,获得计算结果。该运算装置可以有效节省缓存空间,从而节省硬件资源,同时可以减小数据处理的时延。

【技术实现步骤摘要】
【国外来华专利技术】用于神经网络的运算装置、电路及相关方法
本申请涉及神经网络领域,并且更为具体地,涉及一种用于神经网络的运算装置、电路及相关方法。
技术介绍
卷积神经网络由多个层叠加在一起形成,上一层的结果为输出特征图(outputfeaturemaps,OFMs),作为下一层的输入特征图。通常中间层的输出特征图的通道非常多,图像也比较大。卷积神经网络的硬件加速器在处理特征图数据时,由于片上系统缓存大小和带宽的限制,通常将一张输出特征图分割成多个特征图片段(featuremapsegment),依次输出每个特征图片段,并且每个特征图片段按列并行输出。例如,一个完整的输出特征图被分割成3个特征图片段,每个特征图片段按列依次输出。目前,在图像处理过程中,通常使用线缓冲器(linebuffer)来实现卷积层运算或池化层运算的数据输入。线缓冲器的结构要求输入数据按照行(或列)优先以光栅化的顺序输入。以池化窗口的高度为k,输入特征矩阵的宽度为W为例,则线缓冲器需要缓存的深度k*W,即线缓冲器必须缓存大小为k*W的输入数据后,才可以进行数据运算,这样会增大数据处理的时延。上述可知,现有的图像处理方案需要的缓存空间较大,同时数据处理的时延也较大。
技术实现思路
本申请提供一种用于神经网络的运算装置、电路及相关方法,可以有效节省缓存空间,同时可以减小数据处理的时延。第一方面,提供一种用于神经网络的运算装置,所述运算装置包括:第一处理单元,用于根据计算窗口的大小对k1个输入特征数据进行第一运算操作,获得中间结果,所述计算窗口的大小为k1×k2,k1与k2均为正整数;第二处理单元,用于根据所述计算窗口的大小对所述第一处理单元输出的k2个中间结果进行第二运算操作,获得计算结果。在本申请提供的技术方案中,通过将神经网络的窗口操作分解为列操作与行操作,使得只要接收到一行或一列输入数据,就可以开始计算,换句话说,可以按行或按列缓存输入特征矩阵,并且可以同时进行运算,无需像现有技术中必须先缓存够一定数量的二维输入数据之后,才可以进行计算,因此,可以有效减小数据处理的时延,有效提高神经网络的数据处理效率,同时也可以节省存储资源,从而节省硬件资源。结合第一方面,在第一方面的一种可能的实现方式中,所述运算装置包括M个所述第一处理单元与M个所述第二处理单元,且所述M个第一处理单元与所述M个第二处理单元一一对应,M为大于1的正整数;所述运算装置还包括:预处理单元,用于按列接收输入特征矩阵,并根据所述计算窗口对接收的列输入特征值进行处理,得到M组数据,其中,每组数据包括k1个输入特征值,所述预处理单元还用于将所述M组数据一对一地输入到所述M个第一处理单元中。在本申请提供的技术方案中,可以实现图像数据的并行处理,从而有效提高数据处理的效率。第二方面,提供一种用于处理神经网络的电路,所述电路包括:第一处理电路,用于根据计算窗口的大小对k1个输入特征数据进行第一运算操作,获得中间结果,所述计算窗口的大小为k1×k2,k1与k2均为正整数;第二处理电路,用于根据所述计算窗口的大小对所述第一处理电路输出的k2个中间结果进行第二运算操作,获得计算结果。在本申请提供的技术方案中,通过将神经网络的窗口操作分解为列操作与行操作,使得只要接收到一行或一列输入数据,就可以开始计算,换句话说,可以按行或按列缓存输入特征矩阵,并且可以同时进行运算,无需像现有技术中必须先缓存够一定数量的二维输入数据之后,才可以进行计算,因此,可以有效减小数据处理的时延,有效提高神经网络的数据处理效率,同时也可以节省存储资源,从而节省硬件资源。结合第二方面,在第二方面的一种可能的实现方式中,所述电路包括M个所述第一处理电路与M个所述第二处理电路,且所述M个第一处理电路与所述M个第二处理电路一一对应,M为大于1的正整数;所述电路还包括:预处理电路,用于按列接收输入特征矩阵,并根据所述计算窗口对接收的列输入特征值进行处理,得到M组数据,其中,每组数据包括k1个输入特征值,所述预处理电路还用于将所述M组数据一对一地输入到所述M个第一处理电路中。在本申请提供的技术方案中,可以实现图像数据的并行处理,从而有效提高数据处理的效率。第三方面,提供一种用于处理神经网络的方法,所述方法包括:根据计算窗口的大小,对k1个输入特征数据进行第一运算操作,获得中间结果,所述计算窗口的大小为k1×k2,k1与k2均为正整数;根据所述计算窗口的大小,对所述第一运算操作获得的k2个中间结果进行第二运算操作,获得计算结果。在本申请提供的技术方案中,通过将神经网络的窗口操作分解为列操作与行操作,使得只要接收到一行或一列输入数据,就可以开始计算,换句话说,可以按行或按列缓存输入特征矩阵,并且可以同时进行运算,无需像现有技术中必须先缓存够一定数量的二维输入数据之后,才可以进行计算,因此,可以有效减小数据处理的时延,有效提高神经网络的数据处理效率,同时也可以节省存储资源,从而节省硬件资源。结合第三方面,在第三方面的一种可能的实现方式中,所述方法还包括:按列接收输入特征矩阵,并根据所述计算窗口对接收的列输入特征值进行处理,得到M组数据,其中,每组数据包括k1个输入特征值;所述根据计算窗口的大小,对k1个输入特征数据进行第一运算操作,获得中间结果,包括:根据计算窗口的大小,分别对所述M组数据进行所述第一运算操作,获得对应的中间结果;所述根据所述计算窗口的大小,对所述第一运算操作获得的k2个中间结果进行第二运算操作,获得计算结果,包括:分别针对所述M组数据中的每一组数据对应的第一运算操作,每获得k2个中间结果,进行所述第二运算操作,获得对应的计算结果。在本申请提供的技术方案中,可以实现图像数据的并行处理,从而有效提高数据处理的效率。第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被计算机执行时用于实现:根据计算窗口的大小,对k1个输入特征数据进行第一运算操作,获得中间结果,所述计算窗口的大小为k1×k2,k1与k2均为正整数;根据所述计算窗口的大小,对所述第一运算操作获得的k2个中间结果进行第二运算操作,获得计算结果。结合第四方面,在第四方面的一种可能的实现方式中,所述计算机程序被计算机执行时还用于实现:按列接收输入特征矩阵,并根据所述计算窗口对接收的列输入特征值进行处理,得到M组数据,其中,每组数据包括k1个输入特征值;所述计算机程序被计算机执行时用于实现:根据计算窗口的大小,对k1个输入特征数据进行第一运算操作,获得中间结果,包括:所述计算机程序被计算机执行时用于实现:根据计算窗口的大小,分别对所述M组数据进行所述第一运算操作,获得对应的中间结果;所述计算机程序被计算机执行时用于实现:根据所述计算窗口的大小,对所述第一运算操作获得的k2个中间结果进行第二运算操作,获得计算结果,包括:所述计算机程序被计算机执行时用于实现:分别针对所述M组数据中的每一组数据对应的第一运算操作,每获得k2个中间结果,进行所述第二运算操作,获得对应的计算结果。在本申请提供的技术方案中,可以实现图像数据的并行处理,从而有效提高数据处理的效率。综上所述,在本申请提供的技术方案中,通过将神经网络的窗口操作分解为列操作与行操作,使得只要接收到一本文档来自技高网...

【技术保护点】
1.一种用于神经网络的运算装置,其特征在于,包括:第一处理单元,用于根据计算窗口的大小对k1个输入特征数据进行第一运算操作,获得中间结果,所述计算窗口的大小为k1×k2,k1与k2均为正整数;第二处理单元,用于根据所述计算窗口的大小对所述第一处理单元输出的k2个中间结果进行第二运算操作,获得计算结果。

【技术特征摘要】
【国外来华专利技术】1.一种用于神经网络的运算装置,其特征在于,包括:第一处理单元,用于根据计算窗口的大小对k1个输入特征数据进行第一运算操作,获得中间结果,所述计算窗口的大小为k1×k2,k1与k2均为正整数;第二处理单元,用于根据所述计算窗口的大小对所述第一处理单元输出的k2个中间结果进行第二运算操作,获得计算结果。2.根据权利要求1所述的运算装置,其特征在于,所述运算装置包括M个所述第一处理单元与M个所述第二处理单元,且所述M个第一处理单元与所述M个第二处理单元一一对应,M为大于1的正整数;所述运算装置还包括:预处理单元,用于按列接收输入特征矩阵,并根据所述计算窗口对接收的列输入特征值进行处理,得到M组数据,其中,每组数据包括k1个输入特征值,所述预处理单元还用于将所述M组数据一对一地输入到所述M个第一处理单元中。3.根据权利要求2所述的运算装置,其特征在于,M的数值与所述输入特征矩阵的大小以及所述计算窗口的大小有关。4.根据权利要求2或3所述的运算装置,其特征在于,所述M组数据包括所述列输入特征值中的所有数据。5.根据权利要求2或3所述的运算装置,其特征在于,所述M组数据为所述列输入特征值中的部分数据;所述预处理单元还包括缓冲器;所述预处理单元还用于,将所述列输入特征值中除所述M组数据之外的剩余数据存入所述缓冲器。6.根据权利要求1至5中任一项所述的运算装置,其特征在于,所述计算窗口为卷积窗口,所述第一运算操作的运算方式为乘累加运算,所述第二运算操作的运算方式为累加运算。7.根据权利要求1至5中任一项所述的运算装置,其特征在于,所述计算窗口为池化窗口,所述第一运算操作的运算方式为求最大值或求平均值,所述第二运算操作的运算方式与所述第一运算操作的运算方式相同。8.根据权利要求2至5中任一项所述的运算装置,其特征在于,所述输入特征矩阵表示待处理图像中的一个特征图片段;所述预处理单元具体用于,依次接收所述待处理图像的各个特征图片段。9.一种用于处理神经网络的电路,其特征在于,包括:第一处理电路,用于根据计算窗口的大小对k1个输入特征数据进行第一运算操作,获得中间结果,所述计算窗口的大小为k1×k2,k1与k2均为正整数;第二处理电路,用于根据所述计算窗口的大小对所述第一处理电路输出的k2个中间结果进行第二运算操作,获得计算结果。10.根据权利要求9所述的电路,其特征在于,所述电路包括M个所述第一处理电路与M个所述第二处理电路,且所述M个第一处理电路与所述M个第二处理电路一一对应,M为大于1的正整数;所述电路还包括:预处理电路,用于按列接收输入特征矩阵,并根据所述计算窗口对接收的列输入特征值进行处理,得到M组数据,其中,每组数据包括k1个输入特征值,所述预处理电路还用于将所述M组数据一对一地输入到所述M个第一处理电路中。11.根据权利要求10所述的电路,其特征在于,M的数值与所述输入特征矩阵的大小以及所述计算窗口的大小有关。12.根据权利要求10或11所述的电路,其特征在于,所述M组数据包括所述列输入特征值中的所有数据。13.根据权利要求10或11所述的电路,其特征在于,所述M组数据为所述列输入特征值中的部分数据;所述预处理电路中还包括缓冲器,所述预处理电路还用于,将所述列输入特征值中除所述M组数据之外的剩余数据存入所述缓冲器。14.根据权利要求9至13中任一项所述的电路,其特征在于,所述计算窗口为卷积窗口,所述第一运算操作的运算方式为乘累加运算,所述第二运算操作的运算方式为累加运算。15.根据权利要求9至13中任一项所述的电路,其特征在于,所述计算窗口为池化窗口,所述第一运算操作的运算方式为求最大值或求平均值,所述第二运算操作的运算方式与所述第一运算操作的运算方式相同。16.根据权利要求10所述的电路,其特征在于,所述输入特征矩阵表示待处理图像中的一个特征图片段;所述预处理电路具体用于,依次接收所述待处理图像的各个特征图片段。17.一种用于处理神经网络的方法,其特征在于,包括:根据计算窗口的大小,对k1个输入特征数据进行第一运算操作,获得中间结果,所述计算窗口的大小为k1×k2,k1与k2均为正整数;根据所述计算窗口的大小,对所述第一运算操作获得的k2个中间结果进行第二运算操作,获得计算结果。18.根据权利要求17所述的方法,其特征在于,所述...

【专利技术属性】
技术研发人员:谷骞高明明李涛
申请(专利权)人:深圳市大疆创新科技有限公司
类型:发明
国别省市:广东,44

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

1