面向FPGA的深度学习硬件化方法优化与实现
发布时间:2021-07-06 09:12
卷积神经网络作为深度学习中的热门算法之一,在许多计算机视觉应用中取得了巨大的成功,如图像识别,语音识别。近年来,随着卷积神经网络识别精度的不断提升,它的计算复杂性也在大幅增加。由于CPU已经很难满足现代CNN对高并行度计算的需求,各种基于GPU、FPGA、ASIC的卷积神经网络加速器都陆续得以实现。在这些加速器中,FPGA凭借它强大的可重构能力和低能耗成为了加速器设计中备受欢迎的研究平台。之前基于FPGA的卷积神经网络加速器主要是使用传统的卷积算法。然而,传统的卷积算法的高算术复杂度限制了加速器的性能,并且显着增加了设计的难度。已有工作证明,将Winograd算法应用于卷积神经网络中,可以有效地降低计算复杂度。虽然已有工作实现了基于Winograd算法的加速器,但他们的工作缺少不同规模Winograd算法实现的加速器的性能对比。在本文中,我们首先提出一种适用于卷积层和完全连接层的加速器体系结构。其次,我们使用高级综合工具来实现了我们的设计。最后,我们评估了基于两个不同规模Winograd算法实现的加速器在资源利用率,性能和效率方面的表现。在VUS440平台上,我们测试了VGG16模型,...
【文章来源】:国防科技大学湖南省 211工程院校 985工程院校
【文章页数】:65 页
【学位级别】:硕士
【部分图文】:
FPGA集群的拓扑结构[27]
国防科技大学研究生院硕士学位论文第10页图2.1卷积神经网络前向计算过程训练(training)CNN的训练过程就是一个提高前向推理准确性的一个学习过程,通过不断的训练为前向计算提供一组高准确率的模型参数用于推理和判断。作为有监督式算法,CNN的训练数据集都是带有标签的,CNN会将通过网络前向计算推理出来的内容和这些数据的实际标签进行对比,并将它们之间的差异通过反向传播反应到各个权值,并对权值进行相应的调整,使其在下一轮前向推理中获得更高的识别精度。将此过程进行反复迭代,训练过程最终会收敛到一个较高的推理正确性水平。权值输入图像输出图像图2.2卷积层卷积层(ConvolutionLayers)卷积层作为卷积神经网络的主要网络层,其卷积操作在卷积神经网络的所有操作中也是占据了主要的地位[49]。如图2.2所示,卷积操作就是将一组权值在输入图像窗口上进行从左至右、从上至下的平移,每平移一次,权值就与其窗口对应的部分输入值做对应元素相乘并累加的操作,这每平移一次卷积产生的就是输出图像中的一个元素。假设有N个输入图像,就有N个KK大小的权值矩阵在输入图像上滑动和卷积,一次完整的平移就可以得到一个完整的输出图像,若这样的N个KK大小的权值矩阵总共存在M组,最终就可以得到M个输出图像。再假设每次滑动的步长为S,则图像的卷积可用如下公式表达:
国防科技大学研究生院硕士学位论文第11页111000[][][][][][][][][][]NKKnijOutmrcInnSriSrjWmnij====++池化层(PoolingLayers)池化层一般都紧跟在卷积层之后,对卷积层的输出进行降采样。池化层的目的在于减小特征图规模,并保留显著特征,从效果来看就是将图像模糊化。如图2.3所示,池化层采用固定大小的窗口,在特征图像上滑动,从每次滑动窗口对应的部分输入图像中提取出一个有效信息,或最大值,或平均值等作为输出图的一个元素。InputfeaturemapOutputfeaturemap图2.3池化层激活函数(ActivationFunction)激活函数也是神经网络中必不可少的环节之一。没有激活函数的情况下,神经网络输出信号仅仅只是一个线性变换的函数,而作为线性模型的神经网络学习和模拟复杂类型数据的能力是非常有限的,像图像、语音、视频等。因此激活函数的加入,充当了神经网络中的非线性因子,使得神经网络在理论上可以逼近任何一个函数。如图2.4所示,常见的激活函数有sigmod函数,tanh函数和ReLU函数。(a)sigmod函数(b)tanh函数(c)ReLU函数图2.4激活函数全连接层(Fully-connectedLayers)全连接层作为卷积神经网络的最后阶段,在整个神经网络扮演者“分类器”的角色。它负责从依次经由卷积层、池化层和激活函数层等处理得到的特征图中提取出具有分类信息的特征向量。如图2.5所
本文编号:3267963
【文章来源】:国防科技大学湖南省 211工程院校 985工程院校
【文章页数】:65 页
【学位级别】:硕士
【部分图文】:
FPGA集群的拓扑结构[27]
国防科技大学研究生院硕士学位论文第10页图2.1卷积神经网络前向计算过程训练(training)CNN的训练过程就是一个提高前向推理准确性的一个学习过程,通过不断的训练为前向计算提供一组高准确率的模型参数用于推理和判断。作为有监督式算法,CNN的训练数据集都是带有标签的,CNN会将通过网络前向计算推理出来的内容和这些数据的实际标签进行对比,并将它们之间的差异通过反向传播反应到各个权值,并对权值进行相应的调整,使其在下一轮前向推理中获得更高的识别精度。将此过程进行反复迭代,训练过程最终会收敛到一个较高的推理正确性水平。权值输入图像输出图像图2.2卷积层卷积层(ConvolutionLayers)卷积层作为卷积神经网络的主要网络层,其卷积操作在卷积神经网络的所有操作中也是占据了主要的地位[49]。如图2.2所示,卷积操作就是将一组权值在输入图像窗口上进行从左至右、从上至下的平移,每平移一次,权值就与其窗口对应的部分输入值做对应元素相乘并累加的操作,这每平移一次卷积产生的就是输出图像中的一个元素。假设有N个输入图像,就有N个KK大小的权值矩阵在输入图像上滑动和卷积,一次完整的平移就可以得到一个完整的输出图像,若这样的N个KK大小的权值矩阵总共存在M组,最终就可以得到M个输出图像。再假设每次滑动的步长为S,则图像的卷积可用如下公式表达:
国防科技大学研究生院硕士学位论文第11页111000[][][][][][][][][][]NKKnijOutmrcInnSriSrjWmnij====++池化层(PoolingLayers)池化层一般都紧跟在卷积层之后,对卷积层的输出进行降采样。池化层的目的在于减小特征图规模,并保留显著特征,从效果来看就是将图像模糊化。如图2.3所示,池化层采用固定大小的窗口,在特征图像上滑动,从每次滑动窗口对应的部分输入图像中提取出一个有效信息,或最大值,或平均值等作为输出图的一个元素。InputfeaturemapOutputfeaturemap图2.3池化层激活函数(ActivationFunction)激活函数也是神经网络中必不可少的环节之一。没有激活函数的情况下,神经网络输出信号仅仅只是一个线性变换的函数,而作为线性模型的神经网络学习和模拟复杂类型数据的能力是非常有限的,像图像、语音、视频等。因此激活函数的加入,充当了神经网络中的非线性因子,使得神经网络在理论上可以逼近任何一个函数。如图2.4所示,常见的激活函数有sigmod函数,tanh函数和ReLU函数。(a)sigmod函数(b)tanh函数(c)ReLU函数图2.4激活函数全连接层(Fully-connectedLayers)全连接层作为卷积神经网络的最后阶段,在整个神经网络扮演者“分类器”的角色。它负责从依次经由卷积层、池化层和激活函数层等处理得到的特征图中提取出具有分类信息的特征向量。如图2.5所
本文编号:3267963
本文链接:https://www.wllwen.com/kejilunwen/zidonghuakongzhilunwen/3267963.html