[发明专利]基于FPGA的加速卷积计算的系统、卷积神经网络有效
申请号: | 201911196648.X | 申请日: | 2019-11-29 |
公开(公告)号: | CN110880038B | 公开(公告)日: | 2022-07-01 |
发明(设计)人: | 尹志刚;雷小康 | 申请(专利权)人: | 中国科学院自动化研究所 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/04 |
代理公司: | 北京市恒有知识产权代理事务所(普通合伙) 11576 | 代理人: | 郭文浩;尹文会 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga 加速 卷积 计算 系统 神经网络 | ||
1.一种基于FPGA的加速卷积计算的系统,其特征在于,包括参数量化模块、参数加载模块、输入模块、卷积计算模块和输出模块;
所述参数量化模块,配置为存储第一参数文件;所述第一参数文件为定点化后的CNN模型参数文件,包括预先计算得到的各卷积层的定点化后的权值参数、权值参数的尺度、卷积层的尺度、输入量化尺度和偏置;
所述第一参数文件中各卷积层的定点化后的权值参数,其获取方法为:采用动态定点量化的方式对权值参数进行量化;其方法为:
fl_w=(-1)slog2(|w|max)
其中,y1为量化后的参数值,fl_w为当前卷积层权值参数的尺度,B是位宽长度,s是符号位,是定点数的尾数部分;wi为量化前参数值,|w|max为量化前当前卷积层的权值参数绝对值的最大值;
所述第一参数文件中各卷积层的尺度,其获取方法为:
fll+1=fl_wl+fl_inl-fl_inl+1
其中,fll+1为l+1卷积层的尺度,fl_wl为l卷积层的权值参数的尺度,fl_inl为l卷积层的输入量化尺度,fl_inl+1为l+1卷积层的输入量化尺度;
卷积层的输入量化尺度计算方法为:
其中,fl_in为对应卷积层的输入量化尺度,T为由32-bit数据向n-bit定点数的映射关的阈值;
所述参数加载模块,配置为在卷积运算时,将定点化后的CNN模型参数文件加载到FPGA内部存储器Block-RAM中;
所述输入模块,配置为对每一个卷积层,将输入图像的图像像素值依据所述第一参数文件进行定点化,得到定点化后的低比特数据作为对应卷积层的输入数据;
所述卷积计算模块,配置为对每一个卷积层,将该层对应的输入数据的特征图矩阵拆分为多个小矩阵,将所述小矩阵依次加载到FPGA的Block-RAM中缓存,根据卷积核的数量分批进行卷积计算;
所述输出模块,配置为对每一个卷积层,将通过所述卷积计算模块得到的各小矩阵对应的卷积计算结果进行合并作为下一层的输入图像。
2.根据权利要求1所述的基于FPGA的加速卷积计算的系统,其特征在于,所述第一参数文件中各卷积层的定点化后的偏置,其获取方法为:
y2=(-1)s*2-fl_bia*biai
其中y2为量化后的偏置参数,s为符号位,fl_bia为当前卷积层偏置项参数的尺度,biai为量化前的偏置参数。
3.根据权利要求1所述的基于FPGA的加速卷积计算的系统,其特征在于,“将定点化后的CNN模型参数文件加载到FPGA内部存储器Block-RAM中”,其方法为:
设置所述参数量化模的处理器将第一参数文件中的参数读取到DDR内存中,再将输入参数、权值参数和输出参数的地址通过AXI总线配置到FPGA中,FPGA将数据读取到Block-RAM中,接口配置信息存储在一个32-bit的变量中,中间层计算结果存储在片上RAM中。
4.根据权利要求1-3任一项所述的基于FPGA的加速卷积计算的系统,其特征在于,所述卷积计算模块中“将该层对应的输入数据的特征图矩阵拆分为多个小矩阵,将所述小矩阵依次加载到FPGA的Block-RAM中缓存,根据卷积核的数量分批进行卷积计算”,其方法为:
每一层卷积层的特征图的长和宽均为16的倍数,在每一层卷积层进行运算时,将特征图拆分为边长为16的小矩阵,每次选取M个小矩阵分别与M个卷积核进行并行卷积计算;M为预设的卷积核的数量。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院自动化研究所,未经中国科学院自动化研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911196648.X/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于继电保护专业的电压电阻测试表
- 下一篇:一种高精度车门吊具