一种卷积神经网络权重参数量化训练方法及系统与流程

文档序号:13575445阅读:668来源:国知局
一种卷积神经网络权重参数量化训练方法及系统与流程

本发明属于人工智能技术领域,具体涉及一种卷积神经网络权重参数量化训练方法及系统。



背景技术:

随着人工智能的发展,深度学习已经成为目前非常热门的研究方向,吸引了极大的关注,并被广泛应用在计算机视觉、语音识别、自动驾驶等热门领域上。其中,图像识别应用作为核心应用领域之一受到广泛的关注并取得很多显著的成果。在图像分类和识别中,卷积神经网络(convolutionalneuralnetwork,以下简称cnn)的性能最好。cnn网络是一种前馈神经网络,主要由一个或多个卷积层、全连接层及其关联权重参数组成,辅以归一化层、池化层,归一化层后通常连接一个缩放层,该缩放层提供可学习参数,增加了归一化层的灵活性。归一化层是在最新型神经网络中使用的特殊网络层,通常和放置在卷积层后,用于规范化卷积层输出,使其输出结果均值为零,方差为一。目前,深度残差网络已经达到了很高的识别精度,甚至超越了人类的图像识别能力。这一研究结果令基于深度学习的图像识别取得了很大进展。

目前,在图像识别应用中,采用了残差结构的cnn网络能通过增加深度来获得更高的识别准确率。但是,随着cnn网络深度的增加,计算复杂度和数据量也会大幅度增加,对计算、存储和数据通信的压力越来越大。不论是部署在数据中心的应用还是嵌入式应用,支持高准确率的深度cnn模型都需要更高的计算、存储和数据通信开销。目前,为了获得高效能,多采用硬件加速来实现cnn的正向过程。研究者们提出了不同的深度神经网络加速器架构来加速网络实现。但是,大部分之前的工作仅关注了浅层且结构简单的卷积神经网络模型如alexnet[5]和vgg[6]网络结构。而用于处理最先进的卷积神经网络模型需要处理更加复杂的网络和更大的计算和存储需求。在这种情况下,带宽和存储空间成为了一大难关。特别是嵌入式应用,尽管采用硬件加速器,但由于功耗的限制,复杂的cnn网络很难达到实时处理的计算速度。



技术实现要素:

本发明的目的是提供一种可大幅降低网络计算复杂度、权重参数的存储容量和传输带宽的卷积神经网络权重参数量化训练方法及系统。

本发明提供的卷积神经网络权重参数量化训练方法,所述卷积神经网络包括卷积层、归一化层、缩放层、全连接层和池化层,所述方法的具体步骤为:

(1)根据所述归一化层的权重参数,更新所述缩放层的权重参数;

(2)移除所述归一化层;

(3)采用指数量化方法,对所述缩放层的权重参数进行量化;

(4)根据所述缩放层的权重参数的量化过程,调节卷积层的权重参数;

(5)采用分组递归方法,对所述卷积层的权重参数进行量化;

(6)根据所述缩放层的参数更新所述卷积层的参数;

(7)移除所述缩放层。

可选的,步骤(1)所述根据所述归一化层的权重参数更新所述缩放层的权重参数,具体做法为:

利用公式更新所述缩放层的权重参数,其中,r,β为初始缩放层的权重参数,r表示缩放比例,β表示缩放偏置;是归一化层的两大参数,其中,μb表示归一化层输入数据的均值,表示归一化层输入数据的方差,r′,β′为缩放层更新后的权重参数,r′表示缩放层的新缩放参数,β′表示缩放层的新偏置参数。

可选的,步骤(3)所述采用指数量化方法对所述缩放层的权重参数进行量化,具体做法:

利用公式对所述缩放层的权重参数进行量化,其中wz代表量化前缩放层的权重参数,表示量化后缩放层的权重参数,α为整数,2α为距离量化前所述缩放层的权重参数最近的数值,sgn()函数用于取数据符号,abs函数用于取数据的绝对值。

可选的,步骤(4)所述根据所述缩放层的权重参数的量化过程调节卷积层的权重参数,具体做法为:

(1)计算量化后缩放层权重参数与量化前缩放层权重参数的比值;

(2)根据该比值缩放卷积层的权重参数。

可选的,步骤(5)所述采用分组递归方法对所述卷积层的权重参数进行量化,具体流程为:

(1)根据所述权重参数的权重绝对值,将所述卷积层的每一层权重参数分为量化组和训练组,所述量化组中权重参数的权重绝对值高于所述训练组中权重参数的权重绝对值;

(2)在量化范围内,利用指数量化方法对所述量化组中权重参数进行量化;

(3)利用给定的训练参数训练所述训练组的权重参数。

可选的,步骤(5)中流程(3)所述在量化范围内利用指数量化方法对所述量化组中权重参数进行量化,具体为:

利用公式确定所述量化范围pl,其中n1>n2,n1表示所述量化的上界,n2表示所述量化的下界;

利用公式对所述量化组中权重参数进行量化;其中wc代表量化前量化组中的权重参数,表示量化后量化组中的权重参数,α为整数,2α为距离量化前权重参数最近的数值,sgn()函数用于取数据符号,abs函数用于取数据的绝对值。

可选的,步骤(5)所述采用分组递归方法对所述卷积层的权重参数进行量化,之前还包括:

固定量化后的所述缩放层的权重参数保持不变。

可选的,步骤(6)所述根据所述缩放层的参数更新所述卷积层的参数,具体包括:

利用公式更新所述卷积层的权重参数,其中w1表示卷积层更新前的权重参数;表示卷积层更新后的权重参数;r1′表示缩放层的缩放参数;

利用公式b1′=β1′/r1′将所述缩放层的偏置参数更新至所述卷积层,其中β1′表示更新前缩放层的偏置参数;b1′表示更新后的卷积层的偏置参数;r1′表示缩放层的缩放参数。

本发明还提供一种卷积神经网络权重参数量化训练系统,所述卷积神经网络包括卷积层、归一化层、缩放层、全连接层和池化层,所述系统包括:

(1)缩放层更新模块,用于根据所述归一化层的权重参数更新所述缩放层的权重参数;

(2)归一化层移除模块,用于移除所述归一化层;对应于方法中步骤(2)的操作内容;

(3)指数量化模块,用于采用指数量化方法对所述缩放层的权重参数进行量化;

(4)调节模块,用于根据所述缩放层的权重参数的量化过程调节卷积层的权重参数;

(5)分组递归量化模块,用于采用分组递归方法对所述卷积层的权重参数进行量化;

(6)卷积层更新模块,用于根据所述缩放层的参数更新所述卷积层的参数;

(7)缩放层移除模块,用于移除所述缩放层。

这7个模块的功能分别对应于方法中步骤(1)-步骤(7)的操作内容。

可选的,所述系统还包括:

固定模块,用于在采用分组递归方法对所述卷积层的权重参数进行量化之前固定量化后的所述缩放层的权重参数保持不变。

本发明在卷积神经网络计算过程中乘法操作彻底被移位操作代替,进而大幅降低网络计算复杂度、权重参数的存储容量和传输带宽,可获得无乘法器的硬件实现以达到更快的计算加速目的。

本发明提出的方法通过调整和训练卷积神经网络,在完成调整之后,实现了其他方法无法做到的网络结构简化和无损压缩功能。

首先,网络精度方面,本发明在完成调整训练流程之后,不同深度的残差网络均提升了一定的网络精度。

其次,本发明在无损压缩的同时,也成功去除了归一化层和缩放层,这是其他方法无法做到的。去除了归一化层和缩放层简化了卷积神经网络的结构,加速卷积神经网络推断过程。实验结果表明,结构优化后的卷积神经网络在cpu和gpu环境下都能够提升运算速率。进一步考虑硬件实现目标时,简化网络结构不仅带来了计算加速的效果,同时能精简硬件单元,去除额外网络层带来的存储和计算开销,从而提高硬件性能。

再次,本发明将卷积神经网络的所有权重参数都量化到指数表示,这使得整个卷积神经网络需要的存储空间大量降低,有利于提升硬件实现性能。硬件实现的另一大优点体现在计算单元上,指数表示的卷积神经网络能够采用移位计算单元取代乘法计算单元,在简化设计面积的同时也能提高网络性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明卷积神经网络权重参数量化训练方法实施例1流程图。

图2为本发明卷积神经网络权重参数量化训练系统结构图。

图3为本发明卷积神经网络权重参数量化训练方法实施例2流程图。

图4a-4c为本发明卷积神经网络权重参数量化训练方法实施例2中增量量化方法的流程图;其中4a为预训练好的全精度浮点网络,4b为经过第一轮权重划分,分组量化和重训练更新后得到的新网络,4c为量化完成后的低精度网络。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1为本发明卷积神经网络权重参数量化训练方法实施例1流程图。本实施例所涉及的卷积神经网络包括卷积层、归一化层、缩放层、全连接层和池化层。如图1所示,所述方法包括:

步骤101:更新缩放层的权重参数。根据所述归一化层的权重参数更新所述缩放层的权重参数。具体的,利用公式更新所述缩放层的权重参数,其中,r,β为初始缩放层权重参数,r表示缩放比例,β表示缩放偏置;是归一化层的两大参数,其中,μb表示归一化层输入数据的均值,表示归一化层输入数据的方差,r′,β′为缩放层更新后的权重参数,r′表示缩放层的新缩放权重参数,β′表示缩放层的新偏置权重参数。更新后的缩放层代替了归一化层和更新前的缩放层。

步骤102:移除归一化层。由于更新后的缩放层可以实现归一化层的功能,则缩放层更新后,归一化层的权重参数变为(0,1),则此时无需保留“无用”的归一化层和额外的归一化层权重参数,可直接将该层移除,简化网络结构。

步骤103:对缩放层的权重参数进行量化。采用指数量化方法对更新后的缩放层的权重参数进行量化,指数量化方法是将网络权重参数量化为二的指数,量化后参数用于表示为二的指数位。

量化神经网络中有三种常用的网络权重参数量化方法,分别是线性量化方法(linearquantization)、指数量化方法(logquantization)和二进制量化方法(binaryquantization)。其中,线性量化方法最为简洁,该方法将网络权重参数转化为低位宽的定点数或微浮点数表示,能够在8-16比特量化级别下无损量化卷积神经网络,但量化至更低位数时出现明显的精度损失。二进制量化方法可视为线性量化和指数量化的单比特特例,在极大地减少神经网络的计算量的同时也带来了无法恢复的精度损失。指数量化方法相比于线性量化方法,在硬件实现上有着极大的优势。通过指数量化方法,可有效地降低网络数据量,用硬件实现时,可以采用移位器取代乘法器,在简化硬件复杂度的同时也能提高网络性能。这使得指数量化方法是理想的量化方法。

综上所述,指数量化方法在降低cnn计算和数据复杂度上取得了显著进展,但同时也存在问题。现有指数量化方法仅适用于在卷积层和全连接层参数上。但是,最新的cnn结构发展出了特殊的归一化层(batchnormalizationlayer),归一化层通过规范化卷积层的输出,可以在神经网络训练阶段提升训练速度,加快收敛过程,并能少量提升分类效果。在归一化层中直接采用指数量化方法会损失大量精度。有具体实验中尝试用指数量化方法量化归一化层参数,结果在4位等级量化时损失了30%精度,8位等级量化时损失了2%精度。如此大的精度损失使得指数量化方法难以在有归一化层的卷积神经网络上实现无损量化压缩。因此,本申请中通过步骤101和步骤102的操作后,移除归一化层,对缩放层进行指数量化,实现了无损精度的量化过程。

采用指数量化方法对更新后的缩放层的权重参数进行量化,具体包括:

利用公式对所述缩放层的权重参数进行量化,其中wz代表量化前缩放层的权重参数,表示量化后缩放层的权重参数,α为整数,2α为距离量化前所述缩放层的权重参数最近的数值,sgn()函数用于取数据符号,abs函数用于取数据的绝对值。

步骤104:调节卷积层的权重参数。根据所述缩放层的权重参数的量化过程调节卷积层的权重参数。具体包括:

计算量化后缩放层权重参数与量化前缩放层权重参数的比值;

根据该比值缩放卷积层的权重参数。

步骤105:对卷积层的权重参数进行量化。采用分组递归方法对所述卷积层的权重参数进行量化,具体包括:

根据所述权重参数的权重绝对值将所述卷积层的每一层权重参数分为量化组和训练组,所述量化组中权重参数的权重绝对值高于所述训练组中权重参数的权重绝对值;

在量化范围内利用指数量化方法对所述量化组中权重参数进行量化;

利用给定的训练权重参数训练所述训练组的权重参数。

在量化范围内利用指数量化方法对所述量化组中权重参数进行量化,具体包括:

利用公式确定所述量化范围pl,其中n1>n2,n1表示所述量化的上界,n2表示所述量化的下界;

利用公式对所述量化组中权重参数进行量化;其中wc代表量化前量化组中的权重参数,表示量化后量化组中的权重参数,α为整数,2α为距离量化前权重参数最近的数值,sgn()函数用于取数据符号,abs函数用于取数据的绝对值。

步骤106:更新卷积层的参数。根据所述缩放层的参数更新所述卷积层的参数,具体包括:

利用公式更新所述卷积层的权重参数,其中w1表示卷积层更新前的权重参数;表示卷积层更新后的权重参数;r1′表示缩放层的缩放参数;

利用公式b1′=β1′/r1′将所述缩放层的偏置参数更新至所述卷积层,其中β1′表示更新前缩放层的偏置参数;b1′表示更新后的卷积层的偏置参数;r1′表示缩放层的缩放参数。

步骤107:移除缩放层。最大程度地简化网络结构。

图2为本发明卷积神经网络权重参数量化训练系统结构图。如图2所示,所述系统的结构与图1所示的流程图一一对应,所述系统包括:

缩放层更新模块201,用于根据所述归一化层的权重参数更新所述缩放层的权重参数;

归一化层移除模块202,用于移除所述归一化层;

指数量化模块203,用于采用指数量化方法对所述缩放层的权重参数进行量化;

调节模块204,用于根据所述缩放层的权重参数的量化过程调节卷积层的权重参数;

分组递归量化模块205,用于采用分组递归方法对所述卷积层的权重参数进行量化;

卷积层更新模块206,用于根据所述缩放层的参数更新所述卷积层的参数;

缩放层移除模块207,用于移除所述缩放层。

图3为本发明卷积神经网络权重参数量化训练方法实施例2流程图。如图3所示,所述方法包括三个阶段:微调阶段,重训练阶段和转移阶段。本实施例中涉及的参数通常是指权重参数。

微调阶段301:移除归一化层并量化缩放层。输入网络结构包括了卷积层、归一化层和缩放层,通过微调操作移除了归一化层并量化了缩放层。

微调的目的是从复杂网络中排除归一化层并保持网络精度不变。在微调阶段中将归一化层和缩放层合并为一个单独的缩放层,该缩放层参数是原归一化层和缩放层参数的叠加。而正确理解归一化层和缩放层的性质是正确整合这两层的前提。

归一化层用来归一化卷积层的输出,使其归一化到零均值和单位方差上。这样一来,归一化层的输出都被归一化到零均值和单位方差分布当中。这样做的好处在于加快网络的收敛速率并支持更深层的网络结构,该层的输出向量可表示为:

其中xi代表归一化层的输入数据,下标i表示第i层,m代表输入数据的数量,是归一化层的两大参数,其中μb代表归一化层输入数据的均值,代表归一化层输入数据的方差。公式表明了归一化层的工作是将输入参数经过归一化操作后输出归一化向量完成归一化层操作。

归一化层后通常连接一个缩放层,该缩放层提供了两个可学习参数(r,β),增加了归一化层的灵活性。r为缩放比例,β为缩放偏置。这一层的功能是改变归一化层固化的输出分布,使得网络的输出分布能够按照网络的需求来设定。缩放层可表示为β(xi),bnr,β(xi)表示对数据xi的归一化操作,yi表示缩放层的输出。

根据归一化层更新缩放层的参数为:r′,β′为缩放层更新后的参数,r′表示缩放层的新缩放参数,β′表示缩放层的新偏置参数,此时,更新后的缩放层表示为:此公式实现了将归一化层和缩放层参数的融合。先在权重转移阶段将归一化层参数转移到为缩放层上。转移完毕后归一化层参数变为(0,1),缩放层参数(r,β)转变为(r′,β′)。显然,权重转移后的网络和转移前的网络在数学上是等价的,实验测试表明转移前后的网络精度也是完全相同的。

完成权重转移操作之后,归一化层参数变为(0,1),且在新的参数条件下归一化层的输出和输入完全相同。事实上,权重转移之后归一化层已不再工作,其归一化功能完全被缩放层所包括。既然如此,便无需保留‘无用’的归一化层和额外的归一化参数,可直接将其从网络结构和网络参数中剔除。同理,剔除归一化层后网络精度和完全不变。工作进行到这一步,成功地剔除了归一化层,部分实现了简化网络结构和削减网络参数的目的。

去除了归一化层以后,网络中仅存在卷积层和缩放层两层。为了指数量化缩放层和卷积层参数并保持精度无损,需要同时微调缩放层和卷积层两层,用卷积层的参数微调来弥补缩放量化带来的精度损失。接下来对缩放层执行指数量化操作,指数量化将该层所有参数量化到离原参数距离最近的二的指数或零来表示,量化采用下列公式:该公式的目的是为了将权重量化到数值上最近的二的指数上去。例如,公式将绝对值位于[1,0.75]间的权重量化为±1,将绝对值位于(0.75,0.5]间的权重量化为±0.5。这种量化操作可以视作指数量化上的四舍五入。其好处在于处理简单,性能高效,且在公式中可以推导得出,量化后的参数被限制在量化前参数的当中,保证了网络结构和参数分布不会有大的改变,可以最小化缩放层参数量化对整个网络参数范围的影响,使得接下的重训练方法可以正常运行。

完成对缩放层的指数量化之后,整个网络的权重分布被改写,这将导致网络精度的直接下降。为了弥补网络精度的下降,需要微调卷积层参数来弥补缩放层量化带来的不良后果。微调方法通过计算量化后缩放层参数和量化前缩放层参数之比,再用该缩放比缩放卷积层参数,使得整个卷积神经网络保持不变。这一创新使得能够在量化缩放层的同时保持整个网络精度不变。

对网络的微调如下列公式所示:

其中s代表缩放倍率,rpre代表量化前的缩放层参数,代表量化后的缩放层参数,分别代表缩放前的卷积层参数和缩放后的卷积层参数。

完成微调阶段后,卷积神经网络中归一化层被剔除,缩放层被量化,卷积层被微调,而网络精度保持不变,在剔除归一化层并量化缩放层的同时保持了网络的功能和性质,同时完成了微调后才能进一步在最后转移缩放层并最终去除,使得网络结构得到最大程度的简化。

重训练阶段302:精度恢复。量化了卷积层,同时保持网络精度因量化而降低,重训练完成后所有网络参数都被量化为二的指数。

重训练目的是量化卷积层参数并保持网络精度不下降。但该阶段量化卷积层与调整阶段量化缩放层不同,目前网络中仅剩下卷积层和缩放层,不存在其他层可供卷积层来转移参数。若再将参数转移回缩放层,会破坏缩放层量化结果,无法将权重保持在指数形式。因此,假设直接量化卷积层参数,网络无法通过权重转移的方法来弥补精度。

为此,必须提出针对单独层的量化方法来量化卷积层,并通过训练来恢复网络精度。首先固定在前阶段完成量化的缩放层参数不变,保证其量化结果不会受到重训练的影响,在该阶段我们采用了aojunzhou提出的增量量化方法来无损量化卷积层。

增量量化方法针对卷积神经网络的卷积层和全连接层的权重参数,通过分组递归训练方法可有效地将权重参数量化为指数。增量量化核心是引入了三个独立的量化步骤,包括权重划分,分组量化和重训练。下面将直接详细介绍三步骤流程。

首先,权重划分将全精度浮点网络模型中每一层参数分为两组,第一组中的参数将被直接量化并固定,通过重新训练另一组权重参数来弥补量化带来的精度损失。在这里,分组按照网络权重的绝对值来划分,网络权重绝对值较高的被划为量化组,绝对值较低的权重被划为训练组。这样训练组有较广泛的训练空间,能有效地弥补量化组带来的量化误差。

分组量化将量化组权重量化为指数表示,此时要考虑网络权重范围和量化精度的限制,因此限制该层量化范围为pl,n1>n2,n1表示所述量化的上界,n2表示所述量化的下界,所有被量化过的参数都不会超出在的范围。这意味着在指数量化中,所有绝对值小于的参数都将被强制置为零。显然,指数量化需要在指数量化之前确定n1和n2的值,在量化之前预先设定好了量化位宽bits,这样一来,只需计算得到n1便能自动推导出n2的值n2=n1-2bits。量化过程中可通过计算得到n1:

其中wl代表第l层卷积层参数,floor代表向下取整,max()代表取最大值,abs函数用于取数据的绝对值。这样计算得到的n1能够将网络绝对值最大的参数正确地量化为指数。一旦确定了量化范围pl,便能得到网络量化公式:其中wc代表量化前量化组中的参数,表示量化后量化组中的参数,α为整数,2α为距离量化前参数最近的数值,sgn()函数用于取数据符号,abs函数用于取数据的绝对值。

最后用给的训练参数重训练训练组参数,弥补网络精度。上述三步骤在增量量化流程中依次迭代执行,直到所有的权重都量化为低精度为止。通常在增量量化后,卷积神经网络被简化,而网络的精度有微量的提升。增量量化方法流程如图4所示,图4a-4c为本发明卷积神经网络权重参数量化训练方法实施例2中增量量化方法的流程图;其中4a为预训练好的全精度浮点网络,4b为经过第一轮权重划分,分组量化和重训练更新后得到的新网络,4c为量化完成后的低精度网络:图4a代表了第一轮增量量化操作,在该轮量化中需要将预训练好的全精度浮点网络分为两组,每组各拥有一半的网络权重。在经过一轮权重划分,分组量化和重训练后得到了图4b所示的网络,该网络量化了一半的网络权重,并重新训练剩下一半的网络权重。经过一轮增量量化后,得到的新网络能提升一定的精度。

图中(2)代表了在未量化的网络权重中重复增量量化操作(1)直到所有权重都被量化为止,每轮操作都将剩余的浮点权重分为两组(通常采用均分方法),故在整个流程中量化权重的比例为50%75%87.5%100%。最后一轮剩下12.5%的权重时,不将权重分组而是将所有权重直接量化得到最后的量化结果,这是因为实验表面最后剩下的权重对精度的影响极小,直接量化不会造成网络精度的损失。我们在imagenet图像集上使用resnet使用增量量化方法。成功将网络权重参数量化到4位指数表示,并得到了约1%~2%的精度提升。

移除缩放层阶段303:仅保留了核心的卷积层,最大程度地简化了网络结构。三阶段结束之后,网络参数被指数量化,结构被简化,网络的计算量和占用空间都被极大地降低。

完成了微调阶段和重训练阶段之后,卷积层和缩放层的参数都被量化到二的指数上,且网络精度得到一定程度的提升。可以说我们已经完成了网络的量化操作,但我们还可以进一步优化网络结构。在参数转移阶段会将缩放层的缩放参数直接转移到卷积层上,显然,任意两个同底数相乘得到的结果依然是同底指数,网络权重的依然保持指数化状态。但是,由于缩放层的参数采用的是就近量化方法,该方法目的使最小化其量化对参数范围的影响,但同时无法保持缩放层的量化范围。将缩放层参数转移到卷积层上将影响卷积层参数的量化范围,使其超出量化限定的范围pl。为此,需要再次量化卷积层参数,重新确定权重参数范围,再次量化网络参数,将所有少于的参数量化为零。这将会造成一定的精度损失,但此时去除的都是绝对值范围最小的网络权重,这将仅仅引入约0.1%的精度损失,完全可以忽略不计。

同时,缩放层的偏置也随其缩放参数一并转移,该偏置将在除去缩放层缩放参数后叠加在卷积层偏置上。因为在残差网络中卷积层不具备偏置参数,因此在参数转移阶段我们需要使能卷积层偏置功能。参数转移遵循以下公式:其中w1表示卷积层更新前的参数;表示卷积层更新后的参数;r1′表示缩放层的缩放参数,β1′表示更新前缩放层的偏置参数;b1′表示更新后的卷积层的偏置参数;r1′表示缩放层的缩放参数。在完成上述转移之后,缩放层的缩放参数变为1,偏置参数变为0,此时缩放层已不再起到缩放功能,可以直接在网络中移除缩放层而不改变网络性质和网络精度。完成了这一阶段的所有操作之后,卷积神经网络便只剩下指数化的卷积层参数,网络结构最大程度地简化。

最终,经过本发明的网络简化和量化操作之后,输出指数量化并去除归一化层和缩放层的卷积神经网络。而网络参数被指数量化之后,所需的存储空间从32位降低到了4位,降低了八倍的存储开销。而用移位器取代乘法器可使单位计算单元占用的面积和功耗减低,同样的硬件资源可放置更多的计算单元,从而提升了网络的性能和功耗开销。而网络结构简化完毕之后,再无需为归一化层和缩放层配置额外的计算单元和硬件资源,网络得以最优化地表达。

总结一下三阶段操作的特点:(1)微调阶段在通过微调上层卷积层弥补下层缩放层的量化误差;(2)重训练阶段仅有单独的卷积网络,无法微调处理,采用aojunzhou提出的分组量化方法,该方法可视作同层内的参数微调方法;(3)权重转移阶段将卷积神经网络简化到单独的卷积层,最大程度上简化了网络结构;(4)通过联合使用微调、重训练和权重转移方法,该项发明有能力将浮点卷积神经网络量化到指数模式并简化结构同时保持网络精度不变。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

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