一种基于NNA的支持focus操作的卷积实现方法技术

技术编号:39245515 阅读:20 留言:0更新日期:2023-10-30 11:57
本发明专利技术提供一种基于NNA的支持focus操作的卷积实现方法,包括:S1,假定网络中存在2个连续层,focus层后紧接着为卷积层,并且卷积层进行卷积核为kernelX*kernelY的卷积,卷积步长为strideX*strideY,其中,kernelX、kernelY是未结合之前卷积层的卷积核在X、Y方向上的大小,strideX、strideY为未结合之前卷积层在X、Y方向上的卷积步长;S2,在把所述focus和卷积层进行合并,合并之后等价于在未进行focus操作的FeatureMap上进行卷积核为(2*kernelX)*(2*kernelY)的卷积,卷积步长为(2*strideX)*(2*strideY);S3,通过对每次卷积对应的输入FeatureMap数据进行重排序,把卷积核大小(2*kernelX)*(2*kernelY)且步长(2*strideX)*(2*strideY)的卷积等价的转化为大小1*1步长1*1的卷积,使得focus层和输入层结合后能够在NNA上正常实现。上正常实现。上正常实现。

【技术实现步骤摘要】
一种基于NNA的支持focus操作的卷积实现方法


[0001]本专利技术涉及神经网路
,特别涉及一种基于NNA的支持focus操作的卷积实现方法。

技术介绍

[0002]近年来,随着科技的飞速发展,大数据时代已经到来,神经网络中大量的数据处理技术日益成为重要的应用技术之一。芯片厂商为神经网络算法打造专用的芯片,尤其是推理端的芯片,也就是神经网络加速器(NNA)。卷积神经网络主要由输入层、卷积层、池化层和全连接层组成。如图1所示,神经网络层中的focus层实现的功能是以2*2大小的区域为基本操作单元,对区域内的数据以列优先的方式对foucs层的输入FeatureMap进行数据重排序。
[0003]但是,由于focus层功能简单且仅对数据进行了排序,并不存在逻辑的计算,而紧接着的输入层在实现的过程中,也存在着相似的数据排序过程。当focus层和输入层作为两个单独的层(layer)存在,则会加重带宽的压力和数据进出。
[0004]此外,现有技术中的常用术语如下:
[0005]1、NNA:在CPU的SIMD的pipeline上的硬件加速器,操作由特殊的CPU/SIMD指令控制,在一个线程上运行,用以解决绝大部分的卷积乘加。
[0006]2、Focus:神经网络层。以基本的空间分布信息为基础,逐步从原图上取得高分辨率的patch,将其不断输入网络,以此逐步更新预测结果和空间分布信息,得到更为准确的判断,并逐步寻找神经网络尚未见到过的关键区域;这一阶段称为关注(Focus)。
[0007]3、BGRA:像素格式。

技术实现思路

[0008]为了解决上述问题,本申请的目的在于:为了降低网络数据进出的次数和带宽的压力,提出一种实现方式就是把focus层和输入层合并为一个层来实现。
[0009]具体地,本专利技术提供一种基于NNA的支持focus操作的卷积实现方法,所述方法包括以下步骤:
[0010]S1,假定网络中存在2个连续层,神经网络的focus层后紧接着为输入层,并且输入层进行卷积核为kernelX*kernelY的卷积,卷积步长为strideX*strideY,其中,kernelX、kernelY是未结合之前输入层的卷积核在X、Y方向上的大小,strideX、strideY为未结合之前输入层在X、Y方向上的卷积步长;
[0011]S2,把所述focus层和输入层进行合并,合并之后等价于在未进行focus操作的FeatureMap上进行卷积核为(2*kernelX)*(2*kernelY)的卷积,卷积步长为(2*strideX)*(2*strideY);所述focus操作是把FeatureMap的每个2*2*C区域按照列优先的顺序进行数据重排序,整合为1*1*4C的过程,其中C指的是FeatureMap的通道;经过focus操作的FeatureMap宽和高会变为原来的一半,通道会增加为原来的4倍;
[0012]S3,由于NNA不支持卷积核大于3或者卷积步长大于2的卷积,假定输入层数据只有
4个通道,那么通过对每次卷积对应的输入FeatureMap数据进行重排序,把卷积核大小(2*kernelX)*(2*kernelY)且步长(2*strideX)*(2*strideY)的卷积等价的转化为大小1*1步长1*1的卷积,使得focus层和输入层结合后的卷积的参数能够在满足利用NNA实现卷积操作的限制。
[0013]所述步骤S3中的重排序是指通过改变卷积计算的数据排布顺序,来实现等价的符合NNA的MAC运算特性的卷积,以输入层来说,假设进行3*3*4通道的卷积,再结合NNA的MAC运算特性,最后会在NNA中进行3*3*32通道的MAC运算,在这种情况下MAC运算中的每32个通道只有3个通道的有效数据;能够通过改变卷积运算所需数据的排布顺序,即重排序,来使得3*3*4通道的卷积,在NNA中进行1*1*32通道的等价的MAC运算,在这种情况下MAC运算中的每32个通道会3*3*3=27个通道的有效数据,经过重排序后使得每次MAC运行的32个通道包含有效数据的效率最大。
[0014]所述重排序的条件只需要满足:确保重排序前后卷积运算有效数据总量不变,且卷积计算输入数据和相应权重对应关系不变,即能保证重排序前后,卷积运算得到的乘加计算最终结果不变,也就是能够将重排序前后的两次卷积运算视作等价的。
[0015]所述方法进一步包括:
[0016]S1,假定网络中存在2个连续层,focus层后紧接着为输入层,并且输入层进行卷积核3*3的卷积,卷积步长为1;
[0017]S2,在把所述focus层和输入层这2个网络层进行合并,合并之后等价于在为合并前focus层的输入FeatureMap上直接进行卷积核为6*6的卷积,卷积步长为2;即在focus层和输入层二者结合后,原本做大小为3*3步长1*1卷积的输入层会等价转化为做大小为6*6步长2*2卷积的输入层;原本focus层和输入层共2层网络层等价转化为一层输入层;
[0018]S3,通过对每次卷积对应的输入FeatureMap数据进行重排序,把大小6*6步长2*2的卷积等价的转化为大小1*1步长1*1的卷积。
[0019]所述步骤S3中所述通道的格式为BGRA格式;所述卷积的参数包括卷积核大小和卷积步长大小。
[0020]由此,本申请的优势在于:通过简单的方法,就是把Focus层和输入层的合并为一个层来实现,降低网络数据进出的次数和带宽的压力,在降低网络数据进出的次数和带宽的压力同时也简化了逻辑的计算。
附图说明
[0021]此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,并不构成对本专利技术的限定。
[0022]图1是本申请中涉及的focus层操作的示意图。
[0023]图2是本申请方法中涉及卷积在focus前后的对应关系的示意图。
[0024]图3是本申请中方法的流程示意图。
具体实施方式
[0025]为了能够更清楚地理解本专利技术的
技术实现思路
及优点,现结合附图对本专利技术进行进一步的详细说明。
[0026]卷积神经网络在图像、视频、语音领域有着广泛的应用,随着神经网络越变越复杂,需要大量资源来训练和评估,而硬件加速器性能增长和通用性提高日趋缓慢。
[0027]卷积神经网络主要由输入层、卷积层、池化层和全连接层组成,其中卷积层是构成卷积神经网络的核心层,网络中绝大部分计算量由它产生,因此卷积神经网络的运行速度基本上取决于卷积层的运算速度。
[0028]NNA(neural network accelerate)是一种硬件平台的神经网络加速器,通过配置相关寄存器参数可以实现多通道卷积的快速运算,从而大幅度减少神经网络运行时间,在实际应用中实时性更高,用户体验更好。
[0029]以下面的例子进行描述本申请的方案:
[0030]假定网络中存在2个连续层,Focus层后紧接着为输入层本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于NNA的支持focus操作的卷积实现方法,其特征在于,所述方法包括以下步骤:S1,假定网络中存在2个连续层,神经网络的focus层后紧接着为输入层,并且输入层进行卷积核为kernelX*kernelY的卷积,卷积步长为strideX*strideY,其中,kernelX、kernelY是未结合之前输入层的卷积核在X、Y方向上的大小,strideX、strideY为未结合之前输入层在X、Y方向上的卷积步长;S2,把所述focus层和输入层进行合并,合并之后等价于在未进行focus操作的FeatureMap上进行卷积核为(2*kernelX)*(2*kernelY)的卷积,卷积步长为(2*strideX)*(2*strideY);所述focus操作是把FeatureMap的每个2*2*C区域按照列优先的顺序进行数据重排序,整合为1*1*4C的过程,其中C指的是FeatureMap的通道;经过focus操作的FeatureMap宽和高会变为原来的一半,通道会增加为原来的4倍;S3,由于NNA不支持卷积核大于3或者卷积步长大于2的卷积,假定输入层数据只有4个通道,那么通过对每次卷积对应的输入FeatureMap数据进行重排序,把卷积核大小(2*kernelX)*(2*kernelY)且步长(2*strideX)*(2*strideY)的卷积等价的转化为大小1*1步长1*1的卷积,使得focus层和输入层结合后的卷积的参数能够在满足利用NNA实现卷积操作的限制。2.根据权利要求1所述的一种基于NNA的支持focus操作的卷积实现方法,其特征在于,所述步骤S3中的重排序是指通过改变卷积计算的数据排布顺序,来实现等价的符合NNA的MAC运算特性的卷积,以输入层来说,假设进行3*3*4通道的卷积,再结合NNA的MAC运算特性,最后会在NNA中...

【专利技术属性】
技术研发人员:李岩王荔枝
申请(专利权)人:合肥君正科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1