[发明专利]一种多种类型卷积的FPGA实现方法有效
| 申请号: | 202110081004.7 | 申请日: | 2021-01-21 |
| 公开(公告)号: | CN112905526B | 公开(公告)日: | 2022-07-08 |
| 发明(设计)人: | 陈禾;张宁;魏鑫;刘文超;龙腾 | 申请(专利权)人: | 北京理工大学 |
| 主分类号: | G06F15/78 | 分类号: | G06F15/78;G06N3/04;G06N3/063 |
| 代理公司: | 北京理工大学专利中心 11120 | 代理人: | 代丽;郭德忠 |
| 地址: | 100081 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 多种 类型 卷积 fpga 实现 方法 | ||
1.一种多种类型卷积的FPGA实现方法,其特征在于,包括如下步骤:
步骤一、根据所要实现的多种类型卷积的深度卷积神经网络,选取其中一种出现频率最高的卷积类型作为基准类型,并采用原始循环计算过程对基准类型卷积进行硬件部署,使其能够在FPGA上运行;所述原始循环计算过程中,先进行行处理再进行通道处理;
步骤二、面向所述基准类型卷积设计处理引擎的结构,得到的处理引擎能够部署在FPGA上用于实现基准卷积;
步骤三、设计输入数据控制模块,用于为步骤二得到的处理引擎提供正确的输入数据;
输入数据控制模块搭配处理引擎,将基准类型卷积成功部署在FPGA中;
其中,所述输入数据控制模块包括N个BRAM,设计为乒乓缓冲区,N为基准类型卷积尺寸行数加1;
Ping缓冲区和Pang缓冲区的Bram是有序的,不能颠倒;
当需要对输入特征图进行零填充时,不需要进行额外的存储,选择0作为输出来实现填充操作;
步骤四、针对所要实现的多种类型卷积的深度卷积神经网络中,所包含的除基准类型卷积之外的其余类型卷积,制定转换方法,将其余类型卷积转换为基准类型卷积,然后应用统一的处理引擎在FPGA上进行实现,完成多种类型卷积的FPGA实现。
2.如权利要求1所述的多种类型卷积的FPGA实现方法,其特征在于,所要实现的多种类型卷积的深度卷积神经网络包含的卷积类型有:3×3普通卷积,1×1普通卷积,步长为1、膨胀率为2的3×3空洞卷积以及步长为2、膨胀率为2的3×3空洞卷积。
3.如权利要求2所述的多种类型卷积的FPGA实现方法,其特征在于,对于1×1卷积,通过零填充将卷积核的大小从1×1转换为基准类型卷积尺寸,与之对应的是需要将附加的零填充添加到输入要素图以获得正确的输出要素图;
在FPGA上实现时,在为处理引擎提供输入图像数据和权重参数时,通过添加0的操作,在读出输入图像数据和权重时在需要读出0的位置将读出使能信号置为无效,并把此时的数据设为0。
4.如权利要求2所述的多种类型卷积的FPGA实现方法,其特征在于,对于步长为1膨胀率为2的3×3空洞卷积,在存储输入特征图时,将相邻的两行存储在同一块Bram中,在取数据时,按照同样的地址,分别在Bram中取出输入特征图的奇数行特征值;同理分别取出偶数行特征值;其中,通过设置锯齿形读取使能信号,将奇数列和偶数列的输入数据分别读出;在读取输入要素地图时,将输入特征图根据奇数行、偶数行、奇数列和偶数列进行分组。
5.如权利要求2所述的多种类型卷积的FPGA实现方法,其特征在于,对于步长为2膨胀率为2的3×3空洞卷积,在往输入数据控制模块中存储输入特征图时,仅存储奇数行的特征图;在读取时通过设置锯齿形读取使能信号,仅将奇数列的输入数据读出提供给处理引擎用于参与卷积运算。
6.如权利要求1所述的多种类型卷积的FPGA实现方法,其特征在于,所述步骤二中,利用乘法运算单元和加法运算单元搭建卷积处理引擎,用于在FPGA上完成卷积运算。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学,未经北京理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110081004.7/1.html,转载请声明来源钻瓜专利网。





