基于深度卷积神经网络的层内非均匀的K平均聚类定点量化方法与流程

文档序号:12734901阅读:273来源:国知局
基于深度卷积神经网络的层内非均匀的K平均聚类定点量化方法与流程

本发明涉及深度学习模型压缩领域,特别是面向嵌入式系统的深度卷积神经网络的定点化领域。



背景技术:

随着人工智能的快速发展,以深度学习为主导的算法所设计的应用已经越来愈多的出现在人们的生活,工作和娱乐中。然而深度神经网络往往由其十几甚至上百的卷积层构成,计算过程中产生的特征映射需要占据大量的存储空间。这意味着对于嵌入式应用对导致产品面积大大增加。所以,研究深度卷积神经网络的定点压缩问题,对于减小特征映射的存储开销,提高深度学习的实用价值有着非常非常重要的意义。

目前的深度卷积神经网络中的特征映射定点量化中主要是通过层间规则或者非规则量化方法,以减少特征映射的存储开销。



技术实现要素:

发明目的:本发明所要解决的技术问题是针对深度卷积神经网络中特征映射存储开销过大的问题,提供一种基于深度卷积神经网络的层内非均匀的K平均聚类定点量化方法,从而在保持模型精度的情况下使得存储开销得以大大减少。

为了解决上述技术问题,本发明公开了一种基于深度卷积神经网络的层内非均匀的K平均聚类定点量化方法,包括以下步骤:

步骤一,选取部分深度卷积神经网络的能够正确识别的图像,并提取识别过程中产生的特征映射;

步骤二,对卷积神经网络中的特征映射进行层间非规则量化,在保持模型精度情况下,确定每一层卷积网络的最大量化位数;

步骤三,对于模型中的每一卷积层,利用K平均聚类算法(K Means Clustering)确定满足特征映射分布的定点值,并使定点值的范围在最大量化位数能表示的范围内,用定点值代表特征映射中的值,并以索引的形式进行保存;

步骤四,利用神经网络模型微调方法(Fine Tuning Method)对模型进行微调,消除量化带来的误差。

本发明中,优选地,所述步骤一包括以下步骤:

步骤(11),对已有深度卷积神经网络模型进行前向测试,由于正确样本的特征映射的分布更具有代表性,故选取其中能够正确识别的图像;

步骤(12),提取正确样本的特征映射。

本发明中,优选地,所述步骤二包括以下步骤:

步骤(21),在满足精度的前提下,通过将原本为全精度浮点数的特征映射改用固定位数的定点数表示,如果发生超过定点数表达范围的数,则在二进制下将超过规定位数的比特位截断,对深度卷积神经网络所有卷积层进行统一量化位数的规则量化;

步骤(22),在不大于规则量化所确定的量化位数的前提下,通过层间非规则量化确定每一层卷积神经网络所满足的最大量化位数,以节省更多存储空间;

本发明中,优选地,所述步骤三包括以下步骤:

步骤(31),确定最大能容忍的精度损失,如果量化带来的精度损失超过此阈值,则提高量化位数;

步骤(32),将0和每层卷积层的最大量化位数能达到的最大值分别设为定点值的区间的起点和终点;

步骤(33),在已确定的区间内利用K平均聚类方法对提取的特征映射进行聚类,将定点值设为将聚类中心点,并确保定点值的数量小于最大量化位数可以表示的数量;

步骤(34),浮点数表示的将选取的定点值从小到大对应以相应的索引;

步骤(35),按向下取值的原则,将特征映射中的所有值分别替换为离其最近并小于自己的定点值并保证在小于能同人的最大精度损失的情况下尽可能减小定点值的数量;

步骤(36),表示索引所用的位数小于表示定点值所用的位数,存储时采用定点值对应的索引进行存储可以在层间非规则量化的基础上进一步缩减存储空间;

本发明中,优选地,所述步骤四包括以下步骤:

步骤(41),在满足定点约束的条件下,对模型进行再训练对模型进行微调,消除误差。

本发明的原理是通过提取识别过程中产生的特征映射。其次,对卷积神经网络中的特征映射进行层间非规则K平均聚类量化。然后对于模型中的每一卷积层,在最大量化位数能表示的范围内,通过K平均聚类方法,利用卷积神经网络的分布特征,选取定点值,并用定点值代表特征映射中的值,并以索引的形式进行保存。最后,利用神经网络模型微调方法对模型进行微调,消除量化带来的误差。

有益效果:本发明通过软件和硬件结合方法进行模型压缩,在对深度卷积神经网络进行层内非均匀定点化后,即可大幅度减少其存储开销。本发明在深度神经网络在嵌入式设备中有广泛的应用前景。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。

图1是深度卷积神经网络的分布图示例。

图2是本发明定点值和索引的电路转换单元。

图3是本发明方法简化流程图。

具体实施方式:

本发明,核心思路是利用深度卷积网络的特征映射的冗余性,利用层内非均匀K平均聚类定点量化方法对特征映射进行定点化,通过存储索引值来降低存储需求并使用重训练对模型微调以弥补定点化带来的误差。

本发明公开了一种基于深度卷积神经网络的层内非均匀的K平均聚类定点量化方法,包括以下步骤:

步骤一,对已有的深度卷积神经网络进行前向测试,由于正确样本的特征映射往往更能代表绝大多数样本的特征映射的分布,所以选取能够正确识别的样本。并提取识别过程中产生的特征映射。

步骤二,对卷积神经网络中的特征映射进行层间非规则定点量化,在保持模型精度情况下,确定每一层卷积网络的最大量化位数。首先对卷积神经网络进行规则定点量化,在规则量化基础上进行层间非规则量化,确定每一卷积层自己的对打量化位数;

所述步骤二包括以下步骤:

步骤21,首先对卷积神经网络提取出来的特征映射进行规则定点量化。定点量化是基于二进制的方法,所以定点量化的位数则代表这使用的二进制比特数。不妨假设定点量化所采用的位数为b,则定点量化所表示的范围为:

Range=step*2b, (1)

其中,Range为定点数能表示的范围,step是最低位所能达到的最高精度。不同的精度和定点位数会对定点数范围产生相应的影响。由于原本的特征映射是由全精度浮点数表示,故其值的范围很可能超过了定点数的表示范围,如果超过定点数的表示范围,则需要将其转换为二进制数,并将超过定点数所能达到的最高精度的部分截断。除此以外还要将超过定点数最大表示范围的位数同样截断。由于原本的全精度表示的值损失了部分精度,会造成一定的精度损失。所以需要在定点位数和模型精度进行权衡和取舍。

步骤22,规则定点量化是基于整个卷积神经网络的量化策略。其位数和精度的选择取决于对精度和范围需求最高的卷积层的特征映射。然而有许多卷积层的特征映射并不需要非常高的精度和范围,所以规则量化的结果对于许多卷积层的特征映射存在冗余。所以需要利用非规则量化对每一层采取不同的量化方案。规则量化的结果确定了非规则量化定点位数的上限,之后根据规则量化的所采用的定点位数进行层间非规 则量化。由于深度卷积神经网络每一层均会有不同的分布,故针对每一卷积层再选取适合本层的量化位数,新选取的量化位数不大于规则量化所却确定的全局量化位数。

步骤三,对于模型中的每一卷积层,在最大量化位数能表示的范围内,以一定间隔选取定点值,并用定点值代表特征映射中的值,并以索引的形式进行保存。

所述步骤三包括以下步骤:

步骤31,在将特征映射由全精度浮点数转换位定点数时,很可能导致原本的全精度浮点数对于要转换的定点数无法表示的情况。所以累积下来,会等深度卷积神经网络的精度造成一定的影响。为了权衡量化位数于模型精度,防止模型精度偏差过多。需要定义最大能容忍的精度损失g,如果量化带来的精度损失超过此阈值g,则提高量化位数,g的条件如下:

g≤A-Aq, (2)

其中,A表示初始的全精度浮点数表示下的深度卷积神经网络的精度,Aq表示用定点数来表示深度卷积神经网络之后的精度。当g满足式(2)所示的条件时则可以尝试进一步缩减量化位数。如果模型的精度损失超过g能容忍的最大范围,则需要对现有的定点方案进行调整。

步骤32,为了进一步缩减空间,需要对定点数的数量进行进一步缩减。在选取新的定点数之前确定其区间范围,新的定点数将基于在之前步骤确定的层间非规则量化的结果。将0和每层卷积层的最大量化位数能达到的最大值分别设为定点值的区间的起点和终点

步骤33,在已确定的区间内利用K平均聚类方法对提取的特征映射进行聚类,可以得到契合深度卷积神经网络的特征映射的分布的定点值。特征映射的分布示例如图1所示。对第i个卷积层,设之前步骤中确定的层间非规则量化的定点位数为qmi,在层内非规则K平均聚类量化中选取单个卷积层的特征映射划分为Ki个无交叠的集合 其中Ki≤qmi。定义新的定点位数同样为Ki,其中。Ki位的定点位数共可以表示种定点数其中Pi,k对应的定点值为di,k。通过优化如下所示的K平均聚类问题来求得切合特征映射分布的定点值的最优解:

其中,|Si,j|代表集合Si,j中元素的数量,且代表其中的元素。当K平均聚类计算完成之后,每一层卷积层对用的定点值即可以确定下来。通过该过程可以为每层卷积层 分别选取新的定点值,并且在设计过程中也需要满足之前步骤提高的精度损失不能大于选定的阈值的条件。

步骤34,将选取的定点值从小到大对应以相应的索引,对于Pi,k对应的定点值di,k,设定其对应的索引为k。

步骤35,按向下取值的原则,将特征映射中的所有值分别替换为离其最近并小于自己的定点值。设特征映射中的值为x当时,若dk≤x<dk+1,则将x转换为定点值dk。如果则将x转化为定点值定点值和索引的数字电路转换单元如图2所示。如果精度损失低于g,则进一步降低定点位数Ki,直到精度损失接近超过g。

步骤36,因为表示定点值的索引所需要的位数一般要小于定点值本身所需要的定点位数。所以在将每一层的卷积层的特征映射的值替换为层内非规则K平均聚类确定的定点数之后,需要将定点值转化为对应的索引,并用其索引值进行保存,这样可以进一步减小存储。

步骤四,利用神经网络模型微调方法对模型进行微调,在原有模型的基础上,将全精度浮点数转化为定点数表示会对模型精度带来一定的损失。所以需要使用神经网络模型微调方法对模型就行微调。在微调时,需要分别进行前向计算以获得损失函数和倒向累加梯度调整参数两种方式的计算。在进行前向计算时,需要对模型的特征映射进行如上文所示的定点约束。而在倒向进行梯度的计算式采用全精度计算,这样可以更好的使模型收敛,防止因为定点精度问题导致梯度消失现象发生。在通过模型微调之后,可以弥补特征映射定点化带来的误差,使深度卷积模型可以在无精度损失的情况下实现特征映射的存储空间的大幅度压缩。

本发明提供了基于深度卷积神经网络的层内非均匀的K平均聚类定点量化方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1