基于FPGA器件实现CNN加速系统的硬件设计.docx
《基于FPGA器件实现CNN加速系统的硬件设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA器件实现CNN加速系统的硬件设计.docx(8页珍藏版)》请在第一文库网上搜索。
1、基于FPGA器件实现CNN加速系统的硬件设计引言随着近些年逢度迪的迅速发展和广泛的应用,卷积神经网络(CNN)已经成为检测和识别领域最好的方法,它可以自动地从数据集中学习提取特征,而且国络层数越多,提取的特征越有全局性。通过局部连接和权值共享可以提高模型的泛化能力,大幅度提高了识别分类的精度。并且随着物联网的发展,部署嵌空端的卷积神经网络要处理大量的数据,这将会消耗大量的资源与能量,而嵌入式设备通常用电池维持工作,频繁更换电池将会提高成本,因此对于推断阶段的运算加速以及低功耗设计有重要实际意义。CNN的不同卷积核的运算之间是相互独立的,而且全连接层的矩阵乘法不同行之间也是独立的,因此神经网络的
2、推断在CPU平台上串行计算的方式是非常低效的。GPU可以通过流处理器实现一定的并行性,但是缺乏对于网络并行结构的深度探索,不是最优的方案。而基于国人的神经网络可以更好地实现网络并行计算与资源复用,因此本文采用FPGA加速卷积神经网络运算。此前已有一些基于FPGA的卷积神经网络加速器,WANGD设计了流水线卷积计算内核;宋宇鳏等人针对激活函数进行设计优化;王昆等人通过FPG软便件协同设计的异构系统加速神经网络;张榜通过双缓冲技术与流水线技术对卷积优化。本文针对卷积神经网络的并行性以及数据与权值的稀疏性,对卷积层和全连接层进行优化,根据卷积核的独立性设计单指令多数据(SingIeInstrucHo
3、nMu1tip1eData,迎MD)的卷积与流水线结构,提高计算速度与资源效率,利用全连接层数据极大的稀疏性,设计稀疏矩阵乘法器减少计算冗余,然后对模型参数定点优化,最后将实验结果与CPU、GPU平台以及基准设计进行比较分析。1、CNN模型与网络参数1.1CNN模型CNN是基于多层感知机的神经网络结构,典型的CNN模型由输入层、卷积层、全连接层、输出层和分类层组成,如图1所示。由输入层读取图像数据,由卷积层通过多个卷积核分别和输入图卷积生成多个特征图,再由池化层降维提取特征图信息。经过几个卷积层后,再将特征图展开成向量,输入给全连接层,经过全连接层与输出层的矩阵运算得到输出,然后再通过SOft
4、maX分类层得到分类概率输出。全连接层本文CNN模型结构如图2所示,该结构包含两个卷积层、两个池化层、一个全连接层,一个输出层、一个使用SOftmaX的分类层,其中激活函数不算作一层,共7层的网络结构。其中两个卷积层的输出特征图个数分别为16、32,卷积核大小为3X3,移动步长为1,输出尺寸与输入相同,系统使用线性修正单元(ReCtified1inearUnits,Re1U)作为激活函数。全连接层和输出层分别有1024和40个神经元。由图2计算得权值与偏置的数量,本文模型共4765416个参数,其中全连接层占了99%的参数。输入层输入(45,45,1)输出(45,45,1)二维卷积输入(45,
5、45,1)输出(45,45,16)二维卷枳输入(23,23,16)输出(23,23,32)激活函数输入(45,45,16)输出(45,45,16)I激活函数输入(23,23,32)输出(23,23,32)最大池化输入(45,45,16)输出(23,23,16)最大池化输入(23,23,32)输出(12,12,32)A全连接层输入(4608)输出(1024)1输出层输入(1024)瑜出(40)图2本文CNN网络模型结构由于分类层是用输出层的值通过SOftmaX函数求得每个分类的概率,而SOftmaX函数的运算消耗大量的运算资源,而且对结果没有影响,这是不必要的运算开销,因此用输出值来判别即可。1
6、. 2CNN网络参数根据所选的网络结构,本文使用TCnSorF1oW框架搭建模型,学习率设置为0.0001,使用自适应学习率优化算法国am加速模型收敛,训练选择Re1U激活函数增加模型参数的稀疏性,使用交叉端作为损失函数,加入12正则化项减小过拟合。训练了50轮后,模型在郎1人脸数据库的正确率达到95%,满足实际应用需要。神经网络模型推断降低一定的精度不会影响准确率,而且在FPGA上定点数比起浮点数的计算更有效率,所以将模型参数由32bit浮点数量化为16bit定点数,由深度压缩6中的方法,将16bit的定点数权值再用8bit的索引表示,索引表的值共28=256个,然后通过反向传播算法7更新索
7、引表后,将索引和索引表存在外部存储器中。2、CNN系统硬件设计本系统针对CNN模型结构以及数据与参数的特点进行设计和优化,卷积同一层内不同特征图的计算有天然的并行性,不同层之间因为不是独立的,无法同时进行计算,而全连接层和输出层都可以使用卷积层的PE来完成乘法运算。系统设计如图3所示。片外存储(输入数据)片外存储(Rfi)小百二内存按门输入缓存权值缓存J;处理单元卷积层处理单元池化层全连接层稀疏矩阵乘法器输出层控制器特征图缓存图3CNN系统硬件结构J首先通过控制器从外部存储器DDR3中读取图像数据到输入缓冲区,输入缓冲区通过移位寄存器设计,通过固定窗口读取数据。读取权值索引到权值缓冲区,然后由
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 器件 实现 CNN 加速 系统 硬件 设计