【技术实现步骤摘要】
一种基于FPGA的CNN_LSTM算法的神经网络加速器
[0001]本专利技术属于计算机硬件加速
,具体涉及到一种基于FPGA的CNN_LSTM算法的神经网络加速器的并行流水设计方法的研究。
技术介绍
[0002]目前,深度神经网络(DNN)的快速发展,在许多人工智能应用中取得了显著的成绩。卷积神经网络(CNN)在目标检测和图像分类方面做出了巨大贡献。递归神经网络(RNN)专注于时间序列问题,并在语音识别、数据预测中显示出巨大的优势。随着应用场景的多样化和复杂性,人们对时间序列预测方法研究的也不断深入,人们发现单纯的时间序列分析方法有一定的局限性。近年来出现了一种CNN
‑
RNN混合深度学习模型,它将CNN和RNN集成到一个网络框架中。在这些模型中,CNN负责提取网络特征,然后将其发送到RNN以建立序列联系,这在图像字幕、股票走势预测、锂电池荷电状态预测和视频检测中广泛使用。
[0003]目前,在FPGA上实现DNN已成为一个热门的研究方向,FPGA独特的架构使高性能、低功耗的深度学习加速器设计成为可能。CNN
‑
RNN混合深度神经网络加速器的研究越来越受到重视。与传统RNN网络相比,LSTM使用LSTM单元替换隐藏层节点,从而解决了传统RNN中的长期依赖问题。CNN具有提取输入数据显著特征的能力,而LSTM具有长短时记忆的特征。因此,CNN
‑
LSTM混合模型可以对输入数据在空间维度和时间维度上建立相关性。根据CNN和LSTM的网络特性,建立了基于 ...
【技术保护点】
【技术特征摘要】
1.一种基于FPGA的CNN_LSTM算法的神经网络加速器,其特征在于,包括:CPU:用于将输入数据通过传输数据总线发送到输入缓存模块,将权重、偏置参数发送给参数RAM模块中;总线:包括数据总线和控制总线,数据总线负责CPU与FPGA之间的数据传输;控制总线负责CPU与FPGA之间控制信号指令的传输;输入输出缓存:用于通过数据总线缓存CPU传送给FPGA的待处理数据和FPGA传送给CPU的处理完成的数据;CNN卷积运算模块:负责对输入缓存模块输入的数据与CNN权重偏置RAM的数据进行卷积、激活、池化逻辑运算;LSTM运算模块:负责对CNN卷积运算模块输出的数据与LSTM权重偏置RAM的数据进行乘累加逻辑运算;FC运算模块:负责对LSTM运算模块输出的数据与FC权重偏置RAM的数据进行乘累加逻辑运算。2.根据权利要求1所述的一种基于FPGA的CNN_LSTM算法的神经网络加速器,其特征在于,所述CNN卷积运算模块包括数据输入行缓存模块,卷积计算模块,Relu激活函数模块,中间结果缓存模块,池化计算模块;数据输入行缓存模块用于将输入缓存中数据缓冲成卷积核大小的一列,按列输入到卷积计算模块中进行乘累加计算;卷积计算模块用于提取数据的多种特征,卷积运算可以看作是由若干个乘累加计算组成,卷积就按得出的结果输入到激活函数模块;Relu激活函数模块用于增加神经网络各层之间的非线性关系,Relu激活函数由简单的比较器实现,通过激活函数的结果输入到中间结果缓存模块中用于下一层卷积计算,中间结果缓存模块用于存储加速器中间计算结果的模块,缓存的作用就是将上一层计算的数据存储起来,当下一层神经网络再次请求此数据时,直接从缓存中获取而省略数据处理流程,从而降低资源的消耗提高响应速度;池化计算模块用于对卷积层的输出特征数据进行进一步特征压缩,剔除冗余的特征信息,防止网络的过拟合化,使CNN模型具有更高的容错能力。3.根据权利要求1所述的一种基于FPGA的CNN_LSTM算法的神经网络加速器,其特征在于,所述LSTM运算模块包括LSTM控制模块,门函数计算模块,Sigmoid激活函数线性近似模块;LSTM控制模块用于控制LSTM模块的权重偏置的读取与数据流的传递,门函数计算模块用于实现LSTM模块中的乘加操作,计算出各个门的结果,Sigmoid激活函数线性近似模块用于实现Sigmoid激活函数的硬件近似,通过对Sigmoid激活函数的分段线性近似,对神经网络模型加入非线性因素,提高神经网络对模型的表达能力。4.根据权利要求1所述的一种基于FPGA的CNN_LSTM算法的神经网络加速器,其特征在于,所述FC运算模块包括FC控制模块、全连接层计算模块、Relu激活函数模块及数据输出缓存,FC控制模块用于控制FC模块的权重偏置的读取与数据流的传递,全连接层计算模块用于通过传统的乘加操作实现全连接层的向量内积计算,Relu激活函数模块用于增加神经网络各层之间的非线性关系,及数据输出缓存用于暂时存放加速器计算完成后送往CPU的数据。5.根据权利要求2所述的一种基于FPGA的CNN_LSTM算法的神经网络加速器,其特征在于,在CNN卷积运算模块的一个卷积层中,包含若干个特征平面,每个特征平面由一些矩形
排列的的神经元组成,同一特征平面的神经元共享权值,这里共享的权值就是卷积核;卷积核以随机小数矩阵的形式初始化,在网络的训练过程中卷积核将学习得到合理的权值;卷积层是构建卷积神经网络的核心层,它产生了网络中大部分的计算量;其中是卷积计算结果通过激活函数f的输出,是第l层卷积i行j列的权重,是输入,是卷积的偏置项,f是Relu激活函数;子采样也叫做池化(pooling),有均值子采样和最大值子采样两种...
【专利技术属性】
技术研发人员:王巍,夏旭,赵汝法,丁辉,刘斌政,稅绍林,
申请(专利权)人:重庆邮电大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。