利索能及
我要发布
收藏
专利号: 2020116402522
申请人: 湖南师范大学
专利类型:发明专利
专利状态:已下证
更新日期:2025-10-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种全频域卷积神经网络的硬件加速器,其特征在于,所述全频域卷积神经网络的ReLU激活层采用改进的激活函数,其空间域函数表达式为:2

R(x)=p0+p1×x+p2×x;

其中,x为ReLU激活层的输入数据,p0为DC值,设置为p0=0,p1和p2为激活函数的2个参数;

所述硬件加速器包括主计算机模块和FPGA加速模块,所述主计算机模块包括主机CPU和DDR,所述FPGA包括直接片外访问单元、共享片上内存、频域卷积模块和频域ReLU模块;其中:

所述主机CPU,用于将输入数据进行FFT变换,并将FFT变换后的输入数据和离线FFT转换好的各卷积层的权值存入DDR;

所述直接片外访问单元,用于将DDR中存储的FFT变换后的输入数据及卷积神经网络各层的权值,读取到共享片上内存;

所述频域卷积模块,用于从共享片上内存读取输入数据和第一卷积层的权值,并在频域执行卷积神经网络的第一卷积层操作,然后将操作结果存回共享片上内存;还用于从共享片上内存读取上一个ReLU激活层的操作结果和其他卷积层的权值,并执行卷积神经网络的其他卷积层操作,然后将操作结果存回共享片内存;其他卷积层是指卷积神经网络除第一卷积层之外的卷积层;

所述频域ReLU模块,用于从共享片上内存读取各卷积层的操作结果,并在频域执行其下一个ReLU激活层操作,然后将操作结果存回共享片上内存;所述频域ReLU模块在频域执行ReLU激活层操作表示为:

式中,F代表傅里叶变换, 代表卷积操作;

所述直接片外访问单元,还用于读取共享片上内存上最终得到的操作结果,并发送给DDR;

所述主机CPU,还用于从DDR上读取FPGA发送的操作结果,并进行IFFT变换得到卷积神经网络的输出结果。

2.根据权利要求1所述的硬件加速器,其特征在于,所述频域ReLU模块将调优后的参数p1和p2分解为多个2的幂的和的形式,从而表达式中有关p1的乘法和有关p2的乘法操作,均转换为FPGA硬件上的移位与加法操作;所述频域ReLU模块包括点乘模块和加法器,所述点乘模块用于在频域执行卷积操作,且移位操作直接由FPGA的逻辑资源实现。

3.根据权利要求1所述的硬件加速器,其特征在于,所述频域卷积模块由一系列乘法累加单元构成,用于在频域执行乘法累加以完成频域卷积层操作。

4.根据权利要求1所述的硬件加速器,其特征在于,所述全频域卷积神经网络将BN层融合到卷积层,同时将卷积神经网络内部各层结构的执行顺序设置为:卷积层—>最大池化层—>ReLU激活层,并且在频域将卷积层与最大池化层合并。

5.根据权利要求1‑4任一所述的硬件加速器,其特征在于,当频域卷积模块将某个卷积层的第一个filter的结果存入共享片上内存时,频域ReLU模块立即从共享片上内存读取第一个filter的结果,并开始执行该卷积层的下一个ReLU激活层操作;当频域ReLU模块将某个ReLU激活层的第一个channel的结果存入共享片上内存、且该ReLU激活层的上一个卷积层执行完毕时,频域卷积模块立即从共享片上内存读取第一个channel的结果,并开始执行该ReLU激活层的下一个卷积层操作。

6.一种全频域卷积神经网络的硬件加速方法,其特征在于,所述全频域卷积神经网络的ReLU激活层采用改进的激活函数,其空间域函数表达式为:2

R(x)=p0+p1×x+p2×x;

其中,x为ReLU激活层的输入数据,p0为DC值,设置为p0=0,p1和p2为激活函数的2个参数;

所述硬件加速方法包括:

主机CPU将输入数据进行FFT变换,并将FFT变换后的输入数据和离线FFT转换好的各卷积层的权值一起存入DDR;

直接片外访问单元将DDR中存储的FFT变换后的输入数据及神经网络各层的权值,读取到共享片上内存;

频域卷积模块从共享片上内存读取第一卷积层的权值和输入数据,并在频域执行第一卷积层操作,然后将操作结果存回共享片上内存;

频域ReLU模块从共享片上内存读取第一卷积层的操作结果,并在频域执行其第一ReLU激活层操作,然后将操作结果存回共享片上内存;所述频域ReLU模块在频域执行ReLU激活层操作表示为:

式中,F代表傅里叶变换, 代表卷积操作;

频域卷积模块从共享片上内存读取其他卷积层的权值和上一个ReLU激活层的操作结果,并在频域执行卷积神经网络的其他卷积层操作,然后将操作结果存回共享片内存;其他卷积层是指卷积神经网络除第一卷积层之外的卷积层;

频域ReLU模块从共享片上内存读取上一个卷积层的操作结果,并在频域执行卷积神经网络的其他ReLU激活层操作,然后将操作结果存回共享片上内存;

直接片外访问单元读取共享片上内存上最终得到的操作结果并发送给DDR;

主机CPU从DDR上读取FPGA发送的操作结果,并进行IFFT变换得到卷积神经网络的输出结果。

7.根据权利要求6所述的硬件加速方法,其特征在于,全频域卷积神经网络的所有ReLU激活层采用相同的参数p1和p2,所述参数p1和p2采用离线方式调优后由主机CPU传送至FPGA的频域ReLU模块;其中,参数p1和p2的调优方法为:利用卷积神经网络训练中获得的所有ReLU激活层的输入范围信息,通过曲线拟合工具拟合得到。

8.根据权利要求6所述的硬件加速方法,其特征在于,所述全频域卷积神经网络将BN层融合到卷积层,同时将卷积神经网络内部各层结构的执行顺序设置为:卷积层—>最大池化层—>ReLU激活层,并且在频域将卷积层与最大池化层合并。

9.根据权利要求6所述的硬件加速方法,其特征在于,当频域卷积模块将某个卷积层的第一个filter的结果存入共享片上内存时,频域ReLU模块立即从共享片上内存读取第一个filter的结果,并开始执行该卷积层的下一个ReLU激活层操作;当频域ReLU模块将某个ReLU激活层的第一个channel的结果存入共享片上内存、且该ReLU激活层的上一个卷积层执行完毕时,频域卷积模块立即从共享片上内存读取第一个channel的结果,并开始执行该ReLU激活层的下一个卷积层操作。

10.一种采用卷积神经网络进行图像分类的方法,使用训练好的卷积神经网络并采用权利要求6‑9任一所述硬件加速方法对图像进行分类。