CN112749799B - 基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法 - Google Patents

基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法 Download PDF

Info

Publication number
CN112749799B
CN112749799B CN202011637130.8A CN202011637130A CN112749799B CN 112749799 B CN112749799 B CN 112749799B CN 202011637130 A CN202011637130 A CN 202011637130A CN 112749799 B CN112749799 B CN 112749799B
Authority
CN
China
Prior art keywords
relu
layer
frequency domain
neural network
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011637130.8A
Other languages
English (en)
Other versions
CN112749799A (zh
Inventor
刘双龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan Normal University
Original Assignee
Hunan Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hunan Normal University filed Critical Hunan Normal University
Priority to CN202011637130.8A priority Critical patent/CN112749799B/zh
Publication of CN112749799A publication Critical patent/CN112749799A/zh
Application granted granted Critical
Publication of CN112749799B publication Critical patent/CN112749799B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法,其中硬件加速器包括FPGA加速模块、主机CPU和DDR,FPGA包括直接片外访问单元、共享片上内存、频域卷积模块和频域ReLU模块;主机CPU对数据进行FFT和IFFT变换及传送各激活层的参数选址信号,FPGA使用FFT变换后的权值对FFT变换后的输入数据在全频域进行卷积层和ReLU激活层操作,其中各ReLU激活层的参数根据该层训练的输入信息范围进行设置,将最终的操作结果返回给主机CPU进行IFFT变换,作为卷积神经网络的输出结果。本发明可以提高卷积神经网络输出结果的精度和硬件实现效率。

Description

基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速 方法和图像分类方法
技术领域
本发明属于人工智能和数据处理技术领域,具体涉及一种基于自适应ReLU的的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法。
背景技术
目前卷积神经网络(CNN)已经被广泛应用于图像分类,目标识别,人脸检测,语义分割等实时处理系统中。卷积神经网络主要由卷积层组成,另外还包含有池化层(下采样层),非线性激活函数,全连接层等。由于卷积神经网络算法的计算量相对于传统算法特别大,并且具有高度的并行性,基于现场可编程门阵列(FPGA)的硬件加速器得到了人们的广泛研究和应用。
由于CNN的主要计算量集中在卷积层,基于频域的卷积运算能够将空间域的矩阵卷积操作(convolution)转换成按元素乘法(element-wise product),从而极大的降低了卷积层的计算量。基于频域卷积的神经网络加速器得到了广泛关注。
然而由于激活函数的非线性,不能对应到频域的运算,因此已有的加速器即使在频域能够实现卷积加速,但是完成每层卷积操作后,需要回到空间域,进行池化层和非线性激活层的运算。这会带来更多的傅里叶变换和逆变换操作,从而降低算法的速度,使得加速比十分有限。
基于此,已有研究者提出了全频域卷积网络的技术,将卷积神经网络的全部运算在频域执行,从而避免重复的傅里叶变换和逆变换。然而已有方案仅仅解决了池化层在频域的运算问题。对于非线性激活函数,已有研究者利用线性函数近似,从而导致网络的非线性特点缺失,对精度带来影响。同时,线性近似仅仅能应用于sigmod,tanh等函数,并不能应用于被CNN广泛使用的ReLU函数。
发明内容
本发明提供一种基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法,可以提高卷积神经网络输出结果的精度和硬件实现效率。
为实现上述技术目的,本发明采用如下技术方案:
一种基于自适应ReLU的全频域卷积神经网络的硬件加速器,所述全频域卷积神经网络的ReLU激活层采用改进的激活函数,其空间域函数表达式为:
R(x)=p0+p1×x+p2×x2
其中,x为ReLU激活层的输入数据,p0为DC值,设置为p0=0,p1和p2为激活函数的2个参数;
所述硬件加速器包括主计算机模块和FPGA加速模块,所述主计算机模块包括主机CPU和DDR,所述FPGA包括直接片外访问单元、共享片上内存、频域卷积模块和频域ReLU模块;其中:
所述主机CPU,用于将卷积神经网络的输入数据进行FFT变换,并将FFT变换后的输入数据、离线FFT转换好的各卷积层的权值以及各ReLU激活层的参数选址信号存入DDR;
所述直接片外访问单元,用于将DDR中存储的FFT变换后的输入数据、卷积神经网络各卷积层的权值和各ReLU激活层的参数选址信号,读取到共享片上内存;
所述频域卷积模块和频域ReLU模块,共用所述共享片上内存进行数据存取,分别在频域执行卷积层操作和激活层操作;所述频域ReLU模块在频域执行ReLU激活层操作表示为:
Figure BDA0002876833790000021
式中,F代表傅里叶变换,
Figure BDA0002876833790000022
代表卷积操作;
所述频域ReLU模块包括参数配置单元,用于根据各ReLU激活层的参数选址信号,分别对不同ReLU激活层的参数p1和p2进行相应设置;
所述直接片外访问单元,还用于读取共享片上内存上最终得到的操作结果,并发送给DDR;
所述主机CPU,还用于从DDR上读取FPGA发送的操作结果,并进行IFFT变换得到卷积神经网络的输出结果。
在更优的技术方案中,所述频域ReLU模块将每个ReLU激活层的参数p1和p2均分解为多个2的幂的和的形式,从而表达式中有关p1的乘法和有关p2的乘法操作,均转换为FPGA硬件上的移位与加法操作;所述频域ReLU模块包括点乘模块和加法器,所述点乘模块用于在频域执行卷积操作,且移位操作直接由FPGA的逻辑资源实现。
在更优的技术方案中,全频域卷积神经网络的所有ReLU激活层采用不同的参数p1和p2,均采用离线方式根据卷积神经网络训练中获得的ReLU激活层自身的输入范围信息,通过曲线拟合工具拟合得到,进而在主机CPU相应设置参数选址信号。
在更优的技术方案中,所述全频域卷积神经网络将BN层融合到卷积层,同时将卷积神经网络内部各层结构的执行顺序设置为:卷积层—>最大池化层—>ReLU激活层,并且在频域将卷积层与最大池化层合并。
在更优的技术方案中,当频域卷积模块将某个卷积层的第一个filter的结果存入共享片上内存时,频域ReLU模块立即从共享片上内存读取第一个filter的结果,并开始执行该卷积层的下一个ReLU激活层操作;当频域ReLU模块将某个ReLU激活层的第一个channel的结果存入共享片上内存、且该ReLU激活层的上一个卷积层执行完毕时,频域卷积模块立即从共享片上内存读取第一个channel的结果,并开始执行该ReLU激活层的下一个卷积层操作。
一种基于FPGA的全频域卷积神经网络的硬件加速方法,所述全频域卷积神经网络的ReLU激活层采用改进的激活函数,其空间域函数表达式为:
R(x)=p0+p1×x+p2×x2
其中,x为ReLU激活层的输入数据,p0为DC值,设置为p0=0,p1和p2为ReLU函数的2个参数;
所述硬件加速方法包括:
主机CPU将卷积神经网络的输入数据进行FFT变换,并将FFT变换后的输入数据和离线FFT转换好的各卷积层的权值一起存入DDR;
直接片外访问单元将DDR中存储的FFT变换后的输入数据、神经网络各卷积层的权值以及各ReLU激活层的参数选址信号,读取到共享片上内存;
频域卷积模块从共享片上内存读取第一卷积层的权值和输入数据,并在频域执行第一卷积层操作,然后将操作结果存回共享片上内存;
频域ReLU模块从共享片上内存读取第一卷积层的操作结果和第一ReLU激活层的参数选址信号,并在频域执行其第一ReLU激活层操作,然后将操作结果存回共享片上内存;
频域卷积模块从共享片上内存读取其他卷积层的权值和上一个ReLU激活层的操作结果,并在频域执行卷积神经网络的其他卷积层操作,然后将操作结果存回共享片内存;其他卷积层是指卷积神经网络除第一卷积层之外的卷积层;
频域ReLU模块从共享片上内存读取其他ReLU激活层的参数选址信号和上一个卷积层的操作结果,并在频域执行卷积神经网络的其他ReLU激活层操作,然后将操作结果存回共享片上内存;
其中,频域ReLU模块在频域执行各ReLU激活层操作,具体为:首先根据各ReLU激活层的参数选址信号确定参数p1和p2,然后基于确定的参数p1和p2执行各ReLU激活层操作:
Figure BDA0002876833790000041
式中,F代表傅里叶变换,
Figure BDA0002876833790000042
代表卷积操作;直接片外访问单元读取共享片上内存上最终得到的操作结果并发送给DDR;
主机CPU从DDR上读取FPGA发送的操作结果,并进行IFFT变换得到卷积神经网络的输出结果。
在更优的技术方案中,全频域卷积神经网络的所有ReLU激活层采用不同的参数p1和p2,均采用离线方式根据卷积神经网络训练中获得的ReLU激活层自身的输入范围信息,通过曲线拟合工具拟合得到,进而在主机CPU相应设置参数选址信号。
在更优的技术方案中,所述全频域卷积神经网络将BN层融合到卷积层,同时将卷积神经网络内部各层结构的执行顺序设置为:卷积层—>最大池化层—>ReLU激活层,并且在频域将卷积层与最大池化层合并。
在更优的技术方案中,当频域卷积模块将某个卷积层的第一个filter的结果存入共享片上内存时,频域ReLU模块立即从共享片上内存读取第一个filter的结果,并开始执行该卷积层的下一个ReLU激活层操作;当频域ReLU模块将某个ReLU激活层的第一个channel的结果存入共享片上内存、且该ReLU激活层的上一个卷积层执行完毕时,频域卷积模块立即从共享片上内存读取第一个channel的结果,并开始执行该ReLU激活层的下一个卷积层操作。
一种采用卷积神经网络进行图像分类的方法,使用训练好的卷积神经网络并采用上述任一所述硬件加速方法对图像进行分类。
有益效果
1、本发明采用改进的ReLU函数,其中的参数p1和p2可以根据卷积神经网络不同的输入数据集进行相应的优化选择,而且每个ReLU激活层的参数p1和p2均可根据训练得到的自身ReLU激活层的输入范围信息进行相应设置,可以提高卷积神经网络输出结果的精度。
2、卷积神经网络各ReLU激活层的参数p1和p2,均采用离线方式根据卷积神经网络训练中获得的ReLU激活层自身的输入范围信息通过曲线拟合工具拟合得到,进而在主机CPU相应设置参数选址信号,FPGA只需要从主机CPU获取到参数选址信号然后采用选择器即可得到相应的参数值,不会带来额外的计算量。
3、本发明中的频域卷积模块和频域ReLU模块支持并行和流水计算,最大的发挥了计算效率;
4、本发明将卷积神经网络的BN层融合进卷积层,频域将卷积层与最大池化层合并,在ReLU激活层之前即进行最大池化操作,从而可以大幅度降低ReLU激活层的输入数据数目,从而降低整个卷积神经网络网络在频域的计算量,计算效率更高。
附图说明
图1是本发明实施例所述硬件加速器的构成图;
图2是本发明实施例所述频域卷积模块的构成示意图;
图3是本发明实施例所述频域ReLU模块的构成示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例以本发明的技术方案为依据开展,给出了详细的实施方式和具体的操作过程,对本发明的技术方案作进一步解释说明。
实施例1
本实施例1提供一种基于自适应ReLU的全频域卷积神经网络的硬件加速器,如图1所示,包括主计算机模块和FPGA加速模块,所述主计算机模块包括主机CPU和DDR,所述FPGA包括直接片外访问单元、共享片上内存、频域卷积模块和频域ReLU模块;其中:
所述主机CPU,用于将输入数据和卷积神经网络各卷积层的权值进行FFT变换,并将FFT变换后的输入数据、离线FFT转换好的各卷积层的权值以及各ReLU激活层的参数选址信号存入DDR;还用于从DDR上读取FPGA发送的操作结果,并进行IFFT变换得到卷积神经网络的输出结果。另外,主机CPU还可以向FPGA加速模块提供时钟源,并发送控制指令。其中的输入数据可以是基于卷积神经网络进行图像识别的图像等数据,输出结果为图像识别得到的具体识别值。
所述直接片外访问单元,用于将DDR中存储的FFT变换后的输入数据、卷积神经网络各卷积层的权值和各ReLU激活层的参数选址信号,读取到共享片上内存;还用于读取共享片上内存上最终得到的操作结果,并发送给DDR。
所述频域卷积模块由一系列MAC单元构成,如图2所示,用于从共享片上内存读取输入数据和第一卷积层的权值,并通过在频域执行乘法累加以执行卷积神经网络的第一卷积层操作,然后将操作结果存回共享片上内存;还用于从共享片上内存读取上一个ReLU激活层的操作结果和其他卷积层(卷积神经网络除第一卷积层之外的卷积层)的权值,并通过在频域执行乘法累加以执行卷积神经网络的其他卷积层操作,然后将操作结果存回共享片内存。
所述频域ReLU模块,用于从共享片上内存读取各卷积层的操作结果和各ReLU激活层的参数选址信号,并在频域执行各ReLU激活层操作,然后将操作结果存回共享片上内存;
卷积神经网络中常用的空间域ReLU函数为F(x)=max(0,x),空间域的ReLU函数简单易实现,然而并没有对应到频域的函数形式。因此,本发明利用二次函数对现有的ReLU函数进行近似,具体形式为:
R(x)=p0+p1×x+p2×x2
因此对应到本发明中,即频域ReLU模块执行ReLU激活层操作表示为:
Figure BDA0002876833790000061
其中,x为ReLU激活层的输入数据,p0为DC值,设置为p0=0,p1和p2为需要调优的参数,F代表傅里叶变换,
Figure BDA0002876833790000062
代表卷积操作。
本实施例中,全频域卷积神经网络的所有ReLU激活层采用不同的参数p1和p2,均采用离线方式根据卷积神经网络训练中获得的ReLU激活层自身的输入范围信息,通过曲线拟合工具(Matlab Curve Fitting Toolbox)拟合得到,进而在主机CPU相应设置参数选址信号。频域ReLU模块包括参数配置单元,用于根据各ReLU激活层的参数选址信号,分别对不同ReLU激活层的参数p1和p2进行相应设置。
ReLU模块在频域执行各ReLU激活层操作时,参数配置单元接收该ReLU激活层的参数选址信号,然后将各ReLU激活层的参数p1和p2分解为多个2的幂的和的形式,从而将空间域函数表达式中有关p1的乘法和有关p2的乘法操作,均转换为FPGA硬件上的移位与加法操作;比如其中的p1表示为2-i+2-j,则p1×x转换为x>>i+x>>j,其中>>表示右移。最终,通过图3所示的点乘模块、若干加法器以及FPGA自身逻辑资源实现的移位操作,FPGA的频域ReLU模块即可执行完成ReLU激活层操作
Figure BDA0002876833790000071
本实施例2采用改进的ReLU函数,其中的参数p1和p2可以根据卷积神经网络不同的输入数据集进行相应的优化选择,而且每个ReLU激活层的参数p1和p2均可根据训练得到的自身ReLU激活层的输入范围信息进行相应设置,可以提高卷积神经网络输出结果的精度。而且,卷积神经网络各ReLU激活层的参数p1和p2,均采用离线方式根据卷积神经网络训练中获得的ReLU激活层自身的输入范围信息通过曲线拟合工具拟合得到,进而在主机CPU相应设置选址信号,FPGA只需要从主机CPU获取到选址信号然后采用选择器即可得到相应的参数值,不会带来额外的计算量。
在更优的硬件加速器实施例中,当频域卷积模块将某个卷积层的第一个filter的结果存入共享片上内存时,频域ReLU模块立即从共享片上内存读取第一个filter的结果,并开始执行该卷积层的下一个ReLU激活层操作;当频域ReLU模块将某个ReLU激活层的第一个channel的结果存入共享片上内存、且该ReLU激活层的上一个卷积层执行完毕时,频域卷积模块立即从共享片上内存读取第一个channel的结果,并开始执行该ReLU激活层的下一个卷积层操作。因此,该更优实施例通过频域ReLU模块与频域卷积模块并行和流水工作,从而最大地发挥了计算效率。
在更优的实施例中,除了将卷积神经网络的BN层融合进卷积层之外,同时将卷积神经网络内部各层结构的执行顺序设置为:卷积层—>最大池化层—>ReLU激活层,替代现有的空间域执行顺序(即卷积层—>ReLU激活层—>最大池化层),并且在频域将卷积层与最大池化层合并,在ReLU激活层之前即进行最大池化操作,从而可以大幅度降低ReLU激活层的输入数据数目,从而降低整个卷积神经网络网络在频域的计算量。
实施例2
本实施例2提供一种基于FPGA的全频域卷积神经网络的硬件加速方法,包括以下步骤:
步骤S1,主机CPU将卷积神经网络的输入数据和卷积神经网络各卷积层的权值进行FFT变换,并将FFT变换后的输入数据和离线FFT转换好的各卷积层的权值存入DDR;其中的输入数据可以是基于卷积神经网络进行图像识别的图像等数据。
步骤S2,直接片外访问单元将DDR中存储的FFT变换后的输入数据及神经网络各层的权值,读取到共享片上内存;
步骤S3,频域卷积模块从共享片上内存读取第一卷积层的权值和卷积神经网络的输入数据,并在频域执行第一卷积层操作,然后将操作结果存回共享片上内存;
步骤S4,频域ReLU模块从共享片上内存读取第一卷积层的操作结果和第一ReLU激活层的参数选址信号,并在频域执行其第一ReLU激活层操作,然后将操作结果存回共享片上内存;
步骤S5,频域卷积模块从共享片上内存读取其他卷积层的权值和上一个ReLU激活层的操作结果,并在频域执行卷积神经网络的其他卷积层操作,然后将操作结果存回共享片内存;其他卷积层是指卷积神经网络除第一卷积层之外的卷积层;
步骤S6,频域ReLU模块从共享片上内存读取其他ReLU激活层的参数选址信号和上一个卷积层的操作结果,并在频域执行卷积神经网络的其他ReLU激活层操作,然后将操作结果存回共享片上内存;
步骤S7,重复执行步骤S5和步骤S6,直到所有卷积层和ReLU激活层执行完毕,最后结果写入DDR;
步骤S8,直接片外访问单元读取共享片上内存上最终得到的操作结果并发送给DDR;
步骤S9,主机CPU从DDR上读取FPGA发送的操作结果,并进行IFFT变换得到卷积神经网络的输出结果。
在本实施例2中,卷积神经网络的ReLU激活层采用改进的激活函数,利用二次函数对现有的ReLU函数进行近似,具体形式为:
R(x)=p0+p1×x+p2×x2
因此对应到本发明中,即频域ReLU模块执行ReLU激活层操作表示为:
Figure BDA0002876833790000081
其中,x为ReLU激活层的输入数据,p0为DC值,设置为p0=0,p1和p2为需要调优的参数,F代表傅里叶变换,
Figure BDA0002876833790000082
代表卷积操作。
本实施例中,全频域卷积神经网络的所有ReLU激活层采用不同的参数p1和p2,均采用离线方式根据卷积神经网络训练中获得的ReLU激活层自身的输入范围信息,通过曲线拟合工具(Matlab Curve Fitting Toolbox)拟合得到,进而在主机CPU相应设置参数选址信号。频域ReLU模块包括参数配置单元,用于根据各ReLU激活层的参数选址信号,分别对不同ReLU激活层的参数p1和p2进行相应设置。
ReLU模块在频域执行各ReLU激活层操作时,参数配置单元接收该ReLU激活层的参数选址信号,然后将各ReLU激活层的参数p1和p2分解为多个2的幂的和的形式,从而将空间域函数表达式中有关p1的乘法和有关p2的乘法操作,均转换为频域的移位与加法操作;比如其中的p1表示为2-i+2-j,则可将p1×x转换到频域表示x>>i+x>>j,其中>>表示右移。最终,通过图3所示的点乘模块、若干加法器以及FPGA自身逻辑资源实现的移位操作,频域ReLU模块即可执行完成ReLU激活层操作
Figure BDA0002876833790000091
本实施例2采用改进的ReLU函数,其中的参数p1和p2可以根据卷积神经网络不同的输入数据集进行相应的优化选择,而且每个ReLU激活层的参数p1和p2均可根据训练得到的自身ReLU激活层的输入范围信息进行相应设置,可以提高卷积神经网络输出结果的精度。而且,卷积神经网络各ReLU激活层的参数p1和p2,均采用离线方式根据卷积神经网络训练中获得的ReLU激活层自身的输入范围信息通过曲线拟合工具拟合得到,进而在主机CPU相应设置选址信号,FPGA只需要从主机CPU获取到选址信号然后采用选择器即可得到相应的参数值,不会带来额外的计算量。
另外,本实施例2中的频域卷积模块由一系列MAC单元构成,如图2所示,用于从共享片上内存读取输入数据和第一卷积层的权值,并通过在频域执行乘法累加以执行卷积神经网络的第一卷积层操作,然后将操作结果存回共享片上内存;还用于从共享片上内存读取上一个ReLU激活层的操作结果和其他卷积层(卷积神经网络除第一卷积层之外的卷积层)的权值,并通过在频域执行乘法累加以执行卷积神经网络的其他卷积层操作,然后将操作结果存回共享片内存。
在更优的实施例中,当频域卷积模块在步骤S3将第一卷积层的第一个filter的结果存入共享片上内存时(此时频域ReLU模块空置),或者当频域卷积模块在步骤S5将其他卷积层的第一个filter的结果存入共享片上内存、且该卷积层的上一个ReLU激活层通过步骤S4或步骤S6执行完毕(此时频域ReLU模块空置)时,频域ReLU模块在步骤S4或步骤S6立即从共享片上内存读取第一个filter的结果,并开始执行该卷积层的下一个ReLU激活层操作。
当频域ReLU模块在步骤S4或步骤S6将某个ReLU激活层的第一个channel的结果存入共享片上内存、且该ReLU激活层的上一个卷积层通过步骤S3或步骤S5执行完毕(即此时频域卷积模块空置)时,频域卷积模块立即从共享片上内存读取该ReLU激活层的第一个channel的结果,并重复步骤S5重新开始执行该ReLU激活层的下一个卷积层操作。
因此在该更优实施例中,步骤S4与步骤S3基本上可以实现重叠计算,同时步骤S6与步骤S5也基本上可以实现重叠计算,相当于频域ReLU模块与频域卷积模块并行和流水工作,从而最大地发挥了计算效率。
实施例3
本实施例3提供一种采用卷积神经网络进行图像分类的方法,使用训练好的卷积神经网络并采用实施例2所述的硬件加速方法对图像进行分类,具体可以是图像人脸识别、图像文字识别等。
以上实施例为本申请的优选实施例,本领域的普通技术人员还可以在此基础上进行各种变换或改进,在不脱离本申请总的构思的前提下,这些变换或改进都应当属于本申请要求保护的范围之内。

Claims (10)

1.一种基于自适应ReLU的全频域卷积神经网络的硬件加速器,其特征在于,所述全频域卷积神经网络的ReLU激活层采用改进的激活函数,其空间域函数表达式为:
R(x)=p0+p1×x+p2×x2
其中,x为ReLU激活层的输入数据,p0为DC值,设置为p0=0,p1和p2为激活函数的2个参数;
所述硬件加速器包括主计算机模块和FPGA加速模块,所述主计算机模块包括主机CPU和DDR,所述FPGA包括直接片外访问单元、共享片上内存、频域卷积模块和频域ReLU模块;其中:
所述主机CPU,用于将卷积神经网络的输入数据进行FFT变换,并将FFT变换后的输入数据、离线FFT转换好的各卷积层的权值以及各ReLU激活层的参数选址信号存入DDR;
所述直接片外访问单元,用于将DDR中存储的FFT变换后的输入数据、卷积神经网络各卷积层的权值和各ReLU激活层的参数选址信号,读取到共享片上内存;
所述频域卷积模块和频域ReLU模块,共用所述共享片上内存进行数据存取,分别在频域执行卷积层操作和激活层操作;所述频域ReLU模块在频域执行ReLU激活层操作表示为:
Figure FDA0002876833780000011
式中,F代表傅里叶变换,
Figure FDA0002876833780000012
代表卷积操作;
所述频域ReLU模块包括参数配置单元,用于根据各ReLU激活层的参数选址信号,分别对不同ReLU激活层的参数p1和p2进行相应设置;
所述直接片外访问单元,还用于读取共享片上内存上最终得到的操作结果,并发送给DDR;
所述主机CPU,还用于从DDR上读取FPGA发送的操作结果,并进行IFFT变换得到卷积神经网络的输出结果。
2.根据权利要求1所述的硬件加速器,其特征在于,所述频域ReLU模块将每个ReLU激活层的参数p1和p2均分解为多个2的幂的和的形式,从而表达式中有关p1的乘法和有关p2的乘法操作,均转换为FPGA硬件上的移位与加法操作;所述频域ReLU模块包括点乘模块和加法器,所述点乘模块用于在频域执行卷积操作,且移位操作直接由FPGA的逻辑资源实现。
3.根据权利要求1所述的硬件加速器,其特征在于,全频域卷积神经网络的所有ReLU激活层采用不同的参数p1和p2,均采用离线方式根据卷积神经网络训练中获得的ReLU激活层自身的输入范围信息,通过曲线拟合工具拟合得到,进而在主机CPU相应设置参数选址信号。
4.根据权利要求1所述的硬件加速器,其特征在于,所述全频域卷积神经网络将BN层融合到卷积层,同时将卷积神经网络内部各层结构的执行顺序设置为:卷积层—>最大池化层—>ReLU激活层,并且在频域将卷积层与最大池化层合并。
5.根据权利要求1-4任一所述的硬件加速器,其特征在于,当频域卷积模块将某个卷积层的第一个filter的结果存入共享片上内存时,频域ReLU模块立即从共享片上内存读取第一个filter的结果,并开始执行该卷积层的下一个ReLU激活层操作;当频域ReLU模块将某个ReLU激活层的第一个channel的结果存入共享片上内存、且该ReLU激活层的上一个卷积层执行完毕时,频域卷积模块立即从共享片上内存读取第一个channel的结果,并开始执行该ReLU激活层的下一个卷积层操作。
6.一种基于FPGA的全频域卷积神经网络的硬件加速方法,其特征在于,所述全频域卷积神经网络的ReLU激活层采用改进的激活函数,其空间域函数表达式为:
R(x)=p0+p1×x+p2×x2
其中,x为ReLU激活层的输入数据,p0为DC值,设置为p0=0,p1和p2为ReLU函数的2个参数;
所述硬件加速方法包括:
主机CPU将卷积神经网络的输入数据进行FFT变换,并将FFT变换后的输入数据和离线FFT转换好的各卷积层的权值一起存入DDR;
直接片外访问单元将DDR中存储的FFT变换后的输入数据、神经网络各卷积层的权值以及各ReLU激活层的参数选址信号,读取到共享片上内存;
频域卷积模块从共享片上内存读取第一卷积层的权值和输入数据,并在频域执行第一卷积层操作,然后将操作结果存回共享片上内存;
频域ReLU模块从共享片上内存读取第一卷积层的操作结果和第一ReLU激活层的参数选址信号,并在频域执行其第一ReLU激活层操作,然后将操作结果存回共享片上内存;
频域卷积模块从共享片上内存读取其他卷积层的权值和上一个ReLU激活层的操作结果,并在频域执行卷积神经网络的其他卷积层操作,然后将操作结果存回共享片内存;其他卷积层是指卷积神经网络除第一卷积层之外的卷积层;
频域ReLU模块从共享片上内存读取其他ReLU激活层的参数选址信号和上一个卷积层的操作结果,并在频域执行卷积神经网络的其他ReLU激活层操作,然后将操作结果存回共享片上内存;
其中,频域ReLU模块在频域执行各ReLU激活层操作,具体为:首先根据各ReLU激活层的参数选址信号确定参数p1和p2,然后基于确定的参数p1和p2执行各ReLU激活层操作:
Figure FDA0002876833780000031
式中,F代表傅里叶变换,
Figure FDA0002876833780000032
代表卷积操作;直接片外访问单元读取共享片上内存上最终得到的操作结果并发送给DDR;
主机CPU从DDR上读取FPGA发送的操作结果,并进行IFFT变换得到卷积神经网络的输出结果。
7.根据权利要求6所述的硬件加速方法,其特征在于,全频域卷积神经网络的所有ReLU激活层采用不同的参数p1和p2,均采用离线方式根据卷积神经网络训练中获得的ReLU激活层自身的输入范围信息,通过曲线拟合工具拟合得到,进而在主机CPU相应设置参数选址信号。
8.根据权利要求6所述的硬件加速方法,其特征在于,所述全频域卷积神经网络将BN层融合到卷积层,同时将卷积神经网络内部各层结构的执行顺序设置为:卷积层—>最大池化层—>ReLU激活层,并且在频域将卷积层与最大池化层合并。
9.根据权利要求6所述的硬件加速方法,其特征在于,当频域卷积模块将某个卷积层的第一个filter的结果存入共享片上内存时,频域ReLU模块立即从共享片上内存读取第一个filter的结果,并开始执行该卷积层的下一个ReLU激活层操作;当频域ReLU模块将某个ReLU激活层的第一个channel的结果存入共享片上内存、且该ReLU激活层的上一个卷积层执行完毕时,频域卷积模块立即从共享片上内存读取第一个channel的结果,并开始执行该ReLU激活层的下一个卷积层操作。
10.一种采用卷积神经网络进行图像分类的方法,使用训练好的卷积神经网络并采用权利要求6-9任一所述硬件加速方法对图像进行分类。
CN202011637130.8A 2020-12-31 2020-12-31 基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法 Active CN112749799B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011637130.8A CN112749799B (zh) 2020-12-31 2020-12-31 基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011637130.8A CN112749799B (zh) 2020-12-31 2020-12-31 基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法

Publications (2)

Publication Number Publication Date
CN112749799A CN112749799A (zh) 2021-05-04
CN112749799B true CN112749799B (zh) 2022-04-12

Family

ID=75651107

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011637130.8A Active CN112749799B (zh) 2020-12-31 2020-12-31 基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法

Country Status (1)

Country Link
CN (1) CN112749799B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110163370A (zh) * 2019-05-24 2019-08-23 上海肇观电子科技有限公司 深度神经网络的压缩方法、芯片、电子设备及介质
CN110910405A (zh) * 2019-11-20 2020-03-24 湖南师范大学 基于多尺度空洞卷积神经网络的脑肿瘤分割方法及系统
CN111542839A (zh) * 2018-12-13 2020-08-14 深圳鲲云信息科技有限公司 一种反卷积神经网络的硬件加速方法、装置和电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11449729B2 (en) * 2018-11-08 2022-09-20 Arm Limited Efficient convolutional neural networks
US11321606B2 (en) * 2019-01-15 2022-05-03 BigStream Solutions, Inc. Systems, apparatus, methods, and architectures for a neural network workflow to generate a hardware accelerator

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111542839A (zh) * 2018-12-13 2020-08-14 深圳鲲云信息科技有限公司 一种反卷积神经网络的硬件加速方法、装置和电子设备
CN110163370A (zh) * 2019-05-24 2019-08-23 上海肇观电子科技有限公司 深度神经网络的压缩方法、芯片、电子设备及介质
CN110910405A (zh) * 2019-11-20 2020-03-24 湖南师范大学 基于多尺度空洞卷积神经网络的脑肿瘤分割方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
F-E3D:FPGA-based Acceleration of an Efficient 3D Convolutional Neural Network for Human Action Recognition;Hongxiang Fan et al.;《2019 IEEE 30th International Conference on Application-specific Systems,Architectures and Processors(ASAP)》;20190905;全文 *

Also Published As

Publication number Publication date
CN112749799A (zh) 2021-05-04

Similar Documents

Publication Publication Date Title
Chen et al. ReGAN: A pipelined ReRAM-based accelerator for generative adversarial networks
US20210224125A1 (en) Operation Accelerator, Processing Method, and Related Device
KR20200060302A (ko) 처리방법 및 장치
Wu et al. Reduced order model using convolutional auto-encoder with self-attention
US20230026006A1 (en) Convolution computation engine, artificial intelligence chip, and data processing method
US20180330235A1 (en) Apparatus and Method of Using Dual Indexing in Input Neurons and Corresponding Weights of Sparse Neural Network
CN111105023B (zh) 数据流重构方法及可重构数据流处理器
CN110383300A (zh) 一种计算装置及方法
WO2019154546A1 (en) Acceleration of neural networks using depth-first processing
CN109993293B (zh) 一种适用于堆叠式沙漏网络的深度学习加速器
CN108171328A (zh) 一种卷积运算方法和基于该方法的神经网络处理器
CN111144556A (zh) 面向深度神经网络训练和推理的范围批处理归一化算法的硬件电路
CN109685208B (zh) 一种用于神经网络处理器数据稀梳化加速的方法及装置
CN117725963A (zh) 一种用于Transformer模型推理计算的方法、系统及装置
CN117217274A (zh) 向量处理器、神经网络加速器、芯片及电子设备
CN112749799B (zh) 基于自适应ReLU的全频域卷积神经网络的硬件加速器、加速方法和图像分类方法
US11481604B2 (en) Apparatus and method for neural network processing
CN112712174B (zh) 全频域卷积神经网络的硬件加速器、加速方法和图像分类方法
Xia et al. Efficient synthesis of compact deep neural networks
CN114595641A (zh) 组合优化问题的求解方法和系统
Gou et al. Re-training and parameter sharing with the Hash trick for compressing convolutional neural networks
CN114707655A (zh) 一种量子线路转换方法、系统、存储介质和电子设备
Yu et al. Hardware implementation of CNN based on FPGA for EEG Signal Patterns Recognition
CN114723024A (zh) 用于存算一体芯片的基于线性规划的神经网络映射方法
Bai et al. An OpenCL-based FPGA accelerator with the Winograd’s minimal filtering algorithm for convolution neuron networks

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant