一种资源灵活配置的FPGA实现CNN的方法与流程
未命名
08-07
阅读:75
评论:0

一种资源灵活配置的fpga实现cnn的方法
技术领域
1.本发明涉及神经网络模型技术领域,更具体地说,它涉及一种资源灵活配置的fpga实现cnn的方法。
背景技术:
2.对于一些立体结构较为简单且以叶面为主体的植物可以采用神经网络模型来进行虫害程度的评价,存在的障碍是一般的神经网络的训练需要大量标注了害虫数量的训练样本,另一方面对于样本中的害虫数量的人为统计耗时较长,另一方面害虫是活动的动态,统计的时间跨度会导致统计结果的失真,因此无法获得充分的训练样本对神经网络进行训练,导致神经网络输出的害虫数量的结果准确度较差。
技术实现要素:
3.本发明提供一种资源灵活配置的fpga实现cnn的方法,解决相关技术中一般的计算害虫数量的神经网络的训练需要大量标注了害虫数量的训练样本的技术问题。
4.本发明提供了一种资源灵活配置的fpga实现的cnn神经网络,包括:h个依次串联的卷积层,其中第一个卷积层输入单元图像,多个单元图像依次输入;最后一个卷积层输出的特征图进行线性变换生成第一特征向量;生成原始顶点图,原始顶点图的一个顶点对应一个单元图像;为每个顶点生成顶点网络图,为顶点网络图的顶点进行矢量化获得顶点矢量;a个第一隐藏层,第一隐藏层输入顶点网络图的顶点的第一特征向量和顶点矢量;第h个第一隐藏层包括c个通道,顶点网络图的第h层的顶点进行随机抽样生成大小一致的随机子集,第i个随机子集和顶点网络图中心的顶点的第一特征向量和顶点矢量输入第i个通道,计算包括:,表示第h个第一隐藏层的第i个传播向量,和分别表示第h个第一隐藏层的权值参数和偏置参数,表示激活函数,表示顶点v在顶点网络图第h层的第i个传播信息,顶点v表示顶点网络图中心的顶点;,其中表示中的第i个随机子集,表示顶点网络图第h层与顶点v连接的顶点集合,顶点e属于,表示顶点v对应的第一特征向量与顶点e对应的第一特征向量的注意力参数;表示顶点e的顶点矢量。
5.第二隐藏层,第一隐藏层的输出预处理之后输入第二隐藏层;第二隐藏层的计算包括:
6.其中,表示顶点v的图编码向量,表示第y个簇中心的向量,由第一隐藏层的输出预处理得到,表示簇中心的数量,和分别表示第二隐藏层的权值参数和偏置参数,表示激活函数,表示顶点v对应的顶点矢量;结果输出层,其输入顶点的图编码向量,寻找图编码向量的局部极大值,局部极大值的数量即为该顶点对应的单元图像对应的区域的害虫数量;训练时第二隐藏层连接全连接层,全连接层用于输入顶点的图编码向量,输出映射到分类空间,分类空间的分类标签表示虫害程度。
7.进一步地,在植物图像上相邻的单元图像对应的顶点存在连接边。
8.进一步地,顶点v对应的第一特征向量与顶点e对应的第一特征向量的注意力参数的计算公式如下:,,表示原始注意力参数,表示e在顶点v的顶点网络图中所属的随机子集,表示以自然常数为底的指数函数,和分别表示顶点v和顶点e对应的第一特征向量,表示伸缩系数。
9.进一步地,第一隐藏层的输出的预处理包括:将第一个第一隐藏层输出的c个传播向量作为聚类中心,对其他第一隐藏层输出的传播向量进行聚类生成c个簇,每个簇计算簇中心的向量。
10.进一步地,在原始顶点图上进行随机游走为每个顶点生成顶点网络图,顶点网络图的层数与随机游走的层数相同。
11.进一步地,随机游走为每个顶点生成顶点网络图的方法包括:步骤201,选择顶点,以选择的顶点为中心开始进行随机游走,直至游走的层数达到a;a为第一隐藏层的数量;步骤202,将游走的顶点序列加入顶点网络图内,如果游走的次数小于b,则对游走的次数累加一次之后返回步骤201,否则结束步骤。
12.进一步地,分类空间的分类标签分别表示无虫害、一般虫害和严重虫害。
13.进一步地,单元图像由植物图像均匀分割产生。
14.本发明提供了一种资源灵活配置的fpga实现cnn的方法,其用于进行上述的一种资源灵活配置的fpga实现的cnn神经网络的卷积层的卷积运算,包括以下步骤:步骤101,输入卷积层之前首先选择串并结合配置,串并结合配置包括k值;
步骤102,生成串行步数,串行步数等于「n/k」,其中n为前一层特征图的个数n,当前卷积层的个数为n*m,下一层的征图个数为m;步骤103,k-1卷积计算结构并行计算前一层的k个特征图,按「n/k」步通过串行合并结构串行将k-1的卷积计算结构进行合并获得下一层该特征图的最终结果,完成了上一层总共n个输入特征图的卷积计算。
15.进一步地,k-1卷积计算结构执行k个卷积核与对应特征图的卷积计算,并对应点求和获得该1个特征图中的值,这k个特征图与k个卷积核的卷积运算是并行执行的,每个时钟对输出的k个卷积值求和;串行合并结构是将每次k-1卷积计算结构输出的结果进行累加,每完成k-1卷积计算后,更改k个输入特征图继续计算,经「n/k」次后,完成了上一层总共n个输入特征图的卷积计算,对该累加值加偏置,并经过激活函数f运算获得该特征图的最终结果。
16.本发明的有益效果在于:本发明的神经网络模型的训练样本的标注的耗时短,而且对多个单元图像进行综合的信息传播来生成对应单元图像的编码向量,利用训练时神经网络对于害虫所对应的特征的关注在向量上的体现来间接输出害虫的数量结果,保证准确率的同时降低了工作量,同时结合资源灵活配置的fpga针对于卷积层进行高效的卷积处理运算,保证了神经网络模型运行的速度。
附图说明
17.图1是本发明的一种资源灵活配置的fpga实现cnn的方法的流程图;图2是本发明的随机游走为每个顶点生成顶点网络图的方法的流程图。
具体实施方式
18.现在将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,可以在不脱离本说明书内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其他例子中也可以进行组合。
19.一种资源灵活配置的fpga实现的cnn神经网络,包括:h个卷积层,其中第一个卷积层输入单元图像,多个单元图像依次输入;h个卷积层依次串联,最后一个卷积层输出的特征图定义为最终特征图,每个单元图像对应一个最终特征图;第一线性层,其输入最终特征图对其进行线性变换生成第一特征向量;生成原始顶点图,原始顶点图的一个顶点对应一个单元图像,在植物图像上相邻的单元图像对应的顶点存在连接边;在原始顶点图上进行随机游走为每个顶点生成顶点网络图,随机游走的起点即为顶点网络图的中心的顶点,顶点网络图的层数与随机游走的层数相同,为顶点网络图的顶点进行矢量化获得顶点矢量;a个并联的第一隐藏层,第一隐藏层输入顶点网络图的顶点的第一特征向量和顶点矢量;
第h个第一隐藏层包括c个通道,顶点网络图的第h层的顶点进行随机抽样生成大小一致的随机子集,第i个随机子集和顶点网络图中心的顶点的第一特征向量和顶点矢量输入第i个通道(各通道共享权值参数和偏置参数),计算包括:
20.表示第h个第一隐藏层的第i个传播向量,和分别表示第h个第一隐藏层的权值参数和偏置参数,表示激活函数,表示顶点v(顶点网络图中心的顶点)在顶点网络图第h层的第i个传播信息;
21.其中表示中的第i个随机子集,表示顶点网络图第h层与顶点v连接的顶点集合,表示顶点v对应的第一特征向量与顶点e对应的第一特征向量的注意力参数;表示顶点e的顶点矢量。
[0022][0023][0024]
表示原始注意力参数,表示e在顶点v的顶点网络图中所属的随机子集,表示以自然常数为底的指数函数,和分别表示顶点v和顶点e对应的第一特征向量,表示伸缩系数,可调参数,默认为0.2。
[0025]
第二隐藏层,第一隐藏层的输出预处理之后输入第二隐藏层,预处理包括:将第一个第一隐藏层输出的c个传播向量作为聚类中心,对其他第一隐藏层输出的传播向量进行聚类生成c个簇,每个簇计算簇中心的向量;第二隐藏层的计算包括:
[0026]
其中,表示顶点v的图编码向量,表示第y个簇中心的向量,表示簇中心的数量,和分别表示第二隐藏层的权值参数和偏置参数,表示激活函数,表示顶点v对应的顶点矢量;结果输出层,其输入顶点的图编码向量,寻找图编码向量的局部极大值,局部极大值的数量即为该顶点对应的单元图像对应的区域的害虫数量。
[0027]
在本发明的一个实施例中,上述的一种资源灵活配置的fpga实现的cnn神经网络在训练时第二隐藏层连接全连接层,全连接层用于输入顶点的图编码向量,输出映射到分类空间,分类空间的分类标签分别表示无虫害、一般虫害和严重虫害。具体的,顶点溯源对应一个单元图像,分类标签实际上表征的是单元图像对应的区域的虫害程度,对于训练集来说,该类别标签可以通过人工结合经验查看图片来进行标注,不需要具体的获得单元图像内的害虫数量等信息。
[0028]
结果输出层应用的寻找局部极大值的算法为常规手段,结果输出层可以在其他部分训练完成之后再进行连接。
[0029]
在本发明的一个实施例中,将图编码向量的每个向量分量映射到二维坐标系内,对于一个向量分量其分量值对应于y轴坐标,其顺序需要对应于x轴坐标,拟合曲线后寻找曲线峰值作为局部极大值。
[0030]
在本发明的一个实施例中,顶点的图编码向量的维数与最终特征图的矩阵的元素数相同,将图编码向量等长截取依次拼接组成中间矩阵,中间矩阵与最终特征图的矩阵的大小一致,寻找中间矩阵的局部极大值作为图编码向量的局部极大值。
[0031]
如图2所示,在本发明的一个实施例中,随机游走为每个顶点生成顶点网络图的方法包括:步骤201,选择顶点,以选择的顶点为中心开始进行随机游走,直至游走的层数达到a;a为第一隐藏层的数量;步骤202,将游走的顶点序列加入顶点网络图内,如果游走的次数小于b,则对游走的次数累加一次之后返回步骤201,否则结束步骤;顶点序列生成onehot编码,输入连续词袋模型,输出顶点的矢量化表示,记为顶点矢量。
[0032]
在本发明的一个实施例中,单元图像由植物图像均匀分割产生。
[0033]
在本发明的一个实施例中,植物图像为植物种植地的俯视图像,植物为烟草等,植物图像为rgb图像,因此每个单元图像同样也是rgb图像,分别生成三个通道的图像特征输入。
[0034]
在本发明的一个实施例中,与一般的卷积相同,卷积层之间设有池化层。
[0035]
在本发明的一个实施例中,激活函数选择sigmod激活函数。
[0036]
在本发明的一个实施例中,生成原始顶点图、为每个顶点生成顶点网络图、为顶点网络图的顶点进行矢量化获得顶点矢量在一种资源灵活配置的fpga实现的cnn神经网络的外部进行。
[0037]
如图1所示,一种资源灵活配置的fpga实现cnn的方法,包括以下步骤:步骤101,输入卷积层之前首先选择串并结合配置,串并结合配置包括k值;1≤k≤n,k值的大小决定了并行运算的资源开销多少,当fpga的资源较少时,可以将k值设为较小的值。
[0038]
步骤102,生成串行步数,串行步数等于「n/k」,其中n为前一层特征图的个数n,当前卷积层的个数为n*m,下一层的征图个数为m;步骤103,k-1卷积计算结构并行计算前一层的k个特征图,按「n/k」步通过串行合并结构串行将k-1的卷积计算结构进行合并获得下一层该特征图的最终结果,完成了上一层总共n个输入特征图的卷积计算。其中「」代表取上整值;k-1卷积计算结构是并行计算前一层为k个特征图,计算获得下一层为1个特征图的卷积计算架构,执行k个卷积核与对应特征图的卷积计算,并对应点求和获得该1个特征图中的值,这k个特征图与k个卷积核的卷积运算是并行执行的,每个时钟对输出的k个卷积值求和;串行合并结构是将每次k-1卷积计算结构输出的结果进行累加,每完成k-1卷积计算后,更改k个输入特征图继续计算,经「n/k」次后,完成了上一层总共n个输入特征图的卷积计算,对该累加值加偏置,并经过激活函数f(如sigmoid)运算获得该特征图的最终结果。
[0039]
第一层卷积层输入的特征图即是单元图像。
[0040]
对每次计算的特征图信息进行片外缓存或者片内存储,当特征图个数多,特征维度大时,存储资源占用大,需完成1个特征图计算后进行片外缓存,反之则可直接进行片内存储,减少传输时间和最终的运算时延。
[0041]
激活函数、池化、全连接等计算按照正常的方式运算,本发明的方法重点对最核心、最耗资源、最影响性能的层间卷积运算进行优化。
[0042]
第l-1层的特征图为n个,第l层的特征图为m个,该层卷积核的个数为n*m个。第l层的每个输出特征图均需由第l-1个所有特征图与对应卷积核卷积之后求和,加偏置,取激励函数后获得。计算公式如下:
[0043]
其中代表第l层的第j个特征图信息,代表第l-1层的第i个特征图信息,代表第i号输入和j号输出的卷积核,代表卷积,代表第l层的第j个输出特征图的偏置,f代表激活函数。为便于后续讲述,假设n=4,m=3,该层卷积核的个数为12个,每个卷积核尺寸为3x3;按照本发明的串并结构,先执行k-1的卷积计算结构,取k个第l-1层的输入特征,
与k个卷积核进行卷积后相加,获得第l层1个输出特征图的临时值,其中1≤k≤n,假设k为2。
[0044]
对应l-1和l层之间的卷积运算,先取l-1层的第1个特征图信息和第2个特征图信息执行k-1的卷积计算结构,获得第l层的第一个临时特征图进行片内缓存;然后再取l-1层的第3个特征图信息和第3个特征图信息执行k-1的卷积计算结构,获得第l层的第二个临时特征图,将和进行累加后,然后再进行加偏置,激活函数f运算,即获得了的l层第一个输出特征图的结果。
[0045]
k值的大小决定了并行运算的资源开销多少,当fpga的资源较少时,可以将k值设为较小的值,直至k=1,执行完全的串行运算,此时l-1层的n个特征图和l层的m个特征图,就需要执行n*m次才能完成所有的该层的卷积运算;当fpga的资源比较多时,可以将k值设为较大的值,直至n,此时l-1层的n个特征图和l层的m个特征图计算就需要执行m次即可完成,提高了运算的时效性。
[0046]
对于本发明的一种资源灵活配置的fpga实现的cnn神经网络,由于其输入的是单独的单元图像,卷积的运算次数会随着单元图像数量的增加而倍增,因此采用上述的方法来进行卷积,能够提高整个神经网络的运行效率。
[0047]
上面对本实施例的实施例进行了描述,但是本实施例并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本实施例的启示下,还可做出很多形式,均属于本实施例的保护之内。
技术特征:
1.一种资源灵活配置的fpga实现的cnn神经网络,其特征在于,包括:h个依次串联的卷积层,其中第一个卷积层输入单元图像,多个单元图像依次输入;最后一个卷积层输出的特征图进行线性变换生成第一特征向量;生成原始顶点图,原始顶点图的一个顶点对应一个单元图像;为每个顶点生成顶点网络图,为顶点网络图的顶点进行矢量化获得顶点矢量;a个第一隐藏层,第一隐藏层输入顶点网络图的顶点的第一特征向量和顶点矢量;第h个第一隐藏层包括c个通道,顶点网络图的第h层的顶点进行随机抽样生成大小一致的随机子集,第i个随机子集和顶点网络图中心的顶点的第一特征向量和顶点矢量输入第i个通道,计算包括:,表示第h个第一隐藏层的第i个传播向量,和分别表示第h个第一隐藏层的权值参数和偏置参数,表示激活函数,表示顶点v在顶点网络图第h层的第i个传播信息,顶点v表示顶点网络图中心的顶点;,其中表示中的第i个随机子集,表示顶点网络图第h层与顶点v连接的顶点集合,顶点e属于,表示顶点v对应的第一特征向量与顶点e对应的第一特征向量的注意力参数;表示顶点e的顶点矢量;第二隐藏层,第一隐藏层的输出预处理之后输入第二隐藏层;第二隐藏层的计算包括:,其中,表示顶点v的图编码向量,表示第y个簇中心的向量,由第一隐藏层的输出预处理得到,表示簇中心的数量,和分别表示第二隐藏层的权值参数和偏置参数,表示激活函数,表示顶点v对应的顶点矢量;结果输出层,其输入顶点的图编码向量,寻找图编码向量的局部极大值,局部极大值的数量即为该顶点对应的单元图像对应的区域的害虫数量;训练时第二隐藏层连接全连接层,全连接层用于输入顶点的图编码向量,输出映射到分类空间,分类空间的分类标签表示虫害程度。2.根据权利要求1所述的一种资源灵活配置的fpga实现的cnn神经网络,其特征在于,在植物图像上相邻的单元图像对应的顶点存在连接边。3.根据权利要求1所述的一种资源灵活配置的fpga实现的cnn神经网络,其特征在于,顶点v对应的第一特征向量与顶点e对应的第一特征向量的注意力参数的计算公式如下:
,,表示原始注意力参数,表示e在顶点v的顶点网络图中所属的随机子集,表示以自然常数为底的指数函数,和分别表示顶点v和顶点e对应的第一特征向量,表示伸缩系数。4.根据权利要求1所述的一种资源灵活配置的fpga实现的cnn神经网络,其特征在于,第一隐藏层的输出的预处理包括:将第一个第一隐藏层输出的c个传播向量作为聚类中心,对其他第一隐藏层输出的传播向量进行聚类生成c个簇,每个簇计算簇中心的向量。5.根据权利要求1所述的一种资源灵活配置的fpga实现的cnn神经网络,其特征在于,在原始顶点图上进行随机游走为每个顶点生成顶点网络图,顶点网络图的层数与随机游走的层数相同。6.根据权利要求5所述的一种资源灵活配置的fpga实现的cnn神经网络,其特征在于,随机游走为每个顶点生成顶点网络图的方法包括:步骤201,选择顶点,以选择的顶点为中心开始进行随机游走,直至游走的层数达到a;a为第一隐藏层的数量;步骤202,将游走的顶点序列加入顶点网络图内,如果游走的次数小于b,则对游走的次数累加一次之后返回步骤201,否则结束步骤。7.根据权利要求1所述的一种资源灵活配置的fpga实现的cnn神经网络,其特征在于,分类空间的分类标签分别表示无虫害、一般虫害和严重虫害。8.根据权利要求1所述的一种资源灵活配置的fpga实现的cnn神经网络,其特征在于,单元图像由植物图像均匀分割产生。9.一种资源灵活配置的fpga实现cnn的方法,其特征在于,其用于进行如权利要求1-8任一所述的一种资源灵活配置的fpga实现的cnn神经网络的卷积层的卷积运算,包括以下步骤:步骤101,输入卷积层之前首先选择串并结合配置,串并结合配置包括k值;步骤102,生成串行步数,串行步数等于「n/k」,其中n为前一层特征图的个数n,当前卷积层的个数为n*m,下一层的征图个数为m;步骤103,k-1卷积计算结构并行计算前一层的k个特征图,按「n/k」步通过串行合并结构串行将k-1的卷积计算结构进行合并获得下一层该特征图的最终结果,完成了上一层总共n个输入特征图的卷积计算。10.根据权利要求9所述的一种资源灵活配置的fpga实现cnn的方法,其特征在于,k-1卷积计算结构执行k个卷积核与对应特征图的卷积计算,并对应点求和获得该1个特征图中的值,这k个特征图与k个卷积核的卷积运算是并行执行的,每个时钟对输出的k个卷积值求和;串行合并结构是将每次k-1卷积计算结构输出的结果进行累加,每完成k-1卷积计算后,更改k个输入特征图继续计算,经「n/k」次后,完成了上一层总共n个输入特征图的卷积计算,对该累加值加偏置,并经过激活函数f运算获得该特征图的最终结果。
技术总结
本发明涉及神经网络模型技术领域,公开了一种资源灵活配置的FPGA实现CNN的方法,包括以下步骤:步骤101,输入卷积层之前首先选择串并结合配置,串并结合配置包括K值;步骤102,生成串行步数,串行步数等于「N/K」,其中N为前一层特征图的个数N,当前卷积层的个数为N*M,下一层的征图个数为M;步骤103,K-1卷积计算结构并行计算前一层的K个特征图,按「N/K」步通过串行合并结构串行将K-1的卷积计算结构进行合并获得下一层该特征图的最终结果,完成了上一层总共N个输入特征图的卷积计算;采用上述的方法来进行卷积,能够提高整个神经网络的运行效率,更高效的计算植物虫害程度。更高效的计算植物虫害程度。更高效的计算植物虫害程度。
技术研发人员:李强 赵峰 庄莉 王秋琳 伍臣周 宋立华 邱镇 黄晓光
受保护的技术使用者:国网信息通信产业集团有限公司
技术研发日:2023.06.25
技术公布日:2023/8/6
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种蛋鸭养殖用通风系统 下一篇:一株帕万氏寡养单胞菌及其在处理染料废水中的应用