一种用于CNN的超低复杂度最大池化反向传播架构制造技术

技术编号:37781111 阅读:16 留言:0更新日期:2023-06-09 09:11
本发明专利技术公开了一种用于CNN的超低复杂度最大池化反向传播架构,本发明专利技术的主要目的是解决卷积神经网络最大池化反向传播采用传统恢复矩阵算法,恢复矩阵中大部分为零值,直接存储恢复矩阵C会造成大量的存储资源浪费的问题。本发明专利技术根据输入矩阵中稀疏性的数据特点,采用改进算法实现,设计了Matrix mapping逻辑运算,直接得到输入矩阵在卷积核窗口的映射地址,并判断其是否位于当前的窗口中,无需恢复成原始矩阵,优化数据存储方案,选择非零值做卷积硬件实现,从而提升了反向最大池化中的硬件实现频率,减少了存储资源消耗,降低了硬件实现复杂度,选择非零值完成卷积运算减小了计算资源的消耗。算资源的消耗。算资源的消耗。

【技术实现步骤摘要】
一种用于CNN的超低复杂度最大池化反向传播架构


[0001]本专利技术属于计算机
,涉及卷积神经网络中基于FPGA的反向最大池化超低复杂度实现方法。

技术介绍

[0002]近年来,CNN已成功应用于图像识别和自然语言处理等领域。CNN架构主要由卷积层、池化层以及全连接层构成,其中池化层可分为平均池化和最大池化,最大池化可以减少估计均值的偏移带来的误差,从而保留图片的纹理信息,其计算方式如下:
[0003][0004]其中data
i
表示池化层的输入矩阵元素N
pool
为池化层的窗口尺寸。因最大池化相较于平均池化计算量较少,已应用于AlexNet、VGG、GooglNet等网络。
[0005]在反向传播过程中,根据前向非零点位置上采样填充零值以及完成反向最大池化层计算。如表1所示,由于各网络内部上采样得到的恢复矩阵较大且通道个数较多,如VGG网络中恢复矩阵大小达到了112
×
112大小,通道个数为128个,若按照恢复矩阵的尺寸进行数据存储,将造成存储资源以及计算资源消耗过大。
[0006]表1
[0007]
技术实现思路

[0008]本专利技术的主要目的是解决最大池化反向传播采用传统恢复矩阵算法,将恢复成F
×
F的矩阵C按照卷积核大小N
conv
×
N
conv
拼接存储到RAM中,完成F
×
F与N
conv
×
N/>conv
的卷积运算,此时每个通道的RAM存储器的深度为F
×
F,且矩阵中大部分为零值,直接存储矩阵C会造成大量的存储资源浪费的问题。
[0009]为了解决上述问题,本专利技术所采用的技术方案具体如下:
[0010]一种用于CNN的超低复杂度最大池化反向传播架构,具体如下:设输入矩阵E为R
×
R;
[0011]1)直接从输入矩阵E大小为R
×
R的RAM中同时读取一个卷积窗口内部Q个最大非零数值量,即输入数据E(1)~E(Q),其中矩阵E'由矩阵E经过式(1)得到,
[0012][0013]其中m,n为矩阵E的行列坐标,i,j分别为矩阵E'的行列坐标,Z为矩阵E中行列坐标相同元素的个数。
[0014]2)根据反卷积中的填充大小P由式(2)和式(3)改变原矩阵E'的地址行列坐标r和c得到填充后的行列坐标r

和c


[0015]r

=r+P(2)
[0016]c

=c+P(3)
[0017]由矩阵A'的内部数据对应地址与行列偏移量c
row
和c
col
相减得到映射到对应卷积核的非零位置;行列偏移量c
row
和c
col
按照卷积步长设定,初始值为0;
[0018]判断映射到对应卷积核的非零位置是否小于等于当前卷积核内部坐标,是则在对应卷积核范围内,以此组成Matrix mapping中的逻辑运算模块;同时经过Q个选择器选择卷积窗口对应坐标中输入矩阵的非零值,并得到的卷积核对应非零位置的地址选择read_address1~read_addressQ。
[0019]3)从权重RAM中读取输入数据E

(1)~E

(Q)所对应的权重数据K(1)~K(Q),权重数据与对应位置的输入数据相乘,经过Q个乘法器以及Q

1个加法器,完成一个卷积窗口的运算。
[0020]4)根据式(4)通过填充后的矩阵大小,
[0021][0022]每经过一个时钟周期,c
row
按照卷积步长累加一次,当c
row
大小等于填充后的矩阵大小时,c
row
归零,c
col
按照卷积步长累加一次,循环步骤1)~步骤3)的操作,直至c
col
大小等于填充后的矩阵大小的过程改变c
row
和c
col
的偏移量,同步卷积窗口的移步运算,映射至卷积核横纵坐标,依次计算(F+2P

N
conv
)/S
conv
个卷积窗口并经过相同硬件结构直至完成整个矩阵卷积运算,其中,F为恢复后的矩阵C的大小,P表示反卷积中的填充大小,N
c
o
nv
表示卷积核的大小,S
c
o
nv
表示反卷积的步长。
[0023]本专利技术的有益效果:
[0024]本专利技术根据输入矩阵中稀疏性的数据特点,采用改进算法实现,设计了Matrix mapping逻辑运算,直接得到输入矩阵在卷积核窗口的映射地址,并判断其是否位于当前的窗口中,无需恢复成原始矩阵,优化数据存储方案,选择非零值做卷积硬件实现,从而提升了反向最大池化中的硬件实现频率,减少了存储资源消耗,降低了硬件实现复杂度,选择非零值完成卷积运算减小了计算资源的消耗。
附图说明
[0025]图1是反向最大池化恢复矩阵硬件示意
[0026]图2是本专利技术算法示意图;
[0027]图3是改进方案硬件结构图。
具体实施方式
[0028]下面以具体实施例的形式对本专利技术技术方案做进一步解释和说明。
[0029]基于误差反向传播原理,根据式3.1得到L层误差函数δ
L
,其中δ
L+1
为对应L+1层的误差函数,a
L
‑1为L层输入矩阵,后经过式3.2求得对L

1层的灵敏度,W
L
‑1为L

1层权重,z
L
‑1为L

1层未经过激活函数的输出,σ'(z
L
‑1)为L

1层激活函数的导数。
[0030][0031][0032]因此定义反向池化层中误差函数δ
L+1
的输出矩阵为输入矩阵为E,误差函数δ
L
的恢复矩阵C为F
×
F,W
L
‑1的权重卷积核K大小为N
conv
×
N
conv
,步长为S
conv
,填充为P。若前向推理中的最大池化中步长小于池化层中核的大小,存在重叠取值的情况,因此反向恢复过程中,对应坐标相同的元素叠加,若前向推理中的最大池化中步长大于或者等于池化层中核的大小,则不存在重叠取值的情况,即矩阵E经过式3.3得到矩阵E',其中i,j分别表示E'中对应元素位置,E'矩阵经过式3.4上采样得到矩阵C,而后经过边缘填充P后,公式3.5与卷积核K做卷积运算及完成反向最大池化得到最终输出矩阵D。
...

【技术保护点】

【技术特征摘要】
1.一种用于CNN的超低复杂度最大池化反向传播架构,其特征在于,架构具体如下:设输入矩阵E为R
×
R大小,卷积核大小为N
conv
×
N
conv
,恢复矩阵C的大小为F
×
F;1)直接从矩阵E'大小为R
×
R的RAM中同时读取一个卷积窗口内部Q=N
conv
×
N
conv
个最大非零数值量,即输入数据E(1)~E(Q),其中矩阵E'由输入矩阵E经过式(1)得到,其中m,n为矩阵E的行列坐标,i,j分别为矩阵E'的行列坐标,Z为矩阵E中行列坐标相同元素的个数;2)根据反卷积中的填充大小P由式(2)和式(3)改变原矩阵E'的地址行列坐标r和c得到填充后的行列坐标r

和c

,r

=r+P
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)c

=c+P
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)由矩阵A'的内部数据对应地址与行列偏移量c
row
和c
col
相减得到映射到对应卷积核的非零位置;行列偏移量c
row
和c
col
按照卷积步长设定,初始值为0;判断映射到对应卷积核的非零位置是否小于等于当前卷积核内部坐标,是则在对应卷积核范围内,以...

【专利技术属性】
技术研发人员:张小军朱琛石王晓静曾庆田陈达鲁法明宋戈韩钦郭华张德学
申请(专利权)人:山东科技大学
类型:发明
国别省市:

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

1