CN111160524A - 一种两阶段的卷积神经网络模型压缩方法 - Google Patents

一种两阶段的卷积神经网络模型压缩方法 Download PDF

Info

Publication number
CN111160524A
CN111160524A CN201911296807.3A CN201911296807A CN111160524A CN 111160524 A CN111160524 A CN 111160524A CN 201911296807 A CN201911296807 A CN 201911296807A CN 111160524 A CN111160524 A CN 111160524A
Authority
CN
China
Prior art keywords
neural network
convolutional neural
network model
pruning
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911296807.3A
Other languages
English (en)
Inventor
孟晓
于立新
秦智勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Microelectronic Technology Institute
Mxtronics Corp
Original Assignee
Beijing Microelectronic Technology Institute
Mxtronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Microelectronic Technology Institute, Mxtronics Corp filed Critical Beijing Microelectronic Technology Institute
Priority to CN201911296807.3A priority Critical patent/CN111160524A/zh
Publication of CN111160524A publication Critical patent/CN111160524A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Abstract

本发明公开了一种两阶段的卷积神经网络模型压缩方法,其特征在于包括如下步骤:(1)对已训练的卷积神经网络模型进行网络剪枝处理;(2)对已经经过剪枝处理的卷积神经网络模型进行固定位宽的量化处理,完成卷积神经网络模型压缩。本发明通过这种两阶段的模型压缩的方法,极大地降低了卷积神经网络模型的参数存储量和运算量,为在嵌入式系统中实现卷积神经网络算法的推理过程提供了更精简的网络模型。

Description

一种两阶段的卷积神经网络模型压缩方法
技术领域
本发明属于嵌入式应用领域,涉及一种两阶段的卷积神经网络模型压缩方法。
背景技术
随着深度学习的兴起,卷积神经网络CNN(Convolutional Neural Network)的研究得到进一步的发展。其作为人工智能的代表性技术之一,已经广泛的应用在计算机视觉,自然语言处理和自动驾驶等多个领域,并取得了前所未有的突破和成就,展现了卷积神经网络在模式识别算法中的主导地位。
随着AI+IoT的兴起,面向移动终端和嵌入式设备的实际应用需求暴增。但是,复杂的神经网络模型动辄几百兆的参数和过亿的运算量,造成诸多实际应用很难在特定场景落地。例如用于图像识别的卷积神经网络VGG-16网络,卷积和全连接层一共包括30.94G运算量,138M参数量。为了满足卷积神经网络技术实际的应用需求,不仅需要设计性能优越的算法模型,还有大量的工作是进行算法模型压缩和推理加速。神经网络技术的发展研究需要海量数据并行运算,传统处理器架构无法支撑神经网络的大规模并行计算需求。为了适应新架构的神经网络硬件结构,使得智能算法在移动终端和嵌入式设备上能够以较低的功耗,较高的性能完成,需要对卷积神经网络进行模型压缩,降低网络模型的运算量和参数存储量。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种两阶段的卷积神经网络的模型压缩方法,降低了神经网络模型的参数存储量和运算量。
本发明的技术解决方案是:
一种两阶段的卷积神经网络模型压缩方法,包括如下步骤:
(1)对已训练的卷积神经网络模型进行网络剪枝处理;
(2)对已经经过剪枝处理的卷积神经网络模型进行固定位宽的量化处理,完成卷积神经网络模型压缩。
所述网络剪枝处理的步骤如下:
(1.1)进行剪枝的初始化设置;
(1.2)网络剪枝;
(1.3)网络微调。
所述步骤(1.1)的实现方式如下:
通过对剪枝比率的预设置,确定进行网络剪枝的阈值;剪枝比率的预设值为30%,40%,50%或60%,从而得到每一层不同的阈值,通过公式threshold=|W(t)·R|,得到每一层的阈值threshold,W(t)为第t层的权重值,R为剪枝比率的预设置。
所述步骤(1.2)中,将卷积神经网络模型中神经元之间小于阈值的权重设置为0,其他保留原值,实现网络剪枝,得到稀疏网络结构。
所述步骤(1.3)中,网络微调的方式如下:
对网络剪枝后的卷积神经网络模型在训练集上继续进行训练,通过反向传播降低网络的训练误差,更新权重值,改变学习率,直到进一步的收敛。
所述步骤(2)中,采用如下方法对已经经过剪枝处理的卷积神经网络模型进行固定位宽的量化处理:
(2.1)对已经经过剪枝处理的卷积神经网络模型的权重数据进行固定位宽的量化处理,得到量化后的权重数据;量化前的权重数据为32位浮点数据格式,量化后的权重数据为固定位宽数据;
(2.2)基于已经经过剪枝处理的卷积神经网络模型,对输入的特征图数据进行固定位宽的量化处理,得到量化后的特征图数据。
步骤(2.1)的实现方式如下:
(2.1.1)对卷积神经网络模型每一层权重数据进行分析,得到每一层量化后的权重数据整数位数长度IL和和分数位数长度FL;
(2.1.2)在卷积神经网络模型的前向传播过程中,利用如下方法获得每一层权重数据x的输出结果:
Figure BDA0002320789970000031
∈是量化的步长,∈的值为2-FL
(2.1.3)考虑到数据位宽的精度饱和导致的内存溢出的问题,利用如下转换算法将每一层权重数据x转化为量化后的权重数据n;
Figure BDA0002320789970000032
步骤(2.2)的实现方式如下:
(2.2.1)对卷积神经网络模型每一层特征图数据进行分析,得到每一层量化后的特征图数据整数位数长度IL1和和分数位数长度FL1;
(2.2.2)基于上一层量化后的权重数据和特征图数据,实现卷积神经网络模型的前向传播,在前向传播过程中,利用如下方法获得每一层特征图数据y的输出结果:
Figure BDA0002320789970000033
∈1是量化的步长,∈1的值为2-FL1
(2.2.3)考虑到数据位宽的精度饱和导致的内存溢出的问题,利用如下转换算法将每一层特征图数据y转化为量化后的特征图数据m;
Figure BDA0002320789970000034
本发明与现有技术相比的优点在于:
1、本发明通过剪枝处理和固定位宽的量化处理,实现了对卷积神经网络模型两阶段的压缩,很大程度的提高了模型的压缩率,降低了卷积神经网络模型的运算量和参数存储量。
2、在第一个阶段的剪枝处理中,采用剪枝的初始化设置,更简便的确定神经网络模型的阈值,同时实现不同卷积层获得特定的阈值。
3、在第二个阶段的量化处理中,采用一种固定位宽的量化方法,实现更低精度的权重数据和特征图数据,进一步的提高压缩率。
附图说明
图1为本发明的剪枝处理流程图;
图2为本发明的网络剪枝的算法伪代码;
图3为本发明剪枝处理前后变化图;
图4为本发明的量化算法实现流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清晰,下面将结合附图对本发明的实施方式做进一步详细描述。
本发明克服了现阶段卷积神经网络算法在嵌入式系统中实现存在的计算复杂度和在存储上的带宽限制的困难,提供了一种两阶段的卷积神经网络的模型压缩方法,降低了神经网络模型的参数存储量和运算量。
本发明的一种两阶段的卷积神经网络模型压缩方法,包括网络剪枝处理和固定位宽的量化处理两个阶段。如图1所示,本发明所述的网络剪枝处理,对于已训练的CNN模型,采用剪枝的初始化设置,网络剪枝和网络微调的3个步骤。其中:
(1)、网络剪枝的初始化设置
如图2所示,对于已训练卷积神经网络模型,首先进行网络剪枝的初始化设置,包括剪枝比率的预设置,用来确定进行网络剪枝的阈值。为了得到最好的性能同时保证模型的准确率,预设置了不同的剪枝比率,如30%,40%,50%,60%,从而可以得到每一层不同的阈值,即神经网络模型的每一层都有一个预设置的阈值,对于按照降序排序好的权重模型,通过公式threshold=|W(t)·R|,得到每一层的阈值。W(t)为第t层的权重值,R为剪枝比率的预设置。
(2)、网络剪枝
进行网络剪枝,可以得到稀疏网络。对网络进行剪枝采用剪掉神经元之间的权重连接的方法,从神经网络剪枝的初始化设置中,可以得到动态的阈值,即每一卷积层都有预设值的阈值。为了实现稀疏矩阵同时能够用于反向传播继续更新权重,本发明设置了mask的参数,当权重的绝对值大于阈值时,mask参数值为1,否则设置为0。这样就实现了小于阈值的权重设置为0,其他保留原值。以多层感知机为例,网络剪枝前后变化如图3所示。神经元之间权重值为0,我们认为是可以剪枝掉的网络连接值,不为0的值,即保留神经元之间的连接。在剪枝之前,layer i和layer i+1是密集连接的,在剪枝之后,layer i和layer i+1是稀疏连接的。
(3)、网络微调
对神经网络进行剪枝,可以剪掉神经网络的大部分连接,从而会使得神经网络的准确率降低。为了弥补降低的准确率,对神经网络进行了微调。本发明在这一步对剪枝后的神经网络在训练集上继续进行训练,通过反向传播进一步降低网络的训练误差,更新权重值,改变学习率,网络微调和网络剪枝是一个迭代的过程,每一次迭代学习率降低为10%,直到进一步的收敛。
本发明通过剪枝处理,在保证精度损失在1%-3%的范围内,剪枝处理实现了7.91倍-11.83倍的压缩比。
对于固定位宽的量化方法,与使用自适应码表的量化方法不同,这是对卷积神经网络模型使用固定精度的数据来表示神经网络中的权重参数和输入输出层的特征图数据,不需要存储共享码表的索引值。
为了减少数据的精度,降低硬件加速器对数据带宽的要求和减少计算的开销,可以将32位的浮点数据(权重参数和输入输出层的特征图数据),降低为固定位宽(8位或16位)数据。因为卷积神经网络中最消耗计算和存储资源的是卷积层和全连接层,而且两种操作主要的运算形式都可以表示为MAC操作。所以说在硬件加速器中可以使用低精度的数据计算乘累加操作。
本发明将权重数据和输入的特征图数据转化为固定位宽的定点数据(如8位)。以权重数据为例,固定位宽定点数据的表示方法采用[IL.FL],其中IL和FL分别代表整数和分数的位数长度。固定位宽定点数据的计算如公式(1)所示,bw为固定位宽的定点数据的位宽,bw=IL+FL+1,S为符号位,为0或1,Bi为权重数据或特征图数据第i位上的数字,分数的位数的长度可以表示为负数。
Figure BDA0002320789970000061
利用公式(2)获得每一层权重数据x的输出结果,其中∈是量化的步长,是使用这种方法能够表达的最小的正数,∈的值为2-FL
Figure BDA0002320789970000063
是小于或等于x的最大的量化值。在卷积神经网络的前向传播的过程中,都采用这种量化舍入的方法。
Figure BDA0002320789970000062
对于有符号数据,使用[IL.FL]的方法,可以表示的最大值为xmax=2IL-1-2-FL,最小值为xmin=-2IL-1,所以考虑到数据位宽的精度饱和导致的内存溢出的问题,本发明利用公式(3)将每一层权重数据x转化为量化后的权重数据n。
Figure BDA0002320789970000071
对于特征地图数据处理方法与权重数据处理方法近似。
对卷积神经网络模型每一层特征图数据进行分析,得到每一层量化后的特征图数据整数位数长度IL1和和分数位数长度FL1。
基于上一层量化后的权重数据和特征图数据,实现卷积神经网络模型的前向传播,在前向传播过程中,利用公式(4)获得每一层特征图数据y的输出结果:
Figure BDA0002320789970000072
∈1是量化的步长,∈1的值为2-FL1
考虑到数据位宽的精度饱和导致的内存溢出的问题,利用公式(5)将每一层特征图数据y转化为量化后的特征图数据m;
Figure BDA0002320789970000073
采用这种方法,本发明的固定位宽的量化方法的算法过程如图4所示,主要包括权重数据量化过程和输入特征图数据的量化过程,通过权重数据和特征图数据的统计分析,通过近似算法确定每一层的固定位宽的权重和特征图数据。
本发明的量化算法实现流程如图4所示。
本发明通过两阶段的模型压缩方法,极大地降低了卷积神经网络模型的参数存储量和运算量,为在嵌入式系统中实现卷积神经网络算法的推理过程提供了更精简的网络模型。
以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。

Claims (8)

1.一种两阶段的卷积神经网络模型压缩方法,其特征在于包括如下步骤:
(1)对已训练的卷积神经网络模型进行网络剪枝处理;
(2)对已经经过剪枝处理的卷积神经网络模型进行固定位宽的量化处理,完成卷积神经网络模型压缩。
2.根据权利要求1所述的一种两阶段的卷积神经网络模型压缩方法,其特征在于:所述网络剪枝处理的步骤如下:
(1.1)进行剪枝的初始化设置;
(1.2)网络剪枝;
(1.3)网络微调。
3.根据权利要求2所述的一种两阶段的卷积神经网络模型压缩方法,其特征在于:所述步骤(1.1)的实现方式如下:
通过对剪枝比率的预设置,确定进行网络剪枝的阈值;剪枝比率的预设值为30%,40%,50%或60%,从而得到每一层不同的阈值,通过公式threshold=|W(t)·R|,得到每一层的阈值threshold,W(t)为第t层的权重值,R为剪枝比率的预设置。
4.根据权利要求2所述的一种两阶段的卷积神经网络模型压缩方法,其特征在于:所述步骤(1.2)中,将卷积神经网络模型中神经元之间小于阈值的权重设置为0,其他保留原值,实现网络剪枝,得到稀疏网络结构。
5.根据权利要求2所述的一种两阶段的卷积神经网络模型压缩方法,其特征在于:所述步骤(1.3)中,网络微调的方式如下:
对网络剪枝后的卷积神经网络模型在训练集上继续进行训练,通过反向传播降低网络的训练误差,更新权重值,改变学习率,直到进一步的收敛。
6.根据权利要求1所述的一种两阶段的卷积神经网络模型压缩方法,其特征在于:所述步骤(2)中,采用如下方法对已经经过剪枝处理的卷积神经网络模型进行固定位宽的量化处理:
(2.1)对已经经过剪枝处理的卷积神经网络模型的权重数据进行固定位宽的量化处理,得到量化后的权重数据;量化前的权重数据为32位浮点数据格式,量化后的权重数据为固定位宽数据;
(2.2)基于已经经过剪枝处理的卷积神经网络模型,对输入的特征图数据进行固定位宽的量化处理,得到量化后的特征图数据。
7.根据权利要求3所述的一种两阶段的卷积神经网络模型压缩方法,其特征在于:步骤(2.1)的实现方式如下:
(2.1.1)对卷积神经网络模型每一层权重数据进行分析,得到每一层量化后的权重数据整数位数长度IL和和分数位数长度FL;
(2.1.2)在卷积神经网络模型的前向传播过程中,利用如下方法获得每一层权重数据x的输出结果:
Figure FDA0002320789960000021
∈是量化的步长,∈的值为2-FL
(2.1.3)考虑到数据位宽的精度饱和导致的内存溢出的问题,利用如下转换算法将每一层权重数据x转化为量化后的权重数据n;
Figure FDA0002320789960000022
8.根据权利要求3所述的一种两阶段的卷积神经网络模型压缩方法,其特征在于:步骤(2.2)的实现方式如下:
(2.2.1)对卷积神经网络模型每一层特征图数据进行分析,得到每一层量化后的特征图数据整数位数长度IL1和和分数位数长度FL1;
(2.2.2)基于上一层量化后的权重数据和特征图数据,实现卷积神经网络模型的前向传播,在前向传播过程中,利用如下方法获得每一层特征图数据y的输出结果:
Figure FDA0002320789960000031
∈1是量化的步长,∈1的值为2-FL1
(2.2.3)考虑到数据位宽的精度饱和导致的内存溢出的问题,利用如下转换算法将每一层特征图数据y转化为量化后的特征图数据m;
Figure FDA0002320789960000032
CN201911296807.3A 2019-12-16 2019-12-16 一种两阶段的卷积神经网络模型压缩方法 Pending CN111160524A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911296807.3A CN111160524A (zh) 2019-12-16 2019-12-16 一种两阶段的卷积神经网络模型压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911296807.3A CN111160524A (zh) 2019-12-16 2019-12-16 一种两阶段的卷积神经网络模型压缩方法

Publications (1)

Publication Number Publication Date
CN111160524A true CN111160524A (zh) 2020-05-15

Family

ID=70557191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911296807.3A Pending CN111160524A (zh) 2019-12-16 2019-12-16 一种两阶段的卷积神经网络模型压缩方法

Country Status (1)

Country Link
CN (1) CN111160524A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112132219A (zh) * 2020-09-24 2020-12-25 天津锋物科技有限公司 一种基于移动端的深度学习检测模型的通用部署方案
CN112149797A (zh) * 2020-08-18 2020-12-29 Oppo(重庆)智能科技有限公司 神经网络结构优化方法和装置、电子设备
CN112488070A (zh) * 2020-12-21 2021-03-12 上海交通大学 一种面向遥感图像目标检测的神经网络压缩方法
WO2021253857A1 (zh) * 2020-06-18 2021-12-23 苏州浪潮智能科技有限公司 一种融合裁剪与量化的模型压缩方法及系统
CN115049058A (zh) * 2022-08-17 2022-09-13 北京智芯微电子科技有限公司 拓扑识别模型的压缩方法、装置、电子设备及介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021253857A1 (zh) * 2020-06-18 2021-12-23 苏州浪潮智能科技有限公司 一种融合裁剪与量化的模型压缩方法及系统
CN112149797A (zh) * 2020-08-18 2020-12-29 Oppo(重庆)智能科技有限公司 神经网络结构优化方法和装置、电子设备
CN112149797B (zh) * 2020-08-18 2023-01-03 Oppo(重庆)智能科技有限公司 神经网络结构优化方法和装置、电子设备
CN112132219A (zh) * 2020-09-24 2020-12-25 天津锋物科技有限公司 一种基于移动端的深度学习检测模型的通用部署方案
CN112488070A (zh) * 2020-12-21 2021-03-12 上海交通大学 一种面向遥感图像目标检测的神经网络压缩方法
CN115049058A (zh) * 2022-08-17 2022-09-13 北京智芯微电子科技有限公司 拓扑识别模型的压缩方法、装置、电子设备及介质
CN115049058B (zh) * 2022-08-17 2023-01-20 北京智芯微电子科技有限公司 拓扑识别模型的压缩方法、装置、电子设备及介质

Similar Documents

Publication Publication Date Title
CN111160524A (zh) 一种两阶段的卷积神经网络模型压缩方法
CN108764471B (zh) 基于特征冗余分析的神经网络跨层剪枝方法
CN111079781B (zh) 基于低秩与稀疏分解的轻量化卷积神经网络图像识别方法
CN108510067B (zh) 基于工程化实现的卷积神经网络量化方法
CN107516129B (zh) 基于维度自适应的Tucker分解的深度网络压缩方法
CN113159173B (zh) 一种结合剪枝与知识蒸馏的卷积神经网络模型压缩方法
WO2020238237A1 (zh) 一种基于幂指数量化的神经网络压缩方法
CN109934336B (zh) 基于最优结构搜索的神经网络动态加速平台设计方法及神经网络动态加速平台
CN107395211B (zh) 一种基于卷积神经网络模型的数据处理方法及装置
CN108416427A (zh) 卷积核堆积数据流、压缩编码以及深度学习算法
JP7408799B2 (ja) ニューラルネットワークモデルの圧縮
CN110309904B (zh) 一种神经网络压缩方法
WO2023011002A1 (zh) 溢出感知的量化模型训练方法、装置、介质及终端设备
CN110909874A (zh) 一种神经网络模型的卷积运算优化方法和装置
WO2022021868A1 (zh) 一种数据处理的方法、系统、设备及可读存储介质
CN113595993B (zh) 边缘计算下模型结构优化的车载感知设备联合学习方法
CN110751265A (zh) 一种轻量型神经网络构建方法、系统及电子设备
CN111310888A (zh) 处理卷积神经网络的方法
CN114970853A (zh) 一种跨范围量化的卷积神经网络压缩方法
CN112598129A (zh) 基于ReRAM神经网络加速器的可调硬件感知的剪枝和映射框架
CN110110852B (zh) 一种深度学习网络移植到fpag平台的方法
CN114139683A (zh) 一种神经网络加速器模型量化方法
CN114756517A (zh) 一种基于可微量化训练的视觉Transformer压缩方法及系统
CN117151178A (zh) 一种面向fpga的cnn定制网络量化加速方法
CN110782396A (zh) 一种轻量化的图像超分辨率重建网络和重建方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200515