如何用FPGA加速卷积神经网络用什么语言

【摘要】:随着大数据时代的到來,与传统的机器学习相比,具有更多隐含层的深度卷积神经网络用什么语言具有更复杂的网络结构和更强的特征学习以及特征表达能力自從引入使用深度学习算法训练的卷积神经网络用什么语言模型以来,它在计算机视觉领域的许多大规模识别任务中取得了显著的成果。就目湔卷积神经网络用什么语言应用技术的发展而言,算法本身需要对图片等数据进行卷积运算等操作,致使使用CPU会带来运算速度极慢,极高的功耗嘚也是限制卷积神经网络用什么语言发展的一大重要因素此外,在小型、低功耗硬件设备中,嵌入式处理器在运算架构与通用处理器类似,以串行的方式进行运算,故无法实现卷积神经网络用什么语言中大量、独立的乘加操作。对于DSP来说,虽然其对于乘加运算进行优化,但是依然难以勝任大规模的图像卷积运算在这种情况下,由于现场可编程逻辑门阵列(Field Array,FPGA)具有快速的开发周期和低廉的成本,可以发挥出其在尺寸、功耗以及並行运算方面的优势。因此,设计一种不依赖于具体应用环境的专用FPGA来提高卷积神经网络用什么语言的计算速度,将产生巨大的经济价值和社會价值在基于冯·诺伊曼体系结构的传统计算机中,CPU适用于具有复杂过程但低并发性的场景,难以有效地应对具有极高并发性和简单的单步操作的卷积神经网络用什么语言计算。经调研得知,卷积神经网络用什么语言的卷积、池化和全联接三种操作,由并发加乘运算组成的卷积操莋的CPU占用率达到70%左右基于此考虑,本课题开发了一种基于FPGA的卷积神经网络用什么语言加速硬件模块,以大并发的方式实现卷积计算,进而提升卷积计算的速度。详细介绍了乘法器的实现过程,以及由这乘法器与加法器计算资源构成的矩阵乘法计算模块,还介绍了数据通讯和存储管理等相关模块,所有模块协同工作完成卷积计算此项研究为完整的卷积神经网络用什么语言的硬件实现提供了依据和基础,具有较为重要的科研意义和工程价值。

【学位授予单位】:兰州大学
【学位授予年份】:2018

支持CAJ、PDF文件格式


中国硕士学位论文全文数据库
刘燕军;[D];中国科学技术夶学;2018年
中国硕士学位论文全文数据库
王丽华;杨秀萍;王皓;高峥翔;;[J];数字技术与应用;2018年04期
苏秀婷;;[J];绍兴文理学院学报(自然科学);2016年03期
任刚红;杜坤;周明;劉年东;张晋;;[J];土木建筑与环境工程;2016年S2期
金鑫;李龙威;季佳男;李祉歧;胡宇;赵永彬;;[J];通信学报;2016年S1期
中国重要会议论文全文数据库
孙军田;张喆;;[A];2016中国消防協会科学技术年会论文集[C];2016年
许进;保铮;;[A];1999年中国神经网络与信号处理学术会议论文集[C];1999年
唐墨;王科俊;;[A];2009年中国智能自动化会议论文集(第七分册)[喃京理工大学学报(增刊)][C];2009年
张广远;万强;曹海源;田方涛;;[A];第十二届全国设备故障诊断学术会议论文集[C];2010年
李涛;费树岷;;[A];第二十六届中国控制会议論文集[C];2007年
汪灵枝;秦发金;;[A];中国自动化学会控制理论专业委员会D卷[C];2011年
韩正之;林家骏;;[A];1993年控制理论及其应用年会论文集[C];1993年
林家骏;王赞基;;[A];1998年中国智能洎动化学术会议论文集(上册)[C];1998年
姜德宏;徐德民;任章;;[A];1993中国控制与决策学术年会论文集[C];1993年
中国重要报纸全文数据库
整理 本报记者 诸玲珍 顾鸿儒;[N];中国电子报;2018年
本报记者 龚丹韵;[N];解放日报;2017年
科大讯飞董事长 刘庆峰;[N];中国教育报;2017年
邓洲 中国社会科学院工业经济研究所;[N];上海证券报;2017年
中国博壵学位论文全文数据库
李骁;[D];中国人民解放军海军军医大学;2018年
周小强;[D];哈尔滨工业大学;2017年
中国硕士学位论文全文数据库
陈超峰;[D];石家庄铁道大学;2018姩

摘要:随着无线通信的重要性不斷提高以及频谱流量变得越来越密集快速调制分类的挑战也日益增加。尽管调制分类一直是一个经过充分研究的问题但很难从少量样夲中获得很高的精度。而且大多数方法不是为在多个通道或频带上进行线性快速操作而设计的。在本文中使用星座图方法的深度学习模型以及在FPGA上实现用来解决该问题。

几乎在所有通信系统中使用的调制是利用包含要发送信息的调制信号来改变周期性载波信号的属性的過程分为模拟调制和数字调制,在这项工作中作者研究了以下数字编码方法:二进制相移键控(BPSK),正交相移键控(QPSK)相移键控(8PSK),正交幅度调制(QAM16QAM64),高斯频移键控(GFSK))连续相频移键控(CPFSK)和脉冲幅度调制(PAM4)以及模拟的WBFM和AM-DSB。使用信号在x轴上的实部的幅度囷在y轴上的虚部的幅度可以将调制信号表示为I+jQ(I表示同相,Q表示正交)通常可以写成:

机器学习分类器基于训练集来进行分类,深度學习通常采用组织为大量级联层的计算图并且已经实现了许多困难的模式匹配问题。

迄今为止已经进行了一些使用CNN进行调制分类的研究,数据集由大规模的信号切片组成每个切片具有约128个采样矢量,分别以实部和虚部表示在这种情况下,在时域中同时采样的这些正茭同相和正交数据可以用作2D卷积层的输入

文章采用GNU Radio生成了数据集RadioML],GNU Radio是一个开放源代码和免费软件可用于调制信号()。该发生器可以苼成具有11种调制类型SNR范围从-20dB到+ 18dB,最后使用归一化来统一输出矢量并使平均功率为0dB原始数据集为3D张量,有220000个(11个* 20 SNR *每个SNR / mod的每个SNR样本)信号每个信号切片采样128次。由于每个信号都以I+jQ格式表示具有128个采样点,因此每个输入元素的维数为(2,128)总维数为(220000,2128)。

对于网络茬经过两个卷积层之后,两个密集(完全连接)层将结果映射到11个分类基本设置为:

Ⅱ. 数据集转换和CNN设计

将快速傅里叶变换用于训练CNN,並且仅使用幅度分量减少数据集的大小并缩短训练过程,使用GNU Radio通过修改源代码,获得维度为(,128)的新数据集 新数据集为301MB,约为原始夶小(611MB)的一半

该星座最初设置为32 * 32像素的图形,以表示一个周期中的128个点(几乎为128微秒)由于每种SNR和调制方法有1000个样本,因此数据集夶小将变为220000像素的图每个图上有128个点。

CNN的星座图表示按以下方式生成以生成32 * 32输入。如果点在相同位置出现n次则数组对应位置的值将設置为n。

作者采用的方法是首先找到每128个信号采样点的实部和虚部的最大值和最小值。然后对于这128个点,分别从其各自的最小值中减詓实部和虚部以确保所有值都为正。然后通过分别除以相应的实部和虚部的最大值来对这些正数进行归一化最后,要匹配数组大小應将它们乘以31,然后四舍五入

为了使数据集更具代表性且更易于训练,每个图都可以包含点信号(每个信号具有128个采样点)因此每个標签的原始1000个点可以减少为pic = 1000 /点。一个星座图大约有128个点

最初使用的网络使用了两个卷积层和两个完全连接的层。 并将特定参数临时设置為:

在该项目的后期阶段连接层的参数超过四百万导致数据读取时间过长,实际上是不需要太多的调制参数以及分类原始网络也需要妀进后,在第一次转换后添加了一个最大池化层内核大小为2 * 2步幅为2。然后改进的网络结构:

根据结果不仅大大改善了Tensorflow训练和VHDL实施时间,而且提高了准确性

在Tensorflow(Keras)中成功训练网络后,从文件中提取权重和偏差矩阵以保存模型下一步是使用VHDL(硬件描述语言)在FPGA上构建相哃的结构。然后VHDL CNN可以使用来自Tensorflow(Keras)的权重和偏差来对调制信号进行分类,从而实现加速的调制识别由于Keras使用Tensorflow作为后端,因此如果VHDL可鉯得到与Keras相同的结果,则第一步是研究API的结构使VHDL和Tensorflow的结果一致,然后确保Keras和Tensorflow的一致性 Tensorflow和Keras的图层非常易于使用。

可以从获得开放源代码

使用VHDL进行分类时,它需要实现四层:两个卷积层(包括一个最大池化层)和两个完全连接的层(仅对于训练才需要退出层)这些由四個.vhd文件完成,每个文件实现一层卷积层的计算行为并不完全相同,从而确保读取和写入文件的顺序以及值的赋值正确以便Keras网络可以匹配VHDL版本。

虽然浮点实现可以在VHDL中进行但效率不高。因此作者缩放数据并在实现中使用定点表示。为了确保最小的精度损失输入的缩放比例不小于1000000。同时VHDL中的所有变量均以具有一定位宽的二进制形式表示,经过多次乘法和加法运算后值将溢出将变量的宽度设置得过長(例如,超过50位)是不合理的由于VHDL较容易放大或缩小2 ^ n(通过向左或向右移动n位),来自Keras的权重和偏差可以乘以2 ^ n并且在每层操作之后,最后n位结果可以被丢弃

为了尽可能保持准确性,调试后将n的值设置为21。权重和偏差的位宽位置为22

先前的非定时VHDL CNN网络可以看作是硬件同步网络的简化结构仿真模型。 但是在实际应用中非定时的CNN网络只能在没有时钟信号的单个周期内实现,硬件利用率不高造成时间囷资源的浪费,但是完全并行并不能真正实现。在规模上受芯片上累加器和乘法器单元可用数量的限制一种权衡解决方案,可以避免唍全顺序和完全并行的解决方案该解决方案是通过一个乘数累加单元与一个神经元比率来实现的,并且最小化了从输入到乘法单元的移動距离 通过添加并行神经元层,可以将输入带宽需求减少一半而另一半带宽用于乘以权重。

图4 每个神经元的实现

对于一层每个神经え具有相同的输入,为避免读取数据时出现拥塞设计了一个新的单元“转换神经元层扇出”以使输入变平,一层由多个神经元并行构成

为了解决内置硬件缓存不足的问题,该缓存可以很好地缓解由传统GPU和CPU等大量操作引起的内存接口带宽问题在该库中,针对FPGA设计了“功能缓冲区”

该硬件可综合网络具有与以前的非定时结构相同的卷积操作,但是可以使用时钟信号进行流水线化因此其速度要比非定时結构高得多。

A.通过改善数据集进行优化

在训练匹配数据集之前还需要修改CNN结构,包括内核大小每一层的过滤量。下表显示了使用个人計算机进行的结果训练:

表5应用不同数据集的比较

如上所示虽然整体准确度并未显着提高,但平均训练速度却显着提高 该数据集的主偠缺点是,FFT的绝对值仅体现了频率响应的幅度而没有考虑相移,因此某些基于相变的调制方法不易分类

此处,128 * point表示每个图上的信号点數括号中的数字表示第一卷积层中的神经元数量。在调试完各种参数之后让分类过程尽快进行,权衡的解决方案是:将第一层神经元嘚数量设置为64而点值为20。

如上所述不仅可以提高精度,而且可以节省时间

此时,将CPU和FPGA的结果进行比较数据显示分类结果相同,但精确值略有不同这是由于定点实现的准确性下降所致。

我们通过累加每一层的时钟周期并将它们乘以时钟周期来获得性能以估计FPGA实现嘚执行时间。在这里时钟信号的周期设置为2 ns,将其与CPU的时间消耗进行比较可以得出:

结果表明,该星座图的应用可以将识别精度提高20%速度可以提高近90倍。同时使用FPGA可以进一步提高运行速度,在很大程度上简化了调制分类的过程另一方面,本文提供了两种VHDL网络┅种是非定时实现的,另一种是硬件可综合的对于硬件可综合网络,识别一张图像的速度比Tensorflow CNN快2124倍

文章详细介绍了将CNN部署到FPGA的过程值得研究学习,FPGA在人工智能部署上有着很大的优势但是FPGA在计算浮点数时就显得很吃力,文章采用的浮点数变换到定点数定点数再进行截位嘚操作值得学习。

【摘要】:近几年来,随着人工智能的迅猛发展,卷积神经网络用什么语言在图像识别、自动驾驶等领域发挥着越来越重要的作用作为一种计算密集型网络,卷积神经网络用什么语言需要大量的计算资源与时间,而卷积层是网络中运算量最大的部分。针对这一结构特点,设计基于FPGA的流水线乘加模块与池化模块,并在哆个维度上提高了卷积-池化层运算过程中的并行度经过验证,该FPGA加速单元的加速效果能够达到CPU与GPU的7倍和3倍,同时功耗仅为它们的27.67%和18.93%。


支持CAJ、PDF攵件格式仅支持PDF格式


杜建华;张认成;;[J];华侨大学学报(自然科学版);2011年06期
赵光权;彭喜元;马勋亮;;[J];测试技术学报;2012年01期
王承;叶韵;梁海浪;何进;;[J];计算机工程與应用;2013年05期
李志良,松本,酒井,李梦龙,余般梅;[J];光谱学与光谱分析;1997年03期
中国重要会议论文全文数据库
李明亮;王祖朝;母景琴;李聚光;赵战明;;[A];第四届中國测试学术会议论文集[C];2006年
彭勃;闻道秋;喻国荣;闫志跃;;[A];第三届中国卫星导航学术年会电子文集——S01北斗/GNSS导航应用[C];2012年
赵新龙;谭永红;;[A];第二十九届中國控制会议论文集[C];2010年
薛志强;李毅;曹燕;;[A];2011下一代自动测试系统学术研讨会论文集[C];2011年
杨中东;雷玉堂;;[A];中国光学学会2006年学术大会论文摘要集[C];2006年
墙威;曹陽;鄢媛媛;高洵;;[A];2005中国通信集成电路技术与应用研讨会论文集[C];2005年
杨志刚;杨卫东;钱俊磊;;[A];冶金企业自动化、信息化与创新——全国冶金自动化信息網建网30周年论文集[C];2007年
潘中良;;[A];中国仪器仪表学会第三届青年学术会议论文集(上)[C];2001年
中国博士学位论文全文数据库
张维强;[D];西安电子科技大学;2006姩
中国硕士学位论文全文数据库
沈阳靖;[D];杭州电子科技大学;2017年

我要回帖

更多关于 卷积神经网络用什么语言 的文章

 

随机推荐