CN110188880A - 一种深度神经网络的量化方法及装置 - Google Patents
一种深度神经网络的量化方法及装置 Download PDFInfo
- Publication number
- CN110188880A CN110188880A CN201910478915.6A CN201910478915A CN110188880A CN 110188880 A CN110188880 A CN 110188880A CN 201910478915 A CN201910478915 A CN 201910478915A CN 110188880 A CN110188880 A CN 110188880A
- Authority
- CN
- China
- Prior art keywords
- weight
- quantization
- network
- neural network
- deep neural
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种深度神经网络的量化方法,包括:针对深度神经网络待量化的网络层,进行量化初始化;根据量化模式,对待量化网络层的权值进行量化操作;根据量化后的权值进行网络的迭代训练,并更新权值直到深度神经网络收敛。本发明的方法,包括二值化、三值化等可选模式,以一种机制来对权值进行量化,然后,在迭代训练过程中,不断更新量化权值,直至满足目标任务准确度的要求,最后得到的模型可用于多个平台,相对于原始模型,在准确率相当的前提下,速度更快,模型更小。本发明的方法克服了深度网络对于计算资源、存储的巨大消耗,在针对目标任务性能的同时,提高深度神经网络的加速比与压缩率。
Description
技术领域
本发明涉及机器学习技术领域,尤其涉及一种深度神经网络的量化方法及装置。
背景技术
近年来,随着人工智能突飞猛进的发展,深度学习的应用也是越来越广泛,特别是在图像分类、目标检测、语音处理、自然语言处理等众多领域取得了巨大的进展,显著的提高了机器学习在不同领域内的应用前景,并且在性能上的提升也是与目共睹的。
深度神经网络的学习过程,是需要大量的原始数据,不断的迭代更新网络参数,以达到目标任务的需求。一般来说,大容量、高复杂度的网络可以更为深入和全面的对原始数据进行学习,从而可以取得一个更好的性能指标,相对于传统的学习方法,深度神经网络具备更好的应用前景,同时,更能满足高目标任务的需求。但是,在得到高性能的结果时,需要消耗的时大量的计算资源和存储空间,同时,还要花费更久的时间。因此,深度神经网络的加速和压缩问题变得至关重要,特别是针对嵌入式设备、集成设备、以及大规模的数据处理中心上面的应用需求。
针对深度神经网络的压缩和加速,已经有一些有效的方法,比如剪枝、蒸馏、量化等方法,但是,这些方法并不能适用于所有的深度神经网络,而常规的量化方法并没有兼顾准确率和速度的需求,那么,如何设计一种能保证网络模型高精度的前提下,还能够更快的完成运算的方法是值得进一步研究的。
发明内容
针对上述问题,本发明提出了一种深度神经网络的量化方法及装置,用于克服深度神经网络对于计算资源、存储的巨大消耗,在针对目标任务性能的同时,能更有效的提高深度神经网络的加速比与压缩率。本发明通过以下技术方案来实现上述目的:
一种深度神经网络的量化方法,包括:
针对深度神经网络待量化的网络层,进行量化初始化;
根据量化模式,对待量化网络层的权值进行量化操作;
根据量化后的权值进行网络的迭代训练,并更新权值直到深度神经网络收敛。
具体为:针对所用的深度神经网络,一般需要量化的网络层是指计算量较大的网络层,比如卷积层、池化层等,对于待量化网络层每个通道内的权重分别求取均值;上述的待量化网络层权值均值的计算具体步骤如下:
A1.分别求取每个通道内权值绝对值的累加和;
A2.每个通道的权值均值的计算方法是:对应通道的权值绝对值的累加和除以当前通道权重的个数;
在三种量化模式中选择一种,一般选择的依据是根据目标任务的要求来确定,然后,根据对应权值的大小,量化到指定值。
当完成权值的量化操作后,对应网络层的计算采用量化后的权值,并且,通过神经网络反向传播计算的方式,不断迭代更新量化后的权值,直至网络训练到收敛。
进一步方案为,所述的量化初始化是计算待量化网络层的每个通道的权值均值。
进一步方案为,所述的每个通道权值均值的计算方法为:
首先求取所有|wi|的累加和,然后在每个通道内,根据当前通道权值的个数Size求平均值。
其中,所述的Var表示单个通道待量化矩阵的均值,Size表示待量化网络层单个通道内权值的数目,wi表示待量化网络层单个通道内对应的第i个权值的大小,fabs表示求取绝对值。
进一步方案为,量化模式是根据量化位宽分为1bits、2bits、3bits三种模式,每种模式有对应的量化方式进行权值量化操作。三种量化模式中一般选择的依据是根据目标任务的要求来确定,然后,根据对应权值的大小,量化到指定值,具体步骤如下:
B1.三种量化模式分别是1bit、2bits、3bits,选取那种模式一般是看目标任务的要求,偏向于精度的选择3bits量化模式,偏向速度的选择1bit。
B2.根据权值的大小,对权值量化的方法为:
当量化模式为1bit:
当量化模式为2bits:
若
Qw=0
否则
当量化模式为3bits:
若
否则,若
否则,若
否则
Qw=0
其中Qw表示量化后权值大小;当采用1bit量化模式时,如果w大于等于0,Qw为Var,反之为-Var;当采用2bits量化模式时,如果w的绝对值小于Var/4,Qw等于0,反之,如果w大于等于0,Qw等于Var,反之为-Var;当采用3bits量化模式时,如果w的绝对值大于3Var/4,再根据w是否大于等于0,判定Qw等于Var或-Var,若不然,如果w的绝对值大于Var/2,再根据w是否大于等于0,判定Qw等于Var/2或-Var/2,再不然,如果w的绝对值大于Var/4,再根据w是否大于等于0,判定Qw等于Var/4或-Var/4,若果以上条件都不满足,Qw等于0。
具体的,所述的三种模式的量化操作的方式为:
当BW=1bit时,根据权值w的大小,量化权值为Var、-Var;
当BW=2bits时,根据权值w的大小,量化权值为0、Var、-Var;
当BW=3bits时,根据权值w的大小,量化权值为0、Var、-Var、Var/2、-Var/2、Var/4、-Var/4。
进一步方案为,所述的根据量化后的权值进行网络的迭代训练的方法为:
前向运算过程中,对于需要量化的网络层,在权值完成量化操作以后,使用量化后的权值按对应运算方式计算该网络层的输出,直至完成整个深度神经网络的运算。
反向运算过程中,按照神经网络的运算方式,结合量化后的权值更新网络层的权值参数。
重复上诉操作,直至整个网络收敛,得到量化后的网络模型。
具体的,当完成权值的量化操作后,对应网络层的计算采用量化后的权值,并且,通过神经网络反向传播计算的方式,不断迭代更新量化后的权值,直至网络训练到收敛。具体步骤如下:
C1.当完成权值的量化操作后,在学习过程中,对应网络层的计算用Qw代替原始w,计算该网络层的输出;
C2.当完成一次前向运算计算出深度神经网络输出后,反向运算同样采用Qw替换原始w,并且根据Qw的值更新w;
C3.通过迭代训练,直至网络收敛,得到量化后的模型。
本申请另一方面提供一种深度神经网络的量化装置,包括:
预处理模块,用于计算待量化网络层权值的均值;
量化模块,用于根据不同量化模式,选择对应的量化方式,对待量化网络层的权值进行量化计算;
权值更新模块,根据深度神经网络的运算方式,更新量化权值直至网络收敛。
本发明的有益效果在于:
本发明的方法,包括二值化、三值化等可选模式,以一种机制来对权值进行量化,然后,在迭代训练过程中,不断更新量化权值,直至满足目标任务准确度的要求,最后得到的模型可用于多个平台,相对于原始模型,在准确率相当的前提下,速度更快,模型更小。
本发明的方法,克服了深度网络对于计算资源、存储的巨大消耗,在针对目标任务性能的同时,提高深度神经网络的加速比与压缩率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要实用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的系统框图。
图2(a)图2(b)图2(c)为本发明三种量化方式示意图。
图3为本发明的权值更新示意图。
图4为本发明模块装置示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
实施例一
如图1所示,本发明首先针对所用的深度神经网络需要量化的网络层进行初始化操作;然后,选择一种量化模式,采用对应的量化方式对需要量化的网络层权值进行量化操作;最后,使用量化后的权值进行计算,以一种更新机制不断更新权值直至网络收敛。具体步骤如下:
步骤1:针对深度神经网络待量化的网络层,求取对应权值均值。具体步骤为:
(1).分别计算对应网络层每个通道权值的绝对值,求取累加和Sum|w|;
(2).分别计算对应网络层每个通道权值均值Sum|w|/Size;
步骤2:选定一种量化模式,采用对应的量化方式对需要量化的网络层权值进行量化操作。具体步骤如下:
选择1bits模式,如图2(a)所示,量化方式为:
选择2bits模式,如图2(b)所示,量化方式为:
若
Qw=0
否则
选择3bits模式,如图2(c)所示,量化方式为:
若
否则,若
否则,若
否则
Qw=0
其中Qw表示量化后权值大小;当采用1bit量化模式时,如果w大于等于0,Qw为Var,反之为-Var;当采用2bits量化模式时,如果w的绝对值小于Var/4,Qw等于0,反之,如果w大于等于0,Qw等于Var,反之为-Var;当采用3bits量化模式时,如果w的绝对值大于3Var/4,再根据w是否大于等于0,判定Qw等于Var或-Var,若不然,如果w的绝对值大于Var/2,再根据w是否大于等于0,判定Qw等于Var/2或-Var/2,再不然,如果w的绝对值大于Var/4,再根据w是否大于等于0,判定Qw等于Var/4或-Var/4,若果以上条件都不满足,Qw等于0。
步骤3:使用量化后的权值进行计算,以一种更新机制不断更新权值直至网络收敛,如图3所示,具体步骤如下:
(1).当完成权值的量化操作后,在学习过程中,对应网络层的计算用Qw代替原始w,计算该网络层的输出;
(2).当完成一次前向运算计算出深度神经网络输出后,通过损失函数计算误差值,然后反向针对权值w求导,推算更新权值Δw,更新w为Qw-Δw。
实施例二
如图4所示,一种深度神经网络的量化装置,包括:
预处理模块,用于计算待量化网络层权值的均值,其具体实现过程参考实施例一。
量化模块,用于根据不同量化模式,选择对应的量化方式,对待量化网络层的权值进行量化计算,其具体实现过程参考实施例一。
权值更新模块,根据深度神经网络的运算方式,更新量化权值直至网络收敛,其具体实现过程参考实施例一。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (8)
1.一种深度神经网络的量化方法,其特征在于,包括:
针对深度神经网络待量化的网络层,进行量化初始化;
根据量化模式,对待量化网络层的权值进行量化操作;
根据量化后的权值进行网络的迭代训练,并更新权值直到深度神经网络收敛。
2.如权利要求1所述一种深度神经网络的量化方法,其特征在于,所述的量化初始化是计算待量化网络层的每个通道的权值均值。
3.如权利要求2所述一种深度神经网络的量化方法,其特征在于,所述的每个通道权值均值的计算方法为:
首先求取所有|wi|的累加和,然后在每个通道内,根据当前通道权值的个数Size求平均值。
4.如权利要求3所述一种深度神经网络的量化方法,其特征在于,所述的Var表示单个通道待量化矩阵的均值,Size表示待量化网络层单个通道内权值的数目,wi表示待量化网络层单个通道内对应的第i个权值的大小,fabs表示求取绝对值。
5.如权利要求1所述一种深度神经网络的量化方法,其特征在于,所述的量化模式是根据量化位宽分为1bits、2bits、3bits三种模式,每种模式有对应的量化方式进行权值量化操作。
6.如权利要求5所述一种深度神经网络的量化方法,其特征在于,所述的三种模式的量化操作的方式为:
当BW=1bit时,根据权值w的大小,量化权值为Var、-Var;
当BW=2bits时,根据权值w的大小,量化权值为0、Var、-Var;
当BW=3bits时,根据权值w的大小,量化权值为0、Var、-Var、Var/2、-Var/2、Var/4、-Var/4。
7.如权利要求1所述一种深度神经网络的量化方法,其特征在于,所述的根据量化后的权值进行网络的迭代训练的方法为:
前向运算过程中,对于需要量化的网络层,在权值完成量化操作以后,使用量化后的权值按对应运算方式计算该网络层的输出,直至完成整个深度神经网络的运算;
反向运算过程中,按照神经网络的运算方式,结合量化后的权值更新网络层的权值参数;
重复上诉操作,直至整个网络收敛,得到量化后的网络模型。
8.一种深度神经网络的量化装置,其特征在于,包括:
预处理模块,用于计算待量化网络层权值的均值;
量化模块,用于根据不同量化模式,选择对应的量化方式,对待量化网络层的权值进行量化计算;
权值更新模块,根据深度神经网络的运算方式,更新量化权值直至网络收敛。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910478915.6A CN110188880A (zh) | 2019-06-03 | 2019-06-03 | 一种深度神经网络的量化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910478915.6A CN110188880A (zh) | 2019-06-03 | 2019-06-03 | 一种深度神经网络的量化方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110188880A true CN110188880A (zh) | 2019-08-30 |
Family
ID=67720070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910478915.6A Pending CN110188880A (zh) | 2019-06-03 | 2019-06-03 | 一种深度神经网络的量化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110188880A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110889503A (zh) * | 2019-11-26 | 2020-03-17 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN111598237A (zh) * | 2020-05-21 | 2020-08-28 | 上海商汤智能科技有限公司 | 量化训练、图像处理方法及装置、存储介质 |
CN112132272A (zh) * | 2020-09-22 | 2020-12-25 | 中国科学院计算技术研究所 | 神经网络的计算装置、处理器和电子设备 |
CN113269320A (zh) * | 2020-02-14 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 处理单元、计算装置、片上系统、数据中心和相关方法 |
WO2022021834A1 (zh) * | 2020-07-29 | 2022-02-03 | 北京迈格威科技有限公司 | 神经网络模型确定方法、装置、电子设备、介质及产品 |
WO2022246986A1 (zh) * | 2021-05-27 | 2022-12-01 | 腾讯云计算(北京)有限责任公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
-
2019
- 2019-06-03 CN CN201910478915.6A patent/CN110188880A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110889503A (zh) * | 2019-11-26 | 2020-03-17 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN110889503B (zh) * | 2019-11-26 | 2021-05-04 | 中科寒武纪科技股份有限公司 | 数据处理方法、装置、计算机设备和存储介质 |
CN113269320A (zh) * | 2020-02-14 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 处理单元、计算装置、片上系统、数据中心和相关方法 |
CN111598237A (zh) * | 2020-05-21 | 2020-08-28 | 上海商汤智能科技有限公司 | 量化训练、图像处理方法及装置、存储介质 |
WO2021233069A1 (zh) * | 2020-05-21 | 2021-11-25 | 上海商汤智能科技有限公司 | 量化训练、图像处理方法及装置、存储介质 |
CN111598237B (zh) * | 2020-05-21 | 2024-06-11 | 上海商汤智能科技有限公司 | 量化训练、图像处理方法及装置、存储介质 |
WO2022021834A1 (zh) * | 2020-07-29 | 2022-02-03 | 北京迈格威科技有限公司 | 神经网络模型确定方法、装置、电子设备、介质及产品 |
CN112132272A (zh) * | 2020-09-22 | 2020-12-25 | 中国科学院计算技术研究所 | 神经网络的计算装置、处理器和电子设备 |
CN112132272B (zh) * | 2020-09-22 | 2023-09-12 | 中国科学院计算技术研究所 | 神经网络的计算装置、处理器和电子设备 |
WO2022246986A1 (zh) * | 2021-05-27 | 2022-12-01 | 腾讯云计算(北京)有限责任公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110188880A (zh) | 一种深度神经网络的量化方法及装置 | |
Liu et al. | Hybrid whale optimization algorithm enhanced with Lévy flight and differential evolution for job shop scheduling problems | |
CN110930016A (zh) | 一种基于深度q学习的梯级水库随机优化调度方法 | |
CN108573303A (zh) | 一种基于改进强化学习的复杂网络局部破坏的自改进恢复策略 | |
CN108599172B (zh) | 一种基于人工神经网络的输配网全局潮流计算方法 | |
CN110297490B (zh) | 基于强化学习算法的异构模块化机器人自重构规划方法 | |
CN108921298A (zh) | 强化学习多智能体沟通与决策方法 | |
CN111191769B (zh) | 自适应的神经网络训练与推理装置 | |
CN106529818A (zh) | 基于模糊小波神经网络的水质评价预测方法 | |
CN111612125A (zh) | 一种面向在线学习的新型htm时间池方法及其系统 | |
CN106022471A (zh) | 基于粒子群优化算法的小波神经网络模型船舶横摇实时预测方法 | |
CN104050505A (zh) | 一种基于带学习因子蜂群算法的多层感知器训练方法 | |
CN108304925A (zh) | 一种池化计算装置及方法 | |
CN111159489A (zh) | 一种搜索方法 | |
CN114626499A (zh) | 用稀疏化注意力辅助决策的嵌入式多智能体强化学习方法 | |
CN109657794A (zh) | 一种基于指令队列的分布式深度神经网络性能建模方法 | |
CN111831354A (zh) | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 | |
CN115470889A (zh) | 基于强化学习的片上网络自主最优映射探索系统及方法 | |
JP7122041B2 (ja) | ニューラルネットワークに用いられる混合粒度に基づく共同スパース方法 | |
CN113691993B (zh) | 基于图神经网络的5g连通簇基站群流量预测方法及系统 | |
Chen et al. | Particle swarm optimization based on genetic operators for sensor-weapon-target assignment | |
Ge et al. | Chaotic ant swarm for graph coloring | |
CN113505210B (zh) | 一种基于轻量化Actor-Critic生成式对抗网络的医疗问答生成系统 | |
Adel et al. | Accelerating deep neural networks using FPGA | |
CN115271254A (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 |
Application publication date: 20190830 |
|
RJ01 | Rejection of invention patent application after publication |