卷积核堆积数据流、压缩编码以及深度学习算法制造技术

技术编号:18713376 阅读:43 留言:0更新日期:2018-08-21 23:03
本发明专利技术提供卷积核堆积数据流、压缩编码以及深度学习算法,从参数模型中逐层读取卷积层和全连接层的卷积核矩阵,将卷积核矩阵进行重组变换;一个通道输入的特征数据与来自同一通道的重组后的卷积核矩阵的多个卷积核权重数组进行卷积计算。本发明专利技术解决稀疏数据内存不规则导致在使用时需要复杂的处理电路的缺点,以及提高计算阵列利用率的问题。

Convolution kernel stacking data stream, compression coding and deep learning algorithm

The present invention provides a convolution kernel stacking data stream, compression coding and depth learning algorithm, which reads the convolution kernel matrix of convolution layer and full connection layer layer by layer from the parameter model, and reconstructs the convolution kernel matrix; the characteristic data input by one channel and multiple convolution kernels of the reconstructed convolution kernel matrix from the same channel. The weight array is calculated by convolution. The invention solves the problem that the irregular memory of sparse data leads to the need for complex processing circuits in use, and improves the utilization ratio of computing arrays.

【技术实现步骤摘要】
卷积核堆积数据流、压缩编码以及深度学习算法
本专利技术涉及神经网络
,特别涉及卷积核堆积数据流、压缩编码以及深度学习算法。
技术介绍
近年来深度神经网络获得突破性进展,在大量领域取得突破性的性能优势,并且性能逐年提升;在图像分类识别,运动检测,物体检测,图像语义理解,翻译,自然语言处理等领域具有广阔的应用前景;但同时具有网络参数存储占用大量内存,计算量巨大,计算过程中需要大量的内存数据交互,内存能耗带宽成为瓶颈;目前设计普遍处理速度相对较慢,不适合高速应用等缺点;目前基于GPU的加速设计功耗大体积大,不适用于小型移动设备。移动嵌入式设备由于内存计算资源有限,限制了深度神经网络的广泛应用。当前优化加速深度学习神经网络的研究方向主要可以分为四类:1)降低精度:降低网络参数的精度,由浮点数转为定点数,降低比特数,由高比特32bit降低为16bit,8bit,4bit,甚至1比特等;2)简化计算:将卷积层和全连接层中乘法运算转为移位和加法运算;3)优化流程:通过优化运算流程和数据流程降低移动数据所需的次数和功耗;4)深度压缩:通过深度数据压缩来降低参数所需存储空间和运算次数,尽可能的将所有数据都缓存到片上,降低内存存取次数。斯坦福大学的深度压缩,通过剪枝,量化,共享权重,huffman编码等手段可以将Alexnet压缩35×,VGGNET压缩49×,但是他们的硬件实现中只针对全连接层进行了优化。麻省理工大学的Eyeriss的流程优化没有充分考虑稀疏数据的特点等,目前的实现往往只针对某一个方面,适应性不强,对于压缩的稀疏数据,由于稀疏数据内存不规则的特点,普遍存在数据处理电路复杂,计算阵列利用率低的问题。因此,为了解决上述问题,需要提高计算阵列利用率的卷积核堆积数据流、压缩编码以及深度学习算法。
技术实现思路
本专利技术的目的在于提供一种深度学习算法以解决现有技术中稀疏数据内存不规则导致在使用时需要复杂的处理电路的缺点,以及提高计算阵列利用率的问题。本专利技术的一个方面在于提供一种用于深度学习网络的卷积核堆积数据流的方法,所述方法包括如下步骤:从参数模型中逐层读取卷积层和全连接层的卷积核矩阵,将卷积核矩阵进行重组;一个通道输入的特征数据与来自同一通道的重组后的卷积核矩阵的多个权重数组进行卷积计算。优选地,所述卷积核矩阵重组通过如下步骤实现:将卷积核矩阵分为M’组,每一组具有m个卷积核矩阵,并且将卷积层的卷积核矩阵的权重数组由四维数组转变为五维数组,将全连接层的卷积核矩阵的权重数组由两维数组转变为三维数组。本专利技术的另一个方面在于提供一种相对索引稀疏卷积核压缩的编码方法,所述编码方法包括:将按卷积核通道顺序存放的权重数组展开,按列将m个filter同一通道相同位置的m个卷积核矩阵的权重数组顺序存放。优选地,所述编码方法还包括:如果第一行中某一个权重数组的值为0,则删除该列;并且,将下一列中第二行的相对索引值加一,第三行的相对列指针减一。本专利技术的再一个方面在于提供一种寻找最优存储索引的比特数的方法,所述方法通过如下公式计算:其中,Nz_num为非0卷积核矩阵的权重数组的个数;wbit为存储卷积核矩阵的权重数组所需的bit数;bit为存储相对索引所需的bit数;zero_stat为卷积核矩阵的权重数组连续0个数的统计分布。本专利技术的又一个方面在于提供一种深度学习算法,所述算法包括如下步骤:a)从参数模型中逐层读取卷积层和全连接层的卷积核矩阵,将卷积核矩阵进行重组;b)统计重组后卷积核矩阵在内层存储时权重数组连续为0的个数分布,以及权重数组非0值的个数;c)通过如下方法寻找最优存储索引的比特数:其中,Nz_num为非0卷积核矩阵的权重数组的个数;wbit为存储卷积核矩阵的权重数组所需的bit数;bit为存储相对索引所需的bit数;zero_stat为卷积核矩阵的权重数组连续0个数的统计分布。d)一个通道输入的特征数据与来自同一通道的重组后的卷积核矩阵的多个权重数组进行卷积计算,将卷积计算的结果重新连接为输出矩阵。优选地,所述步骤c)得到最优存储索引的比特数后,重新统计重组后卷积核矩阵在内层存储时权重数组连续为0的个数分布,以及权重数组非0值的个数;当权重数组连续为0的个数≥2bit时插入一个0,并将权重数组非0值与插入的0值记录到稀疏矩阵数据流和索引流中。本专利技术用于深度学习网络的卷积核堆积数据流的方法(SFS)以及相对索引稀疏卷积核压缩(CSF)的编码方法,同时应用于卷积层以及全连接层等,具有实用性强,编码后的数据可以直接在计算中使用,避免了稀疏数据内存不规则导致在使用时需要复杂的处理电路的缺点。同时编码方法得到编码格式中将大部分0数据压缩为索引,在计算可以直接跳过,省却了大量的旁路0所需的时钟,同时因为在编码时已经将大部分0压缩,计算阵列利用率大大提升。本专利技术提出的数据流以及编码方法使得数据的分布改变,0数据分布更趋于1方向集中,同样总得非零数据个数的分布也更趋于1方向集中,这个分布使得执行计算时的负载更加均衡,保存索引所需要的bit数以及补0的数量进一步降低。应当理解,前述大体的描述和后续详尽的描述均为示例性说明和解释,并不应当用作对本专利技术所要求保护内容的限制。附图说明参考随附的附图,本专利技术更多的目的、功能和优点将通过本专利技术实施方式的如下描述得以阐明,其中:图1示意性示出了现有技术中m个卷积核矩阵的权重数组的存储方式;图2示出了本专利技术m个卷积核矩阵的权重数组的存储方式;图3示出了本专利技术与ALEXNET相比不同层中连续0的个数的分布示意图。具体实施方式通过参考示范性实施例,本专利技术的目的和功能以及用于实现这些目的和功能的方法将得以阐明。然而,本专利技术并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本专利技术的具体细节。在下文中,将参考附图描述本专利技术的实施例,相关技术术语应当是本领域技术人员所熟知的。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤,除非另有说明。下面通过具体的实施例对本专利技术的内容进行说明,本专利技术提供了深度学习算法,用于深度学习网络的卷积核堆积数据流的方法(SFS)和相应的相对索引稀疏卷积核压缩(CSF)编码方法同时应用于卷积层(CONV)和全连接层(FC)。根据本专利技术的实施例,首先将卷积层和全连接层的计算统一,即:其中,0≤cho<M,0≤chi<C,0≤r<K,0≤c<K,0≤x<W’,0≤y<H’,W'=(W-K)/S+1,H'=(H-K)/S+1。式中,Vo为输出特征,Vi为输入特征,Wf为卷积核矩阵,S为步长,C为通道数,K为卷积核内核尺寸,M为卷积核数量,W,H为输入特征的每个通道的尺寸维度,W’H’为输出特征的每个通道的尺寸维度。本实施例中,以深度压缩后的Alexnet为例(忽略其他层),Alexnet共有5层卷积层,3层全连接层。本专利技术将一个已经训练好的稀疏网络卷积核矩阵的权重数组重组,将权重数组按本专利技术提供的编码方法得到编码格式进行存放(编码方法将在下文中说明)。实施例中,训练好的caffemodel模型里面包含了每一层(包括卷积层和全连接层)的信息以及权重数组。卷积核堆积数据流从参数模型(训练好的caffem本文档来自技高网
...

【技术保护点】
1.一种用于深度学习网络的卷积核堆积数据流的方法,其特征在于,所述方法包括如下步骤:从参数模型中逐层读取卷积层和全连接层的卷积核矩阵,将卷积核矩阵进行重组;一个通道输入的特征数据与来自同一通道的重组后的多个卷积核权重数组进行卷积计算。

【技术特征摘要】
1.一种用于深度学习网络的卷积核堆积数据流的方法,其特征在于,所述方法包括如下步骤:从参数模型中逐层读取卷积层和全连接层的卷积核矩阵,将卷积核矩阵进行重组;一个通道输入的特征数据与来自同一通道的重组后的多个卷积核权重数组进行卷积计算。2.根据权利要求1所述的方法,其特征在于,所述卷积核矩阵重组通过如下步骤实现:将卷积核矩阵分为M’组,每一组具有m个卷积核矩阵,并且将卷积层的卷积核矩阵的权重数组由四维数组转变为五维数组,将全连接层的卷积核矩阵的权重数组由两维数组转变为三维数组。3.一种相对索引稀疏卷积核压缩的编码方法,其特征在于,所述编码方法包括:将按卷积核通道顺序存放的权重数组展开,按列将m个filter同一通道相同位置的m个卷积核矩阵的权重数组顺序存放。4.根据权利要求3所述的编码方法,其特征在于,所述编码方法还包括:如果第一行中某一个权重数组的值为0,则删除该列;并且,将下一列中第二行的相对索引值加一,第三行的相对列指针减一。5.一种寻找最优存储索引的比特数的方法,其特征在于,所述方法通过如下公式计算:其中,Nz_num为非0卷积核矩阵的权重数组的个数;wbit为存储卷积核矩...

【专利技术属性】
技术研发人员:高日超张盛陈豪钟明远
申请(专利权)人:重庆信络威科技有限公司
类型:发明
国别省市:重庆,50

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

1