[发明专利]一种基于Winograd算法的3D CNN加速方法及系统有效
申请号: | 201711342538.0 | 申请日: | 2017-12-14 |
公开(公告)号: | CN107993186B | 公开(公告)日: | 2021-05-25 |
发明(设计)人: | 沈俊忠;黄友;王泽龙;乔寓然;陈照云;曹壮;文梅;张春元 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06T1/20 | 分类号: | G06T1/20;G06N3/04 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 谭武艺 |
地址: | 410073 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 winograd 算法 cnn 加速 方法 系统 | ||
1.一种基于Winograd算法的3D CNN加速方法,其特征在于实施步骤包括:
1)从输入特征图in中读取待变换的特征图子块Bin,从权值缓存w中读取卷积核子块Bw;
2)对特征图子块Bin以及卷积核子块Bw执行3D Winograd算法输出结果Tp1;
3)对执行3D Winograd算法输出的结果Tp1进行累加,并输出累加结果Sum;
4)判断是否输入特征图in中的所有输入特征图都读取完毕,如果尚未读取完毕,则跳转执行步骤1);否则,跳转执行步骤5);
5)将累加结果Sum写回输出特征图缓存Out;
步骤2)的详细步骤包括:
2.1)对大小为n×n×n的特征图子块Bin的每一个平面依次进行列变换、行变换,得到变换后的特征图子块Tin;对特征图子块Tin进行顺时针90旋转使得特征图子块Tin中各数据位置重排,得到旋转后的特征图子块TinR;针对旋转后的特征图子块TinR的每一个平面进行列变换得到变换后大小为n×n×n的特征图子块Tin1;
2.2)对大小为r×r×r的卷积核子块Bw的每一个平面依次进行列变换、行变换,得到变换后的卷积核子块Tw;对卷积核子块Tw进行顺时针90旋转使得卷积核子块Tw中各数据位置重排,得到旋转后的卷积核子块TwR;针对旋转后的卷积核子块TwR的每一个平面进行列变换得到变换后的大小为n×n×n的卷积核子块Tw1;
2.3)针对大小完全一致的特征图子块Tin1和卷积核子块Tw1进行点乘操作,得到大小为n×n×n的点乘操作结果P;
2.4)对大小为n×n×n的点乘操作结果P的每一个平面依次进行列变换、行变换,得到变换后的点乘操作结果Tp;对变换后的点乘操作结果Tp进行顺时针90旋转使得变换后的点乘操作结果Tp中各数据位置重排,得到旋转后的点乘操作结果TpR;针对旋转后的点乘操作结果TpR的每一个平面进行列变换得到大小为m×m×m的变换后点乘操作结果Tp1,作为执行3D Winograd算法输出的结果Tp1。
2.根据权利要求1所述的基于Winograd算法的3D CNN加速方法,其特征在于,步骤1)中从输入特征图in中读取待变换的特征图子块Bin时,采用Z、R、C、M、N五重循环遍历的方式读取待变换的特征图子块Bin,其中Z,R,C分别表示输出特征图的深度、高度以及宽度,M表示输出特征图的数目,N表示输入特征图的数目,且读取待变换的特征图子块Bin采用的载入函数的函数表达式如式(1)所示,从权值缓存w中读取卷积核子块Bw采用的载入函数的函数表达式如式(2)所示;
式(1)中,Bin[k][j][i]表示读取下标为k,j,i的特征图子块Bin,特征图子块Bin大小为n×n×n,dep,row,col分别表示某张特征图中所要读取子块的深度、高度以及宽度方向的索引值,in表示输入特征图in,S表示卷积窗口的滑动步长,r表示卷积核的维度,W表示输入特征图宽度;
Bw[k][j][i]=w[m0][n][k][j*r+i],0≤i,j,kr. (2)
式(2)中,Bw[k][j][i]表示读取下标为k,j,i的卷积核子块Bw,w表示权值缓存,m0,n表示卷积核的索引,权值缓存w中一共有M组权值、每组N个卷积核,r表示卷积核的维度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711342538.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:数据处理方法及装置
- 下一篇:半导体装置和图像处理方法