CN110782022A - 一种面向可编程逻辑器件移动终端的小型神经网络的实现方法 - Google Patents

一种面向可编程逻辑器件移动终端的小型神经网络的实现方法 Download PDF

Info

Publication number
CN110782022A
CN110782022A CN201911050280.6A CN201911050280A CN110782022A CN 110782022 A CN110782022 A CN 110782022A CN 201911050280 A CN201911050280 A CN 201911050280A CN 110782022 A CN110782022 A CN 110782022A
Authority
CN
China
Prior art keywords
convolution
layer
neural network
data
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911050280.6A
Other languages
English (en)
Inventor
钱慧
林秀男
郑镇洪
刘狄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuzhou University
Original Assignee
Fuzhou University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuzhou University filed Critical Fuzhou University
Priority to CN201911050280.6A priority Critical patent/CN110782022A/zh
Publication of CN110782022A publication Critical patent/CN110782022A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Abstract

本发明涉及一种面向可编程逻辑器件移动终端的小型神经网络的实现方法,包括以下步骤:步骤S1:输入图像经过2层的卷积层后得到特征图;步骤S2:每次卷积后的特征图再经过激活函数进行非线性映射;不同卷积层之间采用步长为2的
Figure DEST_PATH_IMAGE002
滤波器进行最大池化操作,选择特征图中的主要特征,降低所述特征图的维度,得到池化层输出图像;步骤S3:将步骤S2中所得到的池化层输出图像平铺为一维,经过全连接层后,得到输出结果。本发明中将模型参数降低了约4倍,减少了参数对存储空间的需求,而1‑bit的输入数据和8‑bit权重参数也降低了计算需求。在终端部署该神经网络时,可以采用查找表和流水线并行计算的方法来提高计算速度。

Description

一种面向可编程逻辑器件移动终端的小型神经网络的实现 方法
技术领域
本发明涉及移动终端运行领域,特别是一种面向可编程逻辑器件移动终端的小型神经网络的实现方法。
背景技术
近年来,深度神经网络已经广泛运用在图像处理、语音识别以及自然语言处理等领域,并取得了很大的成功。越来越多的移动应用采用深度神经网络来提供准确、智能有效的服务。但是在移动终端上部署神经网络是一个很大的挑战。因为尽管这些神经网络具有很强的表示能力,但是它们大量的权重参数需要耗费相当大的存储空间、内存宽带以及计算资源,而容量小的资源有限的移动终端很难满足其需求;另外运行大的神经网络需要大量的存储器带宽来获取权重以及大量的计算来完成点积,这会消耗相当大的能量,对于移动终端来说,其电池电量的约束使得消耗大功率的神经网络难以部署,所以神经网络在实际应用中仍存在着很大的局限性。
发明内容
有鉴于此,本发明的目的是提供一种面向可编程逻辑器件移动终端的小型神经网络的实现方法,在终端部署神经网络时,采用查找表存储模型的权重参数,并利用流水线并行计算完成网络中卷积运算,从提高计算速度。
本发明采用以下方案实现:一种面向可编程逻辑器件移动终端的小型神经网络的实现方法,包括以下步骤:
步骤S1:提供输入图像,所述输入图像经过2层的卷积层后得到特征图;其中所述卷积层的每一层均由步长为1的3×3卷积核进行卷积得到,采用边缘零填充方法保证卷积的输出维度不变;
步骤S2:将步骤S1得到的特征图再经过激活函数进行非线性映射;不同卷积层之间采用步长为2的2×2滤波器进行最大池化操作,提取特征,降低所述特征图的维度,得到池化层输出图像;
步骤S3:将步骤S2中所得到的池化层输出图像平铺为一维经过全连接层后,得到输出结果即得到小型神经网络模型;
步骤S4:经过步骤S1-步骤S3即得到小型神经网络模型;将得到的小型神经网络模型部署在包含可编程逻辑器件的移动终端上。
进一步地,步骤S1中所述的输入图像具体为:在自然场景下通过成像系统采集图像,将采集到的图像先经过二值化处理,然后设置阈值归一化为32×32大小的图像,即所述输入图像为由0或1组成的1-bit表示的图像数据。
进一步地,所述步骤S1具体包括以下内容:
所述卷积层包含多个卷积核集{Ki},卷积核集的个数取决于卷积层的输出通道,每一个Ki中的卷积核数目和输入特征图数目相等,将此卷积层的输入特征图与Ki中对应的卷积核进行卷积操作,得到卷积层的第i个输出通道Ci;卷积公式为:
Figure BDA0002254777540000021
Ij表示输入的第j个特征图,*代表卷积操作,bi为偏置权重,N为Ki中卷积核的个数,也与此卷积层的输入特征图的数目相等。
进一步地,所述步骤S2的具体内容为:步骤S2中所述的激活函数采用的是线性整流函数ReLU;
所使用的激活函数ReLU函数表达式如下,m为卷积后特征图的宽度,n为卷积后特征图的高度;
Figure BDA0002254777540000031
最大池化操作为在2×2不重叠的子区域上取最大值,最大池化操作表示为:
Figure BDA0002254777540000032
其中r,t分别为池化后特征图的宽度和高度,s为池化层的步长。
进一步地,所述步骤S3的具体内容为:
全连接层的输入为平铺为一维后的特征图,所述输入图像经过卷积层和池化层后输出的特征图为r×t,其中r,t分别为池化后特征图的宽度和高度,将其平铺为1×rt后输入到全连接层中,全连接层的第l个神经元的输出表示为:
Figure BDA0002254777540000033
其中Wl为全连接第l个神经元的权重参数,bl是第l个神经元的偏置权重。
进一步地,所述步骤S4的具体包括以下步骤:
步骤S41:对卷积层进行部署:
步骤S411:使用查表法对第一层卷积层进行部署;
步骤S412:对除第一卷积层之外的其他的卷积层进行部署:利用流水线和并行计算构造一个卷积计算单元;所述卷积计算单元包括由移位寄存器构成的数据缓冲器、权重缓冲器、乘法器组、加法树、激活函数模块和池化模块;在每次卷积时,首先将输入图像的特征数据和已训练的模型中权重数据分别加载到数据缓冲器和权重缓冲器中;然后通过移位寄存器逐行进入乘法器组中进行乘法运算后,通过加法树对乘积结果求和;激活函数模块和池化模块都是可选模块;
步骤S42:对神经网络的全连接层进行部署:利用流水线和并行计算构造一个全部连接层计算单元;所述全连接层计算单元包括数据缓冲器、权重缓冲器、乘法器组和加法树;将卷积层的计算结果和已训练模型中的全连接层权重按照相同的大小进行分块处理,然后按块存储到数据缓冲器和权重缓冲器中;以块为计算单位将对应的数据送入乘法器组进行相乘,并通过加法树对相乘结果求和;当所有的块都计算完毕后,再通过一个加法树对所有块的结果进行累加得到最终的全连接层结果。
进一步地,步骤S412中所述将特征数据加载到数据缓冲器中的具体处理过程为:在数据缓冲器中,采用输入数据流动的方式,读取固定地址的数据;新数据从缓冲区的低位进入,旧数据从高位输出。
进一步地,步骤S412中所述并行计算的具体内容为:令卷积核和特征图的通道数都为C,被划分为N组,每组有C′个通道;首先选择第1组C'个卷积核通道,与特征图对应的C'个通道进行卷积运算,然后将C'个通道的卷积结果累加作为第1组的结果,输出到输出缓冲区中;接着切换到第2组数据的计算,并将计算结果放在第二个输出缓冲区中,重复此过程;最后将N个输出缓冲区对应位置数据通过加法树相加,得到这个输出通道的最终卷积结果。
进一步地,所述步骤S42的具体内容为:
采用分块计算将权重矩阵拆分成为固定大小的子矩阵,各个子矩阵能够并行计算;将n×M2的权重矩阵W按列分为K组,则子矩阵的数量为
Figure BDA0002254777540000051
并进行编号为Wij,其中i∈(1,...,K)表示权重矩阵按列被分成K组,j∈(1,...,n)表示权重矩阵行维度为n,即输出节点为n;将M2×1的输入特征图划分为K组,标记为Xi,其中i∈(1,...,K);在进行拆分之后,神经网络全连接层第j个输出节点的结果由K组的计算结果相加得出;其计算公式如下:
Figure BDA0002254777540000052
与现有技术相比,本发明具有以下有益效果:
本发明通过输入图像归一化处理,参数量化处理首先降低了神经网络在终端部署时对存储空间的需求,以及计算资源的需求,具备了在资源有限的移动终端实现神经网络部署的优势。
附图说明
图1为本发明实施例的神经网络模型图。
图2为本发明实施例的已部署神经网络的终端使用过程图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
如图1所示,本实施例提供一种面向可编程逻辑器件移动终端的小型神经网络的实现方法,包括以下步骤:
步骤S1:提供输入图像,所述输入图像经过2层的卷积层后得到特征图;其中所述卷积层的每一层均由步长为1的3×3卷积核进行卷积得到,采用边缘零填充方法保证卷积的输出维度不变;
步骤S2:将步骤S1得到的特征图再经过激活函数进行非线性映射;不同卷积层之间采用步长为2的2×2滤波器进行最大池化操作,提取特征,降低所述特征图的维度,得到池化层输出图像;
步骤S3:将步骤S2中所得到的池化层输出图像平铺为一维经过全连接层后,得到输出结果即得到小型神经网络模型;
步骤S4:经过步骤S1-步骤S3即得到小型神经网络模型;将得到的小型神经网络模型部署在包含可编程逻辑器件的移动终端上。
在本实施例中,步骤S1中所述的输入图像具体为:在自然场景下通过成像系统采集图像,将采集到的图像先经过二值化处理,然后设置阈值归一化为32×32大小的图像,即所述输入图像为由0或1组成的1-bit表示的图像数据。
在本实施例中,所述步骤S1具体包括以下内容:
所述卷积层包含多个卷积核集{Ki},卷积核集的个数取决于卷积层的输出通道,每一个Ki中的卷积核数目和输入特征图数目相等,将此卷积层的输入特征图与Ki中对应的卷积核进行卷积操作,得到卷积层的第i个输出通道Ci;卷积公式为:
Figure BDA0002254777540000071
Ij表示输入的第j个特征图,*代表卷积操作,bi为偏置权重,N为Ki中卷积核的个数,也与此卷积层的特征图的数目相等。
在本实施例中,所述步骤S2的具体内容为:步骤S2中所述的激活函数采用的是线性整流函数ReLU;
所使用的激活函数ReLU函数表达式如下,m为卷积后特征图的宽度,n为卷积后特征图的高度;
Figure BDA0002254777540000072
最大池化操作为在2×2不重叠的子区域上取最大值,最大池化操作表示为:
其中r,t分别为池化后特征图的宽度和高度,s为池化层的步长。
在本实施例中,所述步骤S3的具体内容为:
全连接层的输入为平铺为一维后的特征图,所述输入图像经过卷积层和池化层后输出的特征图为r×t,其中r,t分别为池化后特征图的宽度和高度,将其平铺为1×rt后输入到全连接层中,全连接层的第l个神经元的输出表示为:
Figure BDA0002254777540000081
其中Wl为全连接第l个神经元的权重参数,bl是第l个神经元的偏置权重。
在本实施例中,所述步骤S4的具体包括以下步骤:
步骤S41:对卷积层进行部署:在部署方面,对于卷积层的操作,分别采用的是查找表和并行流水线策略实现。对于卷积层,本实施例采用两种方式进行部署。首先是第一层卷积层,其输入数据为1-bit,经卷积计算和激活函数计算之后,其结果的种类是有限的,因此使用查找表更加高效快速。
步骤S411:使用查表法对第一层卷积层进行部署;
步骤S412:对除第一卷积层之外的其他的卷积层进行部署:利用流水线和并行计算构造一个卷积计算单元;所述卷积计算单元包括由移位寄存器构成的数据缓冲器、权重缓冲器、乘法器组、加法树、激活函数模块和池化模块;在每次卷积时,首先将输入图像的特征数据和已训练的模型中权重数据分别加载到数据缓冲器和权重缓冲器中;然后通过移位寄存器逐行进入乘法器组中进行乘法运算后,通过加法树对乘积结果求和;激活函数模块和池化模块都是可选模块;
步骤S42:对神经网络的全连接层进行部署:利用流水线和并行计算构造一个全部连接层计算单元;所述全连接层计算单元包括数据缓冲器、权重缓冲器、乘法器组和加法树;将卷积层的计算结果和已训练模型中的全连接层权重按照相同的大小进行分块处理,然后按块存储到数据缓冲器和权重缓冲器中;以块为计算单位将对应的数据送入乘法器组进行相乘,并通过加法树对相乘结果求和;当所有的块都计算完毕后,再通过一个加法树对所有块的结果进行累加得到最终的全连接层结果。
在本实施例中,步骤S412中所述将特征数据加载到数据缓冲器中的具体处理过程为:在数据缓冲器中,采用输入数据流动的方式,读取固定地址的数据;新数据从缓冲区的低位进入,旧数据从高位输出。在池化模块中,对于输入数据的存储和读取与卷积计算过程中的数据缓冲器相同。不同之处在于池化的操作过程由比较器组完成,而不是乘法器组和加法树。
在本实施例中,步骤S412中所述并行计算的具体内容为:在卷积计算中通常存在多通道输入的卷积核。本实施例针对这种情况采用分组并行计算。令卷积核和特征图的通道数都为C,被划分为N组,每组有C′个通道;首先选择第1组C'个卷积核通道,与特征图对应的C'个通道进行卷积运算,然后将C'个通道的卷积结果累加作为第1组的结果,输出到输出缓冲区中;接着切换到第2组数据的计算,并将计算结果放在第二个输出缓冲区中,重复此过程;最后将N个输出缓冲区对应位置数据通过加法树相加,得到这个输出通道的最终卷积结果。
在本实施例中,所述步骤S42的具体内容为:
由于神经网络的全连接层存在参数量大,且相互之间没有依赖关系的特点,因此采用分块计算将权重矩阵拆分成为固定大小的子矩阵,各个子矩阵能够并行计算;将n×M2的权重矩阵W按列分为K组,则子矩阵的数量为
Figure BDA0002254777540000101
并进行编号为Wij,其中i∈(1,...,K)表示权重矩阵按列被分成K组,j∈(1,...,n)表示权重矩阵行维度为n,即输出节点为n;将M2×1的输入特征图划分为K组,标记为Xi,其中i∈(1,...,K);在进行拆分之后,神经网络全连接层第j个输出节点的结果由K组的计算结果相加得出;其计算公式如下:
Figure BDA0002254777540000102
在本实例中,第二层卷积层是为8个输入通道的卷积操作。本实例采用8个输入通道并行计算,得出8个通道的各自的卷积结果,然后经过加法树累加得到其输出通道的卷积结果。
本实施例,在步骤S4终端部署神经网络时,采用查找表存储模型的权重参数,并利用流水线并行计算完成网络中卷积运算,从提高计算速度。
较佳的,本实施例采用二值化的图像经过归一化处理后作为网络的输入,那么神经网络的输入就是1-bit的数据,并且将权重由32-bit浮点数量化为8-bit定点数,将模型参数降低了约4倍,减少了参数对存储空间的需求,1-bit的输入和8-bit权重参数也降低了计算需求。在终端部署神经网络时,采用查找表和流水线并行计算的方法来降低计算量以及提高计算速度。
较佳的,本实施例的具体示例如下:
在第一个卷积层和池化操作的实现中,i=8,j=1,离线训练完的卷积参数都是固定的,对于输入情况只有0或1,卷积核大小为3×3的情况下,即由0、1组成的9-bit的输入数据完成一次卷积操作,输入有23×3=512种,经卷积和激活函数计算后,其结果种类不超过157种。本实施例采用的查找表的方式进行第一层卷积层的卷积和激活函数操作。池化层的实现方式包括输入和输出缓冲区、数据缓冲区和比较器构成。第一层池化层输入数据是32×32,其数据缓冲区可存放34个8-bit数,当第一个输入数据到达数据缓冲区末端时,比较器开始工作。由于池化层步长为2,因此每隔一个时刻会有计算结果。
对于第二层卷积层的实现,本实施例所采用的方式主要由输入和输出缓冲区、数据缓冲区、权重缓冲区、乘法器和加法器构成。输入数据和权重数据通过移位寄存器逐行进入卷积计算单元中。当第一个输入数据到达数据缓冲区末端时乘法器开始工作,之后每个时刻都会有计算结果输出。由于第二层卷积层由8个输入特征图,并且不同卷积核之间没有依赖关系,因此对这8个特征图同时进行卷积操作,并将卷积计算结果相加得到一个输出通道的结果。
对于ReLU激活函数,根据函数的表达式(2)可以得知,只需对最高位符号位进行判断,为0激活输出保持不变,为1激活输出变为0。
第二层池化层的输入数据是16×16,其数据缓冲区可以存放18个16-bit数,剩余的操作与第一层池化层操作一样。
全连接层的操作,本实施例的实现方式是将权重参数矩阵分块处理,由输入、输出缓冲区,数据寄存器,LUTBRAM,乘法器和加法器组成。LUTBRAM用来存储8-bit的全连接层权重参数。在本实施例中,第二层池化层的输出为8×8×8,将其平铺成一维数据1×512后,作为全连接层的输入;全连接层的权重参数矩阵为512×10,将其划分为8个块,每个块大小为64×10,相对应的输入数据1×512也划分为8个块,每个块1×64。1×64的块输入同时与64×10的权重矩阵块的10列并行计算,列内部是以流水线方式进行计算。最后通过流水线加法树将8个块的计算结果累加,得到全连接层的1×10计算结果。
如表1所示为小容量深度神经网络在移动终端实现后的资源使用情况,明显可知在移动终端部署神经网络后,存储资源和计算资源都有着可观的剩余。图2为已部署神经网络的移动终端的使用过程,首先在自然场景下通过成像系统采集图像,将采集到的图像数据输入移动终端得到处理结果,该移动终端已经部署了对输入图像的二值化处理和神经网络。
表1神经网络网络部署到终端的资源使用情况
Figure BDA0002254777540000121
较佳的,本实施例已部署神经网络的终端可以用于图像处理,模式识别,文本识别和自然语言处理等应用场景。而且本实施例中所提出的小型神经网络在移动终端的实现方案也适用于其他类似的神经网络在终端上的部署。因此本实施例具有广泛的适用范围。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (9)

1.一种面向可编程逻辑器件移动终端的小型神经网络的实现方法,其特征在于:包括以下步骤:
步骤S1:提供输入图像,所述输入图像经过2层的卷积层后得到特征图;其中所述卷积层的每一层均由步长为1的3×3卷积核进行卷积得到,采用边缘零填充方法保证卷积的输出维度不变;
步骤S2:将步骤S1得到的特征图再经过激活函数进行非线性映射;不同卷积层之间采用步长为2的2×2滤波器进行最大池化操作,提取特征,降低所述特征图的维度,得到池化层输出图像;
步骤S3:将步骤S2中所得到的池化层输出图像平铺为一维经过全连接层后,得到输出结果;
步骤S4:经过步骤S1-步骤S3即得到小型神经网络模型;将得到的小型神经网络模型部署在包含可编程逻辑器件的移动终端上。
2.根据权利要求1所述的一种面向可编程逻辑器件移动终端的小型神经网络的实现方法,其特征在于:步骤S1中所述的输入图像具体为:在自然场景下通过成像系统采集图像,将采集到的图像先经过二值化处理,然后设置阈值归一化为32×32大小的图像,即所述输入图像为由0或1组成的1-bit表示的图像数据。
3.根据权利要求1所述的一种面向可编程逻辑器件移动终端的小型神经网络的实现方法,其特征在于:所述步骤S1具体包括以下内容:
所述卷积层包含多个卷积核集{Ki},卷积核集的个数取决于卷积层的输出通道,每一个Ki中的卷积核数目和输入特征图数目相等,将此卷积层的输入特征图与Ki中对应的卷积核进行卷积操作,得到卷积层的第i个输出通道Ci;卷积公式为:
Ij表示输入的第j个特征图,*代表卷积操作,bi为偏置权重,N为Ki中卷积核的个数,也与此卷积层的输入特征图的数目相等。
4.根据权利要求1所述的一种面向可编程逻辑器件移动终端的小型神经网络的实现方法,其特征在于:所述步骤S2的具体内容为:步骤S2中所述的激活函数采用的是线性整流函数ReLU;
所使用的激活函数ReLU函数表达式如下,m为卷积后特征图的宽度,n为卷积后特征图的高度;
Figure FDA0002254777530000022
最大池化操作为在2×2不重叠的子区域上取最大值,最大池化操作表示为:
Figure FDA0002254777530000023
其中r,t分别为池化后特征图的宽度和高度,s为池化层的步长。
5.根据权利要求1所述的一种面向可编程逻辑器件移动终端的小型神经网络的实现方法,其特征在于:所述步骤S3的具体内容为:
全连接层的输入为平铺为一维后的特征图,所述输入图像经过卷积层和池化层后输出的特征图为r×t,其中r,t分别为池化后特征图的宽度和高度,将其平铺为1×rt后输入到全连接层中,全连接层的第l个神经元的输出表示为:
Figure FDA0002254777530000031
其中Wl为全连接第l个神经元的权重参数,bl是第l个神经元的偏置权重。
6.根据权利要求1所述的一种面向可编程逻辑器件移动终端的小型神经网络的实现方法,其特征在于:所述步骤S4的具体包括以下步骤:
步骤S41:对卷积层进行部署:
步骤S411:使用查表法对第一层卷积层进行部署;
步骤S412:对除第一卷积层之外的其他的卷积层进行部署:利用流水线和并行计算构造一个卷积计算单元;所述卷积计算单元包括由移位寄存器构成的数据缓冲器、权重缓冲器、乘法器组、加法树、激活函数模块和池化模块;在每次卷积时,首先将输入图像的特征数据和已训练的模型中权重数据分别加载到数据缓冲器和权重缓冲器中;然后通过移位寄存器逐行进入乘法器组中进行乘法运算后,通过加法树对乘积结果求和;激活函数模块和池化模块都是可选模块;
步骤S42:对神经网络的全连接层进行部署:利用流水线和并行计算构造一个全部连接层计算单元;所述全连接层计算单元包括数据缓冲器、权重缓冲器、乘法器组和加法树;将卷积层的计算结果和已训练模型中的全连接层权重按照相同的大小进行分块处理,然后按块存储到数据缓冲器和权重缓冲器中;以块为计算单位将对应的数据送入乘法器组进行相乘,并通过加法树对相乘结果求和;当所有的块都计算完毕后,再通过一个加法树对所有块的结果进行累加得到最终的全连接层结果。
7.根据权利要求6所述的一种面向可编程逻辑器件移动终端的小型神经网络的实现方法,其特征在于:步骤S412中所述将特征数据加载到数据缓冲器中的具体处理过程为:在数据缓冲器中,采用输入数据流动的方式,读取固定地址的数据;新数据从缓冲区的低位进入,旧数据从高位输出。
8.根据权利要求6所述的一种面向可编程逻辑器件移动终端的小型神经网络的实现方法,其特征在于:步骤S412中所述并行计算的具体内容为:令卷积核和特征图的通道数都为C,被划分为N组,每组有C′个通道;首先选择第1组C'个卷积核通道,与特征图对应的C'个通道进行卷积运算,然后将C'个通道的卷积结果累加作为第1组的结果,输出到输出缓冲区中;接着切换到第2组数据的计算,并将计算结果放在第二个输出缓冲区中,重复此过程;最后将N个输出缓冲区对应位置数据通过加法树相加,得到这个输出通道的最终卷积结果。
9.根据权利要求6所述的一种面向可编程逻辑器件移动终端的小型神经网络的实现方法,其特征在于:所述步骤S42的具体内容为:
采用分块计算将权重矩阵拆分成为固定大小的子矩阵,各个子矩阵能够并行计算;将n×M2的权重矩阵W按列分为K组,则子矩阵的数量为并进行编号为Wij,其中i∈(1,...,K)表示权重矩阵按列被分成K组,j∈(1,...,n)表示权重矩阵行维度为n,即输出节点为n;将M2×1的输入特征图划分为K组,标记为Xi,其中i∈(1,...,K);在进行拆分之后,神经网络全连接层第j个输出节点的结果由K组的计算结果相加得出;其计算公式如下:
Figure FDA0002254777530000051
CN201911050280.6A 2019-10-31 2019-10-31 一种面向可编程逻辑器件移动终端的小型神经网络的实现方法 Pending CN110782022A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911050280.6A CN110782022A (zh) 2019-10-31 2019-10-31 一种面向可编程逻辑器件移动终端的小型神经网络的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911050280.6A CN110782022A (zh) 2019-10-31 2019-10-31 一种面向可编程逻辑器件移动终端的小型神经网络的实现方法

Publications (1)

Publication Number Publication Date
CN110782022A true CN110782022A (zh) 2020-02-11

Family

ID=69388174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911050280.6A Pending CN110782022A (zh) 2019-10-31 2019-10-31 一种面向可编程逻辑器件移动终端的小型神经网络的实现方法

Country Status (1)

Country Link
CN (1) CN110782022A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111401543A (zh) * 2020-06-08 2020-07-10 深圳市九天睿芯科技有限公司 一种全片上存储的神经网络加速器及其实现方法
CN111445018A (zh) * 2020-03-27 2020-07-24 国网甘肃省电力公司电力科学研究院 基于加速卷积神经网络算法的紫外成像实时信息处理方法
CN111582451A (zh) * 2020-05-08 2020-08-25 中国科学技术大学 图像识别层间并行流水线型二值化卷积神经网络阵列架构
CN111709983A (zh) * 2020-06-16 2020-09-25 天津工业大学 一种基于卷积神经网络和光场图像的气泡流场三维重建方法
CN112580774A (zh) * 2020-09-01 2021-03-30 浙江大学 一种面向可重构神经网络处理器的神经网络布局方法
CN112633477A (zh) * 2020-12-28 2021-04-09 电子科技大学 一种基于现场可编程阵列的量化神经网络加速方法
CN113469335A (zh) * 2021-06-29 2021-10-01 杭州中葳数字科技有限公司 一种利用不同卷积层特征间关系为特征分配权重的方法
CN113670369A (zh) * 2021-07-09 2021-11-19 南京航空航天大学 基于移动终端的风速测量及风噪声检测方法及装置
CN113762491A (zh) * 2021-08-10 2021-12-07 南京工业大学 一种基于fpga的卷积神经网络加速器
CN114463161A (zh) * 2022-04-12 2022-05-10 之江实验室 一种基于忆阻器的神经网络处理连续图像的方法和装置
CN113469335B (zh) * 2021-06-29 2024-05-10 杭州中葳数字科技有限公司 一种利用不同卷积层特征间关系为特征分配权重的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170103304A1 (en) * 2015-10-08 2017-04-13 Via Alliance Semiconductor Co., Ltd. Neural network unit with plurality of selectable output functions
CN108389183A (zh) * 2018-01-24 2018-08-10 上海交通大学 肺部结节检测神经网络加速器及其控制方法
CN109784489A (zh) * 2019-01-16 2019-05-21 北京大学软件与微电子学院 基于fpga的卷积神经网络ip核
CN110263925A (zh) * 2019-06-04 2019-09-20 电子科技大学 一种基于fpga的卷积神经网络前向预测的硬件加速实现架构

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170103304A1 (en) * 2015-10-08 2017-04-13 Via Alliance Semiconductor Co., Ltd. Neural network unit with plurality of selectable output functions
CN108389183A (zh) * 2018-01-24 2018-08-10 上海交通大学 肺部结节检测神经网络加速器及其控制方法
CN109784489A (zh) * 2019-01-16 2019-05-21 北京大学软件与微电子学院 基于fpga的卷积神经网络ip核
CN110263925A (zh) * 2019-06-04 2019-09-20 电子科技大学 一种基于fpga的卷积神经网络前向预测的硬件加速实现架构

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111445018A (zh) * 2020-03-27 2020-07-24 国网甘肃省电力公司电力科学研究院 基于加速卷积神经网络算法的紫外成像实时信息处理方法
CN111445018B (zh) * 2020-03-27 2023-11-14 国网甘肃省电力公司电力科学研究院 基于加速卷积神经网络算法的紫外成像实时信息处理方法
CN111582451B (zh) * 2020-05-08 2022-09-06 中国科学技术大学 图像识别层间并行流水线型二值化卷积神经网络阵列架构
CN111582451A (zh) * 2020-05-08 2020-08-25 中国科学技术大学 图像识别层间并行流水线型二值化卷积神经网络阵列架构
CN111401543A (zh) * 2020-06-08 2020-07-10 深圳市九天睿芯科技有限公司 一种全片上存储的神经网络加速器及其实现方法
CN111709983A (zh) * 2020-06-16 2020-09-25 天津工业大学 一种基于卷积神经网络和光场图像的气泡流场三维重建方法
CN112580774A (zh) * 2020-09-01 2021-03-30 浙江大学 一种面向可重构神经网络处理器的神经网络布局方法
CN112633477A (zh) * 2020-12-28 2021-04-09 电子科技大学 一种基于现场可编程阵列的量化神经网络加速方法
CN113469335A (zh) * 2021-06-29 2021-10-01 杭州中葳数字科技有限公司 一种利用不同卷积层特征间关系为特征分配权重的方法
CN113469335B (zh) * 2021-06-29 2024-05-10 杭州中葳数字科技有限公司 一种利用不同卷积层特征间关系为特征分配权重的方法
CN113670369A (zh) * 2021-07-09 2021-11-19 南京航空航天大学 基于移动终端的风速测量及风噪声检测方法及装置
CN113762491A (zh) * 2021-08-10 2021-12-07 南京工业大学 一种基于fpga的卷积神经网络加速器
CN113762491B (zh) * 2021-08-10 2023-06-30 南京工业大学 一种基于fpga的卷积神经网络加速器
CN114463161A (zh) * 2022-04-12 2022-05-10 之江实验室 一种基于忆阻器的神经网络处理连续图像的方法和装置

Similar Documents

Publication Publication Date Title
CN110782022A (zh) 一种面向可编程逻辑器件移动终端的小型神经网络的实现方法
CN108376387B (zh) 基于聚合膨胀卷积网络的图像去模糊方法
CN109978142B (zh) 神经网络模型的压缩方法和装置
CN107844826B (zh) 神经网络处理单元及包含该处理单元的处理系统
US10824934B2 (en) Methods and apparatus for matrix processing in a convolutional neural network
CN111144329B (zh) 一种基于多标签的轻量快速人群计数方法
US11308406B2 (en) Method of operating neural networks, corresponding network, apparatus and computer program product
CN108764317B (zh) 一种基于多路特征加权的残差卷积神经网络图像分类方法
CN110222760B (zh) 一种基于winograd算法的快速图像处理方法
Hailesellasie et al. FPGA-based convolutional neural network architecture with reduced parameter requirements
CN111814973B (zh) 一种适用于神经常微分方程网络计算的存内计算系统
Hikawa et al. Improved learning performance of hardware self-organizing map using a novel neighborhood function
CN112508125A (zh) 一种图像检测模型的高效全整数量化方法
CN108664993B (zh) 一种密集权重连接的卷积神经网络图像分类方法
CN112183295A (zh) 行人重识别方法、装置、计算机设备及存储介质
CN112598062A (zh) 一种图像识别方法和装置
CN110991623A (zh) 基于数模混合神经元的神经网络运算系统
CN113608881B (zh) 内存分配方法、装置、设备、可读存储介质及程序产品
CN109670582B (zh) 一种全定点化神经网络的设计方法
CN111931927B (zh) 一种在npu中减少计算资源占用的方法及装置
CN111882028B (zh) 用于卷积神经网络的卷积运算装置
CN111160517A (zh) 一种深度神经网络的卷积层量化方法及装置
Liu et al. Road mapping in LiDAR images using a joint-task dense dilated convolutions merging network
CN113033795B (zh) 基于时间步的二值脉冲图的脉冲卷积神经网络硬件加速器
CN115587622A (zh) 一种基于光电存算一体器件的多层感知机装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200211