[发明专利]基于FPGA的深度卷积神经网络实现方法有效

专利信息
申请号: 201610615714.2 申请日: 2016-07-30
公开(公告)号: CN106228240B 公开(公告)日: 2020-09-01
发明(设计)人: 王展雄;周光朕;冯瑞 申请(专利权)人: 复旦大学
主分类号: G06N3/063 分类号: G06N3/063;G06K9/62;G10L15/16
代理公司: 上海正旦专利代理有限公司 31200 代理人: 陆飞;陆尤
地址: 200433 *** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明方法属于数字图像处理、模式识别技术领域。具体为一种基于FPGA的深度卷积神经网络实现方法。本发明实现的硬件平台是XilinxZYNQ‑7030可编程片上SoC,硬件平台内置FPGA和ARM Cortex A9处理器。本发明首先将训练好的网络模型参数加载到FPGA端,然后在ARM端对输入数据进行预处理,再将结果传输到FPGA端,在FPGA端实现深度卷积神经网络的卷积计算和下采样,形成数据特征向量并传输至ARM端,完成特征分类计算。本发明利用FPGA的快速并行处理和极低功耗的高效能计算特性,实现深度卷积神经网络模型中复杂度最高的卷积计算部分,在保证算法正确率的前提下,大幅提升算法效率,降低功耗。
搜索关键词: 基于 fpga 深度 卷积 神经网络 实现 方法
【主权项】:
一种基于FPGA的深度卷积神经网络实现方法,其特征在于具体步骤为:步骤1、加载训练模型参数(1)在ARM端加载离线训练的深度卷积神经网络模型参数;(2)将训练模型参数传输至FPGA端;(3)FPGA端经过FIFO缓存后存储在块随机存储器中;步骤2、预处理深度卷积神经网络模型(1)对输入数据进行归一化处理,使其满足模型卷积运算要求;(2)利用APB总线将ARM端归一化数据传输至FPGA端;(3)FPGA端将归一化数据经过FIFO缓存后存入块随机存储器;步骤3、卷积和下采样计算设网络模型有H个卷积层和池化层,第h个卷积层输入为T个m×m 32位浮点数矩阵,h=1,2,…,H;输出为S个(m‑n+1)×(m‑n+1)32位浮点数矩阵,卷积核为K个n×n 32位浮点数矩阵,n≤m,输入数据滑动窗尺度为n×n,横向滑动步长为1,纵向滑动步长为1;(1)初始化卷积运算流水线定义n+1个数据缓存寄存器P0,P1,…,Pn‑1,Pn,每个寄存器存放m个数据,其中n个寄存器(P(i‑1)%(n+1)+0,P(i‑1)%(n+1)+1,…,P(i‑1)%(n+1)+n‑1)存放第t个输入数据矩阵的第i个子矩阵(n×m)数据,t=1,2,…,T,i=1,2,…,m‑n+1;用%表示取余数,如果(i‑1)%(n+1)+x>n,则(i‑1)%(n+1)+x=0,(i‑1)%(n+1)+x+1=1,…,其中x=0,1,…,n‑1;如果n<m,P(i‑1)%(n+1)+n寄存器存放输入数据矩阵中的第i+n行数据,在卷积计算过程中实现并行初始化,以减少FPGA空闲周期,提高计算效率;定义1个卷积核矩阵缓存寄存器W,存放第k个n×n个卷积核矩阵权值数据,k=1,2,…,K;(2)第h个卷积层计算完成网络第h个卷积层第t个输入数据矩阵和第k个卷积核的卷积计算,通过Sigmoid函数实现计算结果的激活;在进行每次卷积计算的同时,初始化第i+n个数据缓存寄存器P(i‑1)%(n+1)+n,作为卷积中第i+1个子矩阵卷积计算的缓存输入数据,实现循环卷积;在FPGA端通过浮点IP核构建Sigmoid函数,实现卷积计算结果的激活,Sigmoid函数的表达式为:;具体步骤为:如前所述,输入数据为m×m浮点数矩阵,卷积核为n×n浮点数矩阵,滑动窗尺度为n×n,横向滑动步长为1,纵向滑动步长为1,则卷积结果为(m‑n+1)×(m‑n+1)的浮点数矩阵,矩阵的每个元素加上偏置量b11即离线训练模型参数,利用Sigmoid函数激活后,结果为(m‑n+1)×(m‑n+1)的浮点数矩阵,存入Block RAM;完成1次卷积计算后,重新初始化卷积核矩阵缓存寄存器W,进行下一次卷积计算,往复循环卷积计算,计算结果为S个(m‑n+1)×(m‑n+1)浮点数矩阵,存入Block RAM;(3)第h个池化层计算实现第h个卷积层计算结果的池化计算,结果为S个[(m‑n+1)/2]×[(m‑n+1)/2]浮点数矩阵,存入Block RAM;具体步骤为:设卷积计算结果数据滑动窗尺度为2×2,步长为2,采用平均下采样法实现池化,即逐个2×2浮点数矩阵相加,计算结果取均值,获得S个[(m‑n+1)/2]×[(m‑n+1)/2]浮点数矩阵,作为第h+1个卷积层计算的输入矩阵;步骤4、分类计算将卷积计算和池化计算结果传回ARM端进行分类运算;具体步骤为:FPGA端将Block RAM中的卷积池化计算结果矩阵,通过FIFO缓存,APB总线传输至ARM端,ARM端利用Softmax运算完成数据分类计算,得到输入数据的分类结果并输出。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610615714.2/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top