[发明专利]一种基于SOC的可训练柔性CNN系统设计方法有效
申请号: | 201910416537.9 | 申请日: | 2019-05-17 |
公开(公告)号: | CN110135572B | 公开(公告)日: | 2023-05-26 |
发明(设计)人: | 姚睿;李明莉;周冠宇;游霞;周翟和;陈燕 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06N3/063 | 分类号: | G06N3/063;G06N3/0464;G06N3/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 211106 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 soc 训练 柔性 cnn 系统 设计 方法 | ||
1.一种基于SOC的可训练柔性CNN系统设计方法,其特征在于,包括以下几个步骤:
步骤1:利用FPGA片上软核或硬核处理器实现学习引擎,利用FPGA逻辑设计前馈加速器,并设计外部接口模块,构建基于SOC的可训练CNN系统的硬件框架;
步骤2:使CNN系统进入在线学习阶段,通过外部接口设置网络结构参数,并初始化训练样本图像个数;
步骤3:通过外部接口向CNN系统加载一个训练样本图像,同时初始化待加速网络层数和网络权值;
步骤4:在学习引擎的控制下,分时复用前馈加速器,实现图像数据处理的前馈过程加速;
步骤5:学习引擎访问最后一个待加速CNN网络层的运算结果,执行输出层,输出执行结果;
步骤6:学习引擎根据学习规则,以最优化误差损失为目标函数,推算新权值;
步骤7:将步骤6所得新权值作为初始化网络权值,重复步骤3~6,依次学习全部样本;
步骤8:使CNN系统进入预测阶段,将步骤7所得最终网络权值作为初始化网络权值,通过外部接口加载待预测图像,重复步骤4~5,输出执行结果。
2.如权利要求1所述的一种基于SOC的可训练柔性CNN系统设计方法,其特征在于,步骤1中,所述CNN系统的学习引擎、前馈加速器和外部接口均在同一片FPGA上实现;所述外部接口和所述学习引擎的输入输出互连,所述前馈加速器和所述学习引擎通过总线互连;所述前馈加速器包括可重构加速单元、数据缓存区、参数配置器、状态监控器和地址生成器,其中参数配置器的输出分别连接地址生成器和可重构加速单元,地址生成器的输出连接数据缓存区,数据缓存区的输出连接可重构加速单元,可重构加速单元的输出分别连接数据缓存区和状态监控器。
3.如权利要求1所述的一种基于SOC的可训练柔性CNN系统设计方法,其特征在于,步骤4中,所述图像数据处理的前馈过程加速的具体实现方法如下:
(1)学习引擎将当前待加速CNN网络层的网络权值存储至数据缓存区,并向参数配置器发送当前待加速层CNN网络层的网络参数,配置地址生成器和可重构加速单元;
(2)地址生成器产生相应的图像、权值数据读取地址,向可重构加速单元加载数据流;
(3)可重构加速单元对输入图像数据进行卷积、激活、池化运算,并将特征图结果保存至数据缓存区,作为下一级待加速CNN网络层的输入;
(4)状态监控器实时监测可重构加速单元的状态信号,等待当前待加速CNN网络层加速计算完毕;
(5)状态检测器向学习引擎发送请求处理下一级信号;
(6)重复(1)~(5),直至所有待加速CNN网络层处理完毕。
4.如权利要求3所述的一种基于SOC的可训练柔性CNN系统设计方法,其特征在于,所述图像数据处理的前馈过程加速的实现采用加速器与数据流分离的设计方法:所述可重构加速单元包含N路运算链,每条运算链通过卷积、激活、池化算子组合,提取一种特征信息,运算链路数N由参数配置器设置;所述地址生成器根据参数配置器设置的当前待加速层模型参数,生成数据缓存区的读取地址序列,自动向可重构加速单元加载数据流;通过控制加速器链路数与数据流的变化,灵活地适应不同卷积层的加速计算,实现CNN结构的柔性拓展。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910416537.9/1.html,转载请声明来源钻瓜专利网。