嵌入式设备可配置的神经网络运算器及嵌入式设备

未命名 07-20 阅读:141 评论:0


1.本发明属于嵌入式设备卷积运算技术领域,更具体地,涉及一种嵌入式设备可配置的神经网络运算器及嵌入式设备。


背景技术:

2.随着图像处理领域的发展,卷积神经网络已普经遍应用于图像处理领域如人脸识别,物体识别等。目前,主流的图像处理计算方式仍通过电脑进行,即cpu+gpu的方式进行。由于传统cpu+gpu方式的功耗、复杂程度和成本已经大大超过了嵌入式设备所接受的范围,因此,目前尚没有设计出具有图像卷积处理能力的嵌入式设备,一般是嵌入式设备将所采集的数据上传云端,由云端的服务器处理后将结果返回至嵌入式设备。
3.然而,通过云端的处理方式,其发送和接收的大量数据信息会对通信系统造成巨大的压力。同时对于某些方面,如智能驾驶等领域,云端处理方式会因为通信系统的延时或者故障导致危险的发生,这些领域的处理则必须在本地完成,不能交予云端。
4.因此,需要提出一种能够在嵌入式设备进行卷积计算的实现方案。


技术实现要素:

5.针对现有技术的以上缺陷或改进需求,本发明提供了一种嵌入式设备可配置的神经网络运算器及嵌入式设备,其目的在于在嵌入式端可以进行卷积神经网络的处理,完成图像处理的功能。
6.为实现上述目的,按照本发明的一个方面,提供了一种嵌入式设备可配置的神经网络运算器,包括运算控制模块以及受控于运算控制模块的卷积运算模块、全局平均池化模块和全连接计算模块,所述卷积运算模块包括用于存储卷积参数的卷积参数存储结构、用于存储各步卷积结果的卷积结果存储结构、卷积预处理电路、多通道卷积计算电路;其中,
7.卷积预处理电路用于从外部存储器读取原始图像数据并与对应的卷积参数进行第一层卷积计算,生成具有多通道的第一卷积图像数据;
8.多通道卷积计算电路包括乘加电路,所述乘加电路包括中间结果计算电路和累加电路,所述中间结果计算电路包括多通道乘法电路和多级加法电路;所述多通道卷积计算电路用于依次执行第二层至最后一层卷积计算且每层卷积计算后生成具有多通道的卷积图像数据;其中,每层卷积计算中执行卷积核{c
ij
}
m*m
与各通道位于卷积核滑窗下的图像数据{p
ij
}
m*m
的卷积计算的过程包括:所述运算控制模块控制所述中间结果计算电路在相邻时序连续执行滑窗内不同像素的卷积子流程并连续输出对应的中间结果,所述累加电路在每个时序对新输入的中间结果进行累加,得到卷积结果中对应滑窗位置的像素;所述卷积子流程包括控制多通道乘法电路并行执行各通道像素p
ij
与对应的卷积参数c
ij
相乘得到多个乘积,多级加法电路对所有乘积在不同时序分级求和得到一个中间结果并输入累加电路;其中,{*}
m*m
表示m*m的矩阵,c
ij
和p
ij
分别表示第i行第j列的卷积参数和像素;
9.全局平均池化模块用于对最后一层卷积计算所得的每个通道的卷积图像数据的所有像素求平均,得到对应通道的平均池化结果;
10.全连接计算模块用于根据各通道的平均池化结果进行全连接计算,得到原始图像数据的分类结果。
11.在其中一个实施例中,在乘加电路中,多通道乘法电路得到多个乘积作为求和因子输入第一级加法电路,前一级加法电路在同一时序内对输入的求和因子分组执行加法运算得到多个相加结果后作为求和因子输入下一级加法电路,通过多级加法电路逐渐减小求和因子数量直至最后一级加法电路输出一个相加结果并作为中间结果输入累加电路中;所述累加电路在每个时序对新输入的中间结果进行累加,完成m2个中间结果的累加后得到对应滑动位置的像素。
12.在其中一个实施例中,在多通道乘法电路中,每个加法组件将输入的α个求和因子以两个一组进行求和,得到α/2个求和结果并作为新的求和因子输入下一级电路。
13.在其中一个实施例中,当乘加电路在运算控制模块的控制下完成卷积核{c
ij
}
m*m
与各通道在当前滑窗下的图像数据{p
ij
}
m*m
的卷积计算后,继续以相同的模式执行卷积核{c
ij
}
m*m
与各通道在下一滑窗下的图像数据{p
ij
}
m*m
的卷积计算,直至滑窗结束滑动,得到对应通道的卷积图像数据。
14.在其中一个实施例中,所述多通道卷积计算电路具有多个乘加电路,多个所述乘加电路并行运行以并行实现多个卷积核{c
ij
}
m*m
与各通道在卷积核的滑窗下的图像数据{p
ij
}
m*m
的卷积计算。
15.在其中一个实施例中,多通道卷积计算电路在执行每层卷积计算时所用的卷积核的尺寸为3*3,当待卷积的卷积图像数据超过20*20时滑窗的滑动步长为2,当待卷积的卷积图像数据未超过20*20时滑窗的滑动步长为1。
16.在其中一个实施例中,所述神经网络运算器还包括地址产生模块,所述地址产生模块包括地址读取电路和地址存储电路,地址读取电路产生每步卷积操作的图像数据的读取地址和相应的卷积参数的读取地址,地址存储电路产生每步卷积操作后的卷积图像数据的存储地址;其中,
17.地址存储电路产生每步卷积图像数据的存储地址的规则包括:同一层的不同通道的卷积图像数据存入卷积结果存储结构中不同的块存储单元,且同一通道的卷积图像数据的各像素按照像素在图像中的位置顺序存入对应的块存储单元中,形成存储地址与像素位置的映射关系:若像素在图像中的位置为第x行第y列,存入块存储单元中的地址为a*(x-1)+y或x+b*(y-1),其中,a为图像中的一行的像素数量,b为图像中的一列的像素数量;
18.地址读取电路产生每步卷积操作的图像数据{p
ij
}
m*m
的各像素的读取地址的规则包括:定位当前滑窗内的中间像素在通道图像数据中的位置,再根据当前滑窗内其他像素与中间像素的位置关系确定其他像素在通道图像数据中的位置,基于存储地址与像素位置的映射关系计算当前滑窗内各像素的地址。
19.在其中一个实施例中,所述卷积结果存储结构具有两个分立的存储空间,每个存储空间内具有多个存储块;
20.多通道卷积计算电路向卷积结果存储结构存储卷积结果的规则包括:
21.相邻两层卷积图像数据分别存入两个不同的存储空间;在同一个存储空间中,第β
卷积图像数据存入第β-2卷积图像数据的存储块中,β为卷积层序号,β≥3,且,第β卷积图像数据按照像素的位置逐渐对第β-2卷积图像数据的位于相同位置的像素进行覆盖。
22.在其中一个实施例中,全连接计算模块用于将各通道的平均池化结果与同一全连接层通道的参数进行乘加运算,比较不同全连接层通道的乘加运算结果,以最大的结果作为图像数据的分类结果。
23.按照本发明的另一方面,提供了一种嵌入式设备,包含上述的嵌入式设备可配置的神经网络运算器。
24.总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
25.(1)本发明搭建应用于嵌入式设备的神经网络运算器,其包括运算控制模块以及受控于运算控制模块的卷积运算模块、全局平均池化模块和全连接计算模块,该框架能够在嵌入式设备上实现卷积神经网络运算。
26.(2)相比于直接利用gpu实现神经网络的卷积运算,在嵌入式设备上执行神经网络卷积运算的速度较慢,为提高速度,本发明设计卷积运算模块,其包括卷积参数存储结构、卷积结果存储结构、卷积预处理电路、多通道卷积计算电路,在运算控制模块的控制下,先利用卷积预处理电路执行第一层卷积运算,得到多通道的第一卷积图像数据,然后利用多通道卷积计算电路执行后续的卷积运算,最终得到多通道的卷积图像数据。其中,为了实现多通道卷积计算电路进行卷积核{c
ij
}
m*m
与图像数据{p
ij
}
m*m
的卷积计算,通过控制所述中间结果计算电路在相邻时序连续执行不同像素与对应卷积参数的卷积计算并连续输出不同的中间结果,所述累加电路在每个时序对新输入的中间结果进行累加,得到卷积结果中对应滑窗位置的像素,由此降低电路复杂度的同时提高运行速度。
27.(3)本发明的卷积运算模块中包含有卷积参数存储结构,可以提前将设计好的卷积参数写入卷积参数存储结构,且卷积参数存储结构内的卷积参数可以根据需要进行更新,当神经网络运算器进行卷积运算时,可以直接读取卷积参数存储结构中填入的卷积参数进行卷积计算,实现卷积参数的灵活配置。
28.(4)本发明采用全局平均池化模块,在所有卷积结束后再进行一次全局平均池化模块,相比于每层卷积后进行一次池化,结构设计更加简单且功耗更低,处理速度也更快。
29.进一步地,通过地址存储电路设定特定的存储规则和读取规则,可以避免负责的寻址过程,从而快速获取当前滑窗内各像素点的存储地址,简化电路设计且提高运算速度。
30.进一步地,采用不同空间交替存储的方式,可以节省存储空间的同时,避免卷积计算数据错误。
31.进一步地,当图像数据较大时,用滑动步长为2,可以用滑动步长代替传统的池化层,不仅减少了在池化过程中信息的丢失,同时可以减少参数和池化层有相同作用,且设计简单,减少冗余模块,低功耗。
附图说明
32.图1为一实施例的嵌入式设备可配置的神经网络运算器的结构框图;
33.图2为一实施例的乘加电路的结构示意图;
34.图3为一实施例的通过中间结果计算电路生成一个中间结果的流程图;
35.图4为一实施例的在同一乘加电路上快速实现卷积核和图像数据的卷积计算的时序控制图;
36.图5为一实施例的全连接层运算示意图;
37.图6为一实施例的3*3滑窗内其他像素与中间像素的位置关系示意图;
38.图7为一实施例的卷积结果存储结构划分示意图。
具体实施方式
39.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
40.如图1所示为一实施例中的嵌入式设备可配置的神经网络运算器的结构框图,其包括运算控制模块以及受控于运算控制模块的卷积运算模块、全局平均池化模块和全连接计算模块,卷积、池化和全连接均为神经网络中的关联结构,上述框架可以实现卷积神经网络的计算。
41.其中,卷积运算模块包括卷积参数存储结构、卷积结果存储结构、卷积预处理电路和多通道卷积计算电路。
42.卷积参数存储结构用于提前存入设计好的卷积参数,器件在执行各步卷积操作时,可以直接读取卷积参数存储结构对应的卷积参数。可以通过更新卷积参数存储结构的参数实现卷积运算器的灵活配置。
43.卷积结果存储结构用于存入器件执行各步卷积操作所得的每层卷积计算结果,在执行下一层卷积时,从卷积结果存储结构中读取上一层的卷积计算结果。
44.在运算控制模块的控制下,卷积预处理电路从外部存储器读取原始图像数据并从卷积参数存储结构中读取对应的卷积参数进行第一层卷积计算。第一层卷积计算通过多个卷积核生成多通道的第一卷积图像数据并存入卷积结果存储结构中,其通道的数量等于所用卷积核的数量。
45.在运算控制模块的控制下,多通道卷积计算电路用于依次执行第二层至最后一层卷积计算,每层卷积计算的计算逻辑相同。其中,执行第β层卷积计算的过程包括:读取第β-1卷积图像数据和对应的卷积参数进行第i层卷积计算,第i层卷积计算通过多个卷积核生成具有多通道的第i卷积图像数据并存入卷积结果存储结构中,β=2,3,4,
……
,n,n为卷积层数量。换言之,就是以上一层的卷积结果作为下一层的卷积输入图像再次进行卷积操作,得到更新的卷积结果。
46.由于多通道卷积计算电路在执行每层卷积时,输入的图像数据具有多个通道,且利用的卷积核有多个,生成多通道的图像数据,这个过程涉及大量的计算,若是每一步计算都对应一个独立的硬件电路,需要设计一套庞大的电路结构,从而占据嵌入式设备过大的空间位置,若是使多个计算步骤相同的计算共享一套硬件电路,完全按照先后顺序依次执行每一步计算,又会导致整个器件的计算速度太慢。基于此,本发明分析每层卷积计算过程的特点,优化每步卷积核的计算过程,通过同一硬件电路快速实现每步卷积核的计算。
47.为了便于理解,以下对卷积计算与卷积核计算的关系进行简单说明,该关系为传
统卷积运算的常规关系。
48.设定第β-1层卷积计算后输出的第β-1卷积图像数据的通道数为k
β-1
,即第β层卷积的输入图像数据的通道数为k
β-1
,分别为通道1、通道2、
……
、通道k
β-1
,通过k
β
个卷积核的卷积运算,输出的第β卷积图像数据的通道数为k
β
,一个卷积核的卷积结果作为一个通道的输出结果。每个卷积核的尺寸相同但卷积参数不同。每个卷积核的卷积运算规则相同。以其中一个卷积核计算得到一个通道的卷积结果为例说明,设定卷积核为m*m的矩阵为{c
ij
}
m*m
,c
ij
为该卷积核中的第i行第j列的卷积参数,需要对k
β-1
个通道的第β-1卷积图像数据进行卷积计算,通过在每个通道的卷积图像数据滑动滑窗,截取m*m的矩阵图像数据{p
ij
}
m*m
,c
ij
为该矩阵图像数据中的第i行第j列的像素,卷积核{c
ij
}
m*m
与每个通道的矩阵图像数据{p
ij
}
m*m
进行点乘后将所有点乘结果p
ij
*c
ij
进行累加,即以作为当前滑窗位置的计算结果,该结果为第i卷积图像数据中对应当前滑窗位置的像素。若当前滑窗位置位于第β-1卷积图像数据最左上角,则最后得到的像素为第β卷积图像数据中的第一行第一列的像素。移动滑窗,通过相同的过程,得到第β卷积图像数据中其他位置的像素,从而得到第β卷积图像数据对应当前卷积核的通道数据。更新卷积核,则可以得到第β卷积图像数据的不同通道数据。
49.通过分析上述过程可知,对于同一个卷积核,通过移动滑窗实现卷积核与不同位置的图像数据进行点乘与累加计算,从而得到卷积结果中的不同位置的像素。其中,在一个滑窗下,将卷积核{c
ij
}
m*m
和每个通道的矩阵图像数据{p
ij
}
m*m
进行点乘后将所有点乘结果p
ij
*c
ij
进行累加,得到这个过程的计算量较大。本发明通过对该过程进行分解,以每个卷积参数c
ij
与各通道的像素p
ij
的卷积计算得到一个中间结果为一个子流程,即中间结果为更新像素位置和对应的卷积参数,得到不同的中间结果,因此,需要执行m*m个子流程,得到m*m个中间结果,将所有中间结果进行求和,便得到卷积核{c
ij
}
m*m
和每个通道的矩阵图像数据{p
ij
}
m*m
的卷积结果。
50.基于此,本发明提出的多通道卷积计算电路包括乘加电路,如图2所示,所述乘加电路包括中间结果计算电路和累加电路,所述中间结果计算电路包括多通道乘法电路和多级加法电路。当需要执行卷积核{c
ij
}
m*m
与各通道位于卷积核滑窗下的图像数据{p
ij
}
m*m
的卷积计算时,多通道乘法电路在同一时序执行各通道像素p
ij
与对应的卷积参数c
ij
的乘法运算得到多个乘积,多级加法电路对所有乘积在不同时序分级求和得到一个中间结果并输入累加电路。如图3所示为一实施例中通过中间结果计算电路生成一个中间结果的流程图,多通道乘法电路在第一时序执行各通道像素p
ij
与对应的卷积参数c
ij
的乘法运算得到多个乘积,多个乘积作为求和因子输入第一级加法电路,在第二时序执行对输入的求和因子分组执行加法运算,得到多个相加结果后作为求和因子输入第三级加法电路,在第三时序执行对输入的求和因子分组执行加法运算,依次类推,通过多级加法电路逐渐减小求和因子数量直至最后一级加法电路输出一个相加结果并作为中间结果输入累加电路中。具体的,每个加法组件将输入的α个求和因子以两个一组进行求和,得到α/2个求和结果并作为新的求和因子输入下一级电路。
51.基于上述多通道卷积计算电路的设计,结合运算控制模块的控制逻辑,提高运算
速度。如图4所示为一实施例中在同一乘加电路上快速实现卷积核和图像数据的卷积计算的时序控制图,运算控制模块通过控制所述中间结果计算电路在相邻时序连续执行不同像素与对应卷积参数的卷积计算并连续输出不同的中间结果,所述累加电路在每个时序对新输入的中间结果进行累加,得到卷积结果中对应滑窗位置的像素并存入卷积结果存储结构中。
52.在一实施例中,当乘加电路在运算控制模块的控制下完成卷积核{c
ij
}
m*m
与各通道在当前滑窗下的图像数据{p
ij
}
m*m
的卷积计算后,继续以相同的模式执行卷积核{c
ij
}
m*m
与各通道在下一滑窗下的图像数据{p
ij
}
m*m
的卷积计算,直至滑窗结束滑动,得到对应通道的卷积图像数据。
53.在一实施例中,所述多通道卷积计算电路具有多个乘加电路,多个所述乘加电路并行运行以并行实现多个卷积核{c
ij
}
m*m
与各通道在卷积核的滑窗下的图像数据{p
ij
}
m*m
的卷积计算,即同步生成各通道的卷积图像数据。
54.在一实施例中,多通道卷积计算电路在执行每层卷积计算时所用的卷积核的尺寸为3*3,当待卷积的卷积图像数据超过20*20时滑窗的滑动步长为2,当待卷积的卷积图像数据未超过20*20时滑窗的滑动步长为1。在本实施例中,当图像数据较大时,用滑动步长为2,可以用滑动步长代替传统的池化层,不仅减少了在池化过程中信息的丢失,同时可以减少参数和池化层有相同作用,且设计简单,减少冗余模块,低功耗。
55.全局平均池化模块用于在完成最后一层卷积计算后读取各通道的卷积图像数据并对每个通道内的卷积图像数据的所有像素求平均,得到对应通道的平均池化结果。区别与一般的卷积运算的池化层,用全局平均池化模块代替一层全连接层,减少进入全连接层的参数,减少计算功耗,提高处理速度。
56.全连接计算模块用于根据各通道的平均池化结果进行全连接计算,得到原始图像数据的分类结果。如图5所示,将所有的平均池化结果分别与对应全连接参数相乘并相加,将结果进行大小的比较,选择最大的计算结果为最终结果,得到神经网络处理的结果。
57.在一实施例中,神经网络运算器还包括地址产生模块,地址产生模块包括地址读取电路和地址存储电路,地址读取电路产生每步卷积操作的图像数据的读取地址和相应的卷积参数的读取地址,地址存储电路产生每步卷积操作后的卷积图像数据的存储地址,卷积运算模块基于在每次卷积操作时基于地址读取电路产生的图像数据读取地址从卷积结果存储结构中读取图像数据、基于卷积参数的读取地址从卷积参数存储结构中读取卷积参数,然后进行卷积运算,并根据地址存储电路产生的存储地址将卷积结果存储于卷积结果存储结构中的对应位置。
58.其中,地址存储电路产生每步卷积图像数据的存储地址的规则包括:同一层的不同通道的卷积图像数据存入卷积结果存储结构中不同的块存储单元,且同一通道的卷积图像数据各像素按照像素在图像中的位置顺序存入对应的块存储单元中,形成存储地址与像素位置的映射关系:若像素在图像中的位置为第x行第y列,存入块存储单元中的地址为a*(x-1)+y或x+b*(y-1),其中,a为图像中的一行的像素数量,b为图像中的一列的像素数量。例如,a=10,b=10,若像素在图像数据中的位置为(1,1),则存入存储块的存储地址则为1,若像素在图像数据中的位置为(10,10),则存入存储块的存储地址则为100,若像素在图像数据中的位置为(4,5),则存入存储块的存储地址则为35或44。
59.当执行卷积核{c
ij
}
m*m
与各通道位于卷积核滑窗下的图像数据{p
ij
}
m*m
的卷积计算时,若按照上述规则对像素顺序存储,地址读取电路产生每步卷积操作的图像数据{p
ij
}
m*m
的各像素的读取地址的规则为:定位当前滑窗内的中间像素在通道图像数据中的位置,再根据当前滑窗内其他像素与中间像素的位置关系确定其他像素在通道图像数据中的位置,基于存储地址与像素位置的映射关系计算当前滑窗内各像素的地址。如图6所示为3*3滑窗内其他像素与中间像素的位置关系(x,y),确定了像素在通道图像数据中的位置,便能基于存储地址与像素位置的映射关系直接计算得到该像素在存储块中的存储地址。可以理解的,每个通道的图像数据均按照相同的规则存入不同的存储块中,因此,当执行卷积核{c
ij
}
m*m
与各通道位于卷积核滑窗下的图像数据{p
ij
}
m*m
的卷积计算时,对于不同通道图像中相同位置的p
ij
,其在不同存储块中的存储地址也是一致的。在本实施例中,通过地址存储电路设定特定的存储规则和读取规则,可以避免负责的寻址过程,从而快速获取当前滑窗内各像素点的存储地址,简化电路设计且提高运算速度。
60.在一实施例中,为了节省存储空间,采取覆盖存储的方式,即后一次卷积结果存于前一次卷积结果的存储块中并对存储块中相同地址的数据进行覆盖。具体的,卷积结果存储结构具有两个分立的存储空间,每个存储空间内具有多个存储块,多通道卷积计算电路向卷积结果存储结构存储卷积结果的规则包括:相邻两层卷积图像数据分别存入两个不同的存储空间;在同一个存储空间中,第β卷积图像数据存入第β-2卷积图像数据的存储块中,β为卷积层序号,β≥3,且,第β卷积图像数据按照像素的位置逐渐对第β-2卷积图像数据的位于相同位置的像素进行覆盖。如图7所示,卷积结果存储结构具有上存储空间和下存储空间,每个存储空间中具有多个存储块,图中的i-j标识第i层卷积结果中的第j通道图像数据。第一层卷积结果的各通道图像数据均存入上存储空间的不同存储块中,则第二层卷积结果的各通道图像数据均存入下存储空间的不同存储块中,第三层卷积结果的各通道图像数据均存入上存储空间的不同存储块中且逐渐覆盖第一层卷积结果,依次类推,交替在上下存储空间中进行存储。例如,对于上存储空间的存储块1,目前已存入1-1图像数据,当逐步存入3-1图像数据时,3-1图像数据会逐步覆盖1-1图像数据中的位于相同位置的像素,例如,3-1图像数据中位于(x,y)的像素会直接存入1-1图像数据(x,y)的像素地址空间并对其进行覆盖。在本实施例,采用覆盖的方式存储数据,可以节省存储空间,但是若按照常规的覆盖方式,即后一层卷积结果逐步覆盖前一层卷积图像数据,由于在进行卷积计算时需要在前一层卷积图像数据上逐步滑动滑窗获取卷积数据,若前一层卷积图像数据被逐渐覆盖,有可能会导致卷积计算数据出现错误。因此,本实施例进一步采用不同空间交替存储的方式,可以节省存储空间的同时,避免卷积计算数据错误。
61.相应地,本发明还涉及一种嵌入式设备,该嵌入式设备包含有上文介绍地任一种嵌入式设备可配置的神经网络运算器,例如,该嵌入式设备可以为手机,手环,智能摄像头等。通过在嵌入式设备上配置神经网络运算器,可以在嵌入式设备上直接实现卷积神经网络计算,由此省略所采集的数据上传云端,由云端的服务器处理后将结果返回至嵌入式设备地复杂过程。
62.本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种嵌入式设备可配置的神经网络运算器,其特征在于,包括运算控制模块以及受控于运算控制模块的卷积运算模块、全局平均池化模块和全连接计算模块,所述卷积运算模块包括用于存储卷积参数的卷积参数存储结构、用于存储各步卷积结果的卷积结果存储结构、卷积预处理电路、多通道卷积计算电路;其中,卷积预处理电路用于从外部存储器读取原始图像数据并与对应的卷积参数进行第一层卷积计算,生成具有多通道的第一卷积图像数据;多通道卷积计算电路包括乘加电路,所述乘加电路包括中间结果计算电路和累加电路,所述中间结果计算电路包括多通道乘法电路和多级加法电路;所述多通道卷积计算电路用于依次执行第二层至最后一层卷积计算且每层卷积计算后生成具有多通道的卷积图像数据;其中,每层卷积计算中执行卷积核{c
ij
}
m*m
与各通道位于卷积核滑窗下的图像数据{p
ij
}
m*m
的卷积计算的过程包括:所述运算控制模块控制所述中间结果计算电路在相邻时序连续执行滑窗内不同像素的卷积子流程并连续输出对应的中间结果,所述累加电路在每个时序对新输入的中间结果进行累加,得到卷积结果中对应滑窗位置的像素;所述卷积子流程包括控制多通道乘法电路并行执行各通道像素p
ij
与对应的卷积参数c
ij
相乘得到多个乘积,多级加法电路对所有乘积在不同时序分级求和得到一个中间结果并输入累加电路;其中,{*}
m*m
表示m*m的矩阵,c
ij
和p
ij
分别表示第i行第j列的卷积参数和像素;全局平均池化模块用于对最后一层卷积计算所得的每个通道的卷积图像数据的所有像素求平均,得到对应通道的平均池化结果;全连接计算模块用于根据各通道的平均池化结果进行全连接计算,得到原始图像数据的分类结果。2.如权利要求1所述的嵌入式设备可配置的神经网络运算器,其特征在于,在乘加电路中,多通道乘法电路得到多个乘积作为求和因子输入第一级加法电路,前一级加法电路在同一时序内对输入的求和因子分组执行加法运算得到多个相加结果后作为求和因子输入下一级加法电路,通过多级加法电路逐渐减小求和因子数量直至最后一级加法电路输出一个相加结果并作为中间结果输入累加电路中;所述累加电路在每个时序对新输入的中间结果进行累加,完成m2个中间结果的累加后得到对应滑动位置的像素。3.如权利要求2所述的嵌入式设备可配置的神经网络运算器,其特征在于,在多通道乘法电路中,每个加法组件将输入的α个求和因子以两个一组进行求和,得到α/2个求和结果并作为新的求和因子输入下一级电路。4.如权利要求1所述的嵌入式设备可配置的神经网络运算器,其特征在于,当乘加电路在运算控制模块的控制下完成卷积核{c
ij
}
m*m
与各通道在当前滑窗下的图像数据{p
ij
}
m*m
的卷积计算后,继续以相同的模式执行卷积核{c
ij
}
m*m
与各通道在下一滑窗下的图像数据{p
ij
}
m*m
的卷积计算,直至滑窗结束滑动,得到对应通道的卷积图像数据。5.如权利要求1所述的嵌入式设备可配置的神经网络运算器,其特征在于,所述多通道卷积计算电路具有多个乘加电路,多个所述乘加电路并行运行以并行实现多个卷积核{c
ij
}
m*m
与各通道在卷积核的滑窗下的图像数据{p
ij
}
m*m
的卷积计算。6.如权利要求1所述的嵌入式设备可配置的神经网络运算器,其特征在于,多通道卷积计算电路在执行每层卷积计算时所用的卷积核的尺寸为3*3,当待卷积的卷积图像数据超过20*20时滑窗的滑动步长为2,当待卷积的卷积图像数据未超过20*20时滑窗的滑动步长
为1。7.如权利要求1所述的嵌入式设备可配置的神经网络运算器,其特征在于,所述神经网络运算器还包括地址产生模块,所述地址产生模块包括地址读取电路和地址存储电路,地址读取电路产生每步卷积操作的图像数据的读取地址和相应的卷积参数的读取地址,地址存储电路产生每步卷积操作后的卷积图像数据的存储地址;其中,地址存储电路产生每步卷积图像数据的存储地址的规则包括:同一层的不同通道的卷积图像数据存入卷积结果存储结构中不同的块存储单元,且同一通道的卷积图像数据的各像素按照像素在图像中的位置顺序存入对应的块存储单元中,形成存储地址与像素位置的映射关系:若像素在图像中的位置为第x行第y列,存入块存储单元中的地址为a*(x-1)+y或x+b*(y-1),其中,a为图像中的一行的像素数量,b为图像中的一列的像素数量;地址读取电路产生每步卷积操作的图像数据{p
ij
}
m*m
的各像素的读取地址的规则包括:定位当前滑窗内的中间像素在通道图像数据中的位置,再根据当前滑窗内其他像素与中间像素的位置关系确定其他像素在通道图像数据中的位置,基于存储地址与像素位置的映射关系计算当前滑窗内各像素的地址。8.如权利要求7所述的嵌入式设备可配置的神经网络运算器,其特征在于,所述卷积结果存储结构具有两个分立的存储空间,每个存储空间内具有多个存储块;多通道卷积计算电路向卷积结果存储结构存储卷积结果的规则包括:相邻两层卷积图像数据分别存入两个不同的存储空间;在同一个存储空间中,第β卷积图像数据存入第β-2卷积图像数据的存储块中,β为卷积层序号,β≥3,且,第β卷积图像数据按照像素的位置逐渐对第β-2卷积图像数据的位于相同位置的像素进行覆盖。9.如权利要求1所述的嵌入式设备可配置的神经网络运算器,其特征在于,全连接计算模块用于将各通道的平均池化结果与同一全连接层通道的参数进行乘加运算,比较不同全连接层通道的乘加运算结果,以最大的结果作为图像数据的分类结果。10.一种嵌入式设备,其特征在于,包含权利要求1至9任一项所述的嵌入式设备可配置的神经网络运算器。

技术总结
本发明公开了一种嵌入式设备及神经网络运算器,属于嵌入式设备卷积运算技术领域,运算器包括运算控制模块、卷积运算模块、全局平均池化模块和全连接计算模块,卷积运算模块包括多通道卷积计算电路,用于依次执行第二层至最后一层卷积计算;其中,每层卷积计算中执行卷积核{c


技术研发人员:孙华军 张峻铭 缪向水
受保护的技术使用者:华中科技大学
技术研发日:2023.03.24
技术公布日:2023/7/18
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐