基于FPGA嵌入式平台的高能效CNN应用系统
发布时间:2021-10-13 04:22
近几年来,人工智能进入了如火如荼的发展时期。深度学习领域的算法在不断推陈出新的同时,其功能和适用性也在一直扩展并且应用在各种实际场景中,包括计算机视觉、自然语言处理、智能驾驶、智能医疗和智能安防等领域。但是,随着人们对人工智能设备功能和性能上的需求不断增加,传统的GPU、CPU等计算平台无法满足实际应用高能效、小体积和低成本的要求,需要更多的解决方案。本文根据卷积神经网络(Convolutional Neural Network,CNN)计算密度高、数据规模大的特点,研究了“可编程片上系统(System on Programmable Chip,SOPC)”的嵌入式设计方法,充分发挥硬件高性能和软件灵活性两方面的优势,提出了软硬件结合的高能效CNN应用系统实现方案。主要研究内容如下:首先,本文在硬件电路中实现了卷积神经网络中最为关键的几个模块,并针对各模块的运算特点做了相应的优化。对卷积层,利用循环分块和交换、并行化、复用等策略,设计了FPGA片上并行化的计算架构和流水线的计算单元。并利用层次化和乒乓策略,设计了与计算架构相配合的“多维存储映射”缓存方案和“双缓冲缓存”的数据传输方案。...
【文章来源】:清华大学北京市 211工程院校 985工程院校 教育部直属院校
【文章页数】:72 页
【学位级别】:硕士
【部分图文】:
LeNet-5网络结构图[3]
第2章卷积神经网络模型及架构设计图2.1LeNet-5网络结构图[3]2.2.1神经元模型在神经网络中,神经元常常作为最基本的信息处理单元,它的模型如图2.2所示[40]。它由三种基本元素组成:图2.2基本神经元模型[40]1.突触,它的特征由其权值(强度)表示。假设共有m个突触连接到神经元k,其中的某个突触j上存在某个输入信号xj,该信号将与神经元k在该突触上的权值wkj相乘。权值的取值有一定的范围,可以为正值或者负值;2.加法器,采用线性组合器,将每一个输入信号与对应的突触相乘之后,对所有的乘积执行累加操作;3.激活函数,神经元的输出值波动不能过大,需要激活之后进入一个有限的合理输出区间,一般以闭区间[0,1]或者[1,+1]最为常见。除此之外,常见的神经元模型可以通过添加偏置量bk的方式,在训练中调节激活函数的输入。图2.2中的神经元可以建立为以下的数学模型:uk=m∑j=1wkjxj(2-1)yk=(uk+bk)(2-2)其中(x1,x2,x3,...,xm)为m个输入,对应的m个突触权值记为(wk1,wk2,wk3,...,wkm),将所有的输入信号传入线性组合器,计算之后得到输出值uk,bk为偏置,所用的激活函数为()。神经元一次计算之后得到的输出8
第2章卷积神经网络模型及架构设计图2.3基本图像卷积运算示意图1.局部连接,从人的角度来说,一般按照从局部到全面的方式对外界环境进行认知。这是由于视觉皮层中的神经元也只能接收局部的信息,意味着它只对某些特定区域的刺激做出响应。与此相类似的是,在图像的内部,也是局部像素的空间联系更为紧密,距离越远,像素的相关性越薄弱。所以,对神经网络而言,对其中的每一个神经元做全部的图像感知并非必要。一般只需要在局部的图像中提取底层特征后,从更高一层的感知层对这些特征进行综合,以此抽取图像的全局特征。这就意味着使用很小的过滤器就可以表示边缘、角点等底层特征,然后逐层进行更深层次的特征提取即可。2.权值共享,图像上不同位置的小块,以及不同图像上的小块,其统计特征是类似的,意味着在某一个小块学习到的特征,也可以用在另外的小块中。所以,可以采用相同的一组分类器,在不同的图像,以及同一图像上的不同位置之中对特征进行描述。完整的卷积层运算可以视为一个多维嵌套循环,其可以数学建模为图2.4所示的模型。卷积核在输入图像中作为一个窗口,逐一滑动进行计算。这里的输入图像既可能是原始图像,也可能是上一个卷积层或者池化层处理后的特征图像。具体而言,输入图像的通道(channel)数与一组卷积核的通道数相同。对于输入图像中的每一个通道,其中每一个与卷积核大小相同的局部像素区域与对应通道的卷积核相连接,做卷积,再加上一个偏置参数。之后将所有通道上相同位置的结果相加,就可以得到输出图像上一个通道上的结果。并且,为了得到更多的图像特征,往往会使用多组卷积核,这样的结果就是输出特征图像中会有多个通道。该过程如图2.4所示。10
【参考文献】:
期刊论文
[1]SOPC硬件系统设计概要[J]. 王爽,吴全兴. 微处理机. 2012(06)
[2]μc/GUI在NiosⅡ嵌入式系统上的移植及应用[J]. 陈刚,魏丽娟,肖铁军. 无线通信技术. 2012(03)
博士论文
[1]基于FPGA的卷积神经网络并行结构研究[D]. 陆志坚.哈尔滨工程大学 2013
硕士论文
[1]深度学习的硬件实现与优化技术研究[D]. 林楗军.哈尔滨工业大学 2017
[2]基于FPGA的卷积神经网络系统的设计与实现[D]. 李泽坤.哈尔滨工业大学 2017
[3]基于FPGA的卷积神经网络应用研究[D]. 王羽.华南理工大学 2016
本文编号:3433939
【文章来源】:清华大学北京市 211工程院校 985工程院校 教育部直属院校
【文章页数】:72 页
【学位级别】:硕士
【部分图文】:
LeNet-5网络结构图[3]
第2章卷积神经网络模型及架构设计图2.1LeNet-5网络结构图[3]2.2.1神经元模型在神经网络中,神经元常常作为最基本的信息处理单元,它的模型如图2.2所示[40]。它由三种基本元素组成:图2.2基本神经元模型[40]1.突触,它的特征由其权值(强度)表示。假设共有m个突触连接到神经元k,其中的某个突触j上存在某个输入信号xj,该信号将与神经元k在该突触上的权值wkj相乘。权值的取值有一定的范围,可以为正值或者负值;2.加法器,采用线性组合器,将每一个输入信号与对应的突触相乘之后,对所有的乘积执行累加操作;3.激活函数,神经元的输出值波动不能过大,需要激活之后进入一个有限的合理输出区间,一般以闭区间[0,1]或者[1,+1]最为常见。除此之外,常见的神经元模型可以通过添加偏置量bk的方式,在训练中调节激活函数的输入。图2.2中的神经元可以建立为以下的数学模型:uk=m∑j=1wkjxj(2-1)yk=(uk+bk)(2-2)其中(x1,x2,x3,...,xm)为m个输入,对应的m个突触权值记为(wk1,wk2,wk3,...,wkm),将所有的输入信号传入线性组合器,计算之后得到输出值uk,bk为偏置,所用的激活函数为()。神经元一次计算之后得到的输出8
第2章卷积神经网络模型及架构设计图2.3基本图像卷积运算示意图1.局部连接,从人的角度来说,一般按照从局部到全面的方式对外界环境进行认知。这是由于视觉皮层中的神经元也只能接收局部的信息,意味着它只对某些特定区域的刺激做出响应。与此相类似的是,在图像的内部,也是局部像素的空间联系更为紧密,距离越远,像素的相关性越薄弱。所以,对神经网络而言,对其中的每一个神经元做全部的图像感知并非必要。一般只需要在局部的图像中提取底层特征后,从更高一层的感知层对这些特征进行综合,以此抽取图像的全局特征。这就意味着使用很小的过滤器就可以表示边缘、角点等底层特征,然后逐层进行更深层次的特征提取即可。2.权值共享,图像上不同位置的小块,以及不同图像上的小块,其统计特征是类似的,意味着在某一个小块学习到的特征,也可以用在另外的小块中。所以,可以采用相同的一组分类器,在不同的图像,以及同一图像上的不同位置之中对特征进行描述。完整的卷积层运算可以视为一个多维嵌套循环,其可以数学建模为图2.4所示的模型。卷积核在输入图像中作为一个窗口,逐一滑动进行计算。这里的输入图像既可能是原始图像,也可能是上一个卷积层或者池化层处理后的特征图像。具体而言,输入图像的通道(channel)数与一组卷积核的通道数相同。对于输入图像中的每一个通道,其中每一个与卷积核大小相同的局部像素区域与对应通道的卷积核相连接,做卷积,再加上一个偏置参数。之后将所有通道上相同位置的结果相加,就可以得到输出图像上一个通道上的结果。并且,为了得到更多的图像特征,往往会使用多组卷积核,这样的结果就是输出特征图像中会有多个通道。该过程如图2.4所示。10
【参考文献】:
期刊论文
[1]SOPC硬件系统设计概要[J]. 王爽,吴全兴. 微处理机. 2012(06)
[2]μc/GUI在NiosⅡ嵌入式系统上的移植及应用[J]. 陈刚,魏丽娟,肖铁军. 无线通信技术. 2012(03)
博士论文
[1]基于FPGA的卷积神经网络并行结构研究[D]. 陆志坚.哈尔滨工程大学 2013
硕士论文
[1]深度学习的硬件实现与优化技术研究[D]. 林楗军.哈尔滨工业大学 2017
[2]基于FPGA的卷积神经网络系统的设计与实现[D]. 李泽坤.哈尔滨工业大学 2017
[3]基于FPGA的卷积神经网络应用研究[D]. 王羽.华南理工大学 2016
本文编号:3433939
本文链接:https://www.wllwen.com/kejilunwen/zidonghuakongzhilunwen/3433939.html