技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种基于NNA1.0的5x5卷积的实现方法与流程  >  正文

一种基于NNA1.0的5x5卷积的实现方法与流程

  • 国知局
  • 2024-09-14 14:25:47

本发明属于神经网络处理,特别涉及一种基于nna1.0的5x5卷积的实现方法。

背景技术:

1、卷积神经网络在图像、视频、语音领域有着广泛的应用,随着神经网络越变越复杂,需要大量资源来训练和评估。卷积神经网络主要由输入层、卷积层、池化层和全连接层组成,其中卷积层是构成卷积神经网络的核心层,网络中绝大部分计算量由它产生,因此卷积神经网络的运行速度基本上取决于卷积层的运算速度。nna(neural networkaccelerator)是一种用于处理卷积计算的高性能低功耗的神经网络加速器,拥有自己的指令集,具有灵活的可编程特性,可适用于不同类型的神经网络。通过配置相关寄存器参数可以实现卷积核矩阵维度小于等于3x3的卷积计算加速,从而减少神经网络运行时间,在实际应用中实时性更高,用户体验更好。即nna1.0支持卷积核矩阵维度小于等于3x3的快速运算。

2、现有技术的主要缺陷在于:

3、由于nna寄存器参数范围限制,只能处理卷积核矩阵维度小于等于3x3的卷积计算,在实际应用中通用性不高。为了保证通用性,又能提高卷积运算速度,在不满足nna相关参数范围时,通过对输入图像和卷积核矩阵进行拆分、重组、累加来实现nna卷积加速。

4、卷积过程包含大量的乘累加计算,运算速度慢,在实际应用中不具备实时性,而nna1.0仅支持卷积核矩阵维度小于等于3x3的快速运算,当卷积核矩阵维度大于3x3时,无法通过nna1.0对卷积过程进行加速。

5、此外,现有技术中的常用术语包括:

6、1、神经网络:模仿生物神经网络结构和功能的数学模型,通过学习训练样本数据的内在规律,获得分析或者表达样本数据的能力,可应用于目标检测、场景分类、文字识别等多种应用领域。

7、2、深度学习:训练神经网络的过程和方法。

8、3、图像卷积:对于输入图像的每一个像素点,计算它的邻域像素和卷积核矩阵的对应元素的乘积后累加,作为该像素位置的值,通过不断滑动卷积核矩阵,得到最终卷积输出结果。

9、4、特征提取:使用计算机提取图像信息,决定每个像素点是否属于一个图像特征,结果是把图像上的点分为不同的子集,这些子集往往属于独立的点,连续的曲线或者连续的区域。

10、5、nna:神经网络加速器。

11、6、fram:nna内部存放输入图像数据的片上ram。

12、7、wram:nna内部存放卷积核数据的片上ram。

13、8、pixel:输入图像的最小单位。

14、9、pad:对输入图像进行边缘填充,分为pad_top,pad_bottom,pad_left,pad_right,表示图像上下左右边缘填充的size。

15、10、stride:卷积核矩阵滑动的步长,分为stride_x,stride_y,表示卷积核矩阵横向和纵向滑动的步长。

技术实现思路

1、为了解决上述问题,本技术的目的在于:提出一种基于nna1.0的快速计算5x5卷积的实现方法,提高5x5卷积的运算速度。

2、具体地,本发明提供一种基于nna1.0的5x5卷积的实现方法,所述方法,设输入图像大小为:输入图像高ih*输入图像宽iw*输入通道数ic,权重大小为:卷积核高kh*卷积核宽kw*输入通道数ic*输出通道数oc,输入图像边缘填充大小为pad_top、pad_bottom、pad_left、pad_right,卷积步长为stridex、stride_y,输出图像大小为:输出图像高oh*输出图像宽ow*输出通道数oc,其中oh和ow通过以下公式计算:

3、

4、

5、nna卷积过程:wram是nna专门用来存储权重数据的ram空间,fram是nna专门用来存储输入图像数据的ram空间,大小和空间地址固定,通过将权重数据写入wram,输入图像数据写入fram,通过配置nna寄存器设置卷积核大小、pad、stride、fram和wram的读地址参数,调用nna硬件指令nnmacg启动nna进行卷积计算,得到卷积结果输出;

6、所述方法包括以下步骤:

7、s1,对于5x5卷积,对卷积核矩阵进行拆分,按照拆分后的卷积核大小依次写入wram,将5行8个pixel的输入数据一次性写入fram:

8、s1.1,卷积核大小5x5,nna最大支持3x3的卷积核,卷积核kh和kw,其中kh和kw必须小于等于3,将5x5的卷积核拆分为3x3,3x2,2x3,2x2这4个卷积核:

9、

10、5x5卷积核数据排布;

11、拆分后,表示为:

12、

13、3x3卷积核数据排布;

14、

15、3x2卷积核数据排布;

16、

17、2x3卷积核数据排布;

18、

19、2x2卷积核数据排布;

20、s1.2,输入图像大小为64x64,不对输入图像进行边缘填充,即pad_top、pad_bottom、pad_left、pad_right都为0,卷积步长stride_x、stride_y都为1时,根据前面oh和ow的计算公式得到输出图像的大小为60x60;要通过nna得到1行4个pixel的输出数据,需要向fram写入5行8个pixel的输入数据:

21、

22、

23、输入数据排布,其中l表示行数,p表示pixel;

24、y=l1p1*k11+l1p2*k12+l1p3*k13+l1p4*k14+l1p5*k15

25、+l2p1*k21+l2p2*k22+l2p3*k23+l2p4*k24+l2p5*k25

26、+l3p1*k31+l3p2*k32+l3p3*k33+l3p4*k34+l3p5*k35

27、+l4p1*k41+l4p2*k42+l4p3*k43+l4p4*k44+l4p5*k45

28、+l5p1*k51+l5p2*k52+l5p3*k53+l5p4*k54+l5p5*k55

29、其中y表示5x5卷积输出;

30、s1.3,将5x5卷积核数据按照拆分后的卷积核大小依次写入wram,将5行8个pixel的输入数据一次性写入fram:获取输入数据每行的首地址,通过硬件load指令从每行的首地址处加载8个pixel的输入数据,按行依次写入fram,所述fram是nna专门用来存储输入图像数据的ram空间;

31、s2,通过nna硬件寄存器设置卷积核大小kh*kw、pad、stride参数,所述pad、stride是卷积参数,通过nna硬件寄存器正确配置这些参数,才能得到正确的卷积结果,再启动nna进行卷积计算:

32、

33、其中

34、

35、

36、

37、其中y是5x5卷积输出,lipj是输入数据,kij是权重数据,kh是卷积核高,kw是卷积核宽;

38、s3,最后得到1行4个pixel的5x5卷积输出结果:

39、y=y1+y2+y3+y4。

40、所述步骤s2进一步包括:

41、(1)通过配置nna寄存器设置卷积核大小为3x3,设置wram和fram的读地址,其中wram和fram的读地址通过nna硬件寄存器设置,启动nna计算3x3卷积结果y1:

42、输入数据:

43、

44、3x3卷积核数据:

45、

46、

47、(2)通过配置nna寄存器设置卷积核大小为3x2,设置wram和fram的读地址,其中wram和fram的读地址通过nna硬件寄存器设置,启动nna计算3x2卷积结果y2:

48、输入数据:

49、

50、3x2卷积核数据:

51、

52、

53、(3)通过配置nna寄存器设置卷积核大小为2x3,设置wram和fram的读地址,其中wram和fram的读地址通过nna硬件寄存器设置,启动nna计算2x3卷积结果y3:

54、输入数据:

55、

56、

57、2x3卷积核数据:

58、

59、

60、(4)通过配置nna寄存器设置卷积核大小为2x2,设置wram和fram的读地址,其中wram和fram的读地址通过nna硬件寄存器设置,启动nna计算2x2卷积结果y4:

61、输入数据:

62、

63、2x2卷积核数据:

64、

65、

66、所述步骤s2,启动nna进行卷积计算,得到卷积结果输出,一次得到1行4个pixel的输出数据,进一步包括:

67、每次需要向fram写入的pixel数目为fp_h*fp_w:

68、fp_h=kh

69、fp_w=3*stride_x+kw,其中fp_w需要对齐到4。

70、所述方法中,假设:卷积核大小为3x3,输入图像大小为64x64,不对输入图像进行边缘填充,即pad_top、pad_bottom、pad_left、pad_right都为0,卷积步长stride_x、stride_y都为1时,输出图像的大小为62x62;要通过nna得到1行4个pixel的输出数据,需要向fram写入3行8个pixel的输入数据:

71、

72、输入数据排布,其中,l表示行数,p表示pixel;

73、

74、3x3卷积核数据排布;

75、通过配置nna寄存器设置卷积核大小为3x3,设置wram和fram的读地址,启动nna计算3x3卷积,得到1行4个pixel的3x3卷积输出结果。

76、由此,本技术的优势在于:

77、1.卷积核拆分:对于5x5卷积,卷积核大小超出了nna寄存器参数范围,通过卷积核拆分实现nna卷积加速。

78、2.nna寄存器配置:使用nna进行卷积加速必须正确配置nna相关寄存器,卷积的步长,卷积核大小等参数都通过nna寄存器进行配置,使得这些参数都在nna支持的参数范围内,以便得到正确的卷积结果。

本文地址:https://www.jishuxx.com/zhuanli/20240914/294013.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。