CN111985523A - 基于知识蒸馏训练的2指数幂深度神经网络量化方法 - Google Patents
基于知识蒸馏训练的2指数幂深度神经网络量化方法 Download PDFInfo
- Publication number
- CN111985523A CN111985523A CN202010604660.6A CN202010604660A CN111985523A CN 111985523 A CN111985523 A CN 111985523A CN 202010604660 A CN202010604660 A CN 202010604660A CN 111985523 A CN111985523 A CN 111985523A
- Authority
- CN
- China
- Prior art keywords
- network
- model
- output
- student
- neural network
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Biology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Vaporization, Distillation, Condensation, Sublimation, And Cold Traps (AREA)
Abstract
本发明涉及神经网络技术领域,且公开了基于知识蒸馏训练的2指数幂深度神经网络量化方法,包括教师模型和2的指数幂量化的学生模型,其特征在于:所述教师网络模型选取参数较多和精度较高网络模型,所述学生模型一般选择参数少、精度不如教师模型的网络模型。本发明通过神经网络权重值量化为2的指数幂量化深度神经网络方法,不仅可以降低与全精度权重值的误差,有效降低训练出来的网络精度与未被量化网络精度损失,而且2的指数幂权重值乘法操作可以利用位移来完成,在部署硬件设备上有明显的计算优势,可以提高神经网络硬件上的计算效率,并基于知识蒸馏算法训练的神经网络模型能有效提高量化网络的精确度。
Description
技术领域
本发明涉及神经网络技术领域,具体为基于知识蒸馏训练的2指数幂深度神经网络量化方法。
背景技术
人工神经网络也简称为神经网络或称作连接模型,它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
现有训练量化神经网络的方法主要是,在神经网络的前向传播阶段,量化每一层的权重值为低精度值(如+1,-1,0等整型数),然后计算其这层网络输出并传播到下一层网络,重复操作直到得到网络输出。接着在网络反向传播阶段,用全精度权重值(32位浮点数)计算得到的全精度梯度来更新量化权重的值,重复上述过程直到网络收敛。由于量化函数的梯度一般为0或者没有,所以在网络进行反向传播时量化权重值的梯度采用全精度权重值累积的梯度进行近似计算,且神经网络量化过的权重值会与网络中实际全精度权重值存在误差,尽管神经网络具有一定的鲁棒性,但这也会导致较大误差,导致其量化过的神经网络精度相对于未被量化过的神经网络有所损失。
发明内容
(一)解决的技术问题
针对现有技术的不足,本发明提供了基于知识蒸馏训练的2指数幂深度神经网络量化方法,解决了现有训练量化神经网络的方法在网络进行反向传播时量化权重值的梯度采用全精度权重值累积的梯度进行近似计算,且神经网络量化过的权重值会与网络中实际全精度权重值存在误差,尽管神经网络具有一定的鲁棒性,但这也会导致较大误差,导致其量化过的神经网络精度相对于未被量化过的神经网络有所损失的问题。
(二)技术方案
为实现上述目的,本发明提供如下技术方案:基于知识蒸馏训练的2指数幂深度神经网络量化方法,包括教师模型和2的指数幂量化的学生模型,所述教师网络模型选取参数较多和精度较高网络模型,所述学生模型一般选择参数少、精度不如教师模型的网络模型。
优选的,所述教师模型和2的指数幂量化的学生模型的输入输出维度相同,都能对同一数据集进行分类。
优选的,所述教师模型和2的指数幂量化的学生模型的输出会除以同一个蒸馏参数T进行软化处理,T控制输出的概率分布,T越大,输出分布越均匀。
优选的,基于知识蒸馏训练的2指数幂深度神经网络量化方法,包括以下步骤:
S1:首先用指定数据集训练一个高精度的教师网络模型,要求其教师网络模型的精度要尽可能优于准备量化的学生模型。
S2:训练完成之后会得到预训练好的教师模型,将用于辅助学生网络的训练。
S3:利用预训练的高精度教师模型辅助训练学生网络模型,每次迭代训练中,分批输入数据集到学生网络中进行前向传播,网络中每一层的输出采用量化为2的指数幂的权重值进行计算,重复操作一直到最后一层输出层,每批数据会得到相应的网络输出,输出经过处理后得到硬输出和软输出。
S4:步骤三中经过硬输出和软输出后得到学生网络2个输出的同时,同样的数据输入到预训练的教师网络模型进行前向传播,得到教师网络的软输出。
S5:然后根据教师模型和和学生模型计算得到的软输出计算一个得到的交叉熵损失函数值。
S6:将步骤五中得到的交叉熵损失函数值跟据学生模型的硬输出和数据集标签计算学生模型交叉熵损失函数,分别乘以相应比重值相加得到知识蒸馏总损失函数值。
S7:保存教师模型不变,对学生网络进行反向传播,用全精度权重值累积的梯度去更新量化权重值。
S8:重复上述步骤直至网络收敛,完成训练并保存得到高精度权重值量化后的学生模型。
优选的,所述通过教师模型使用2的指数次幂去量化神经网络权重值得到学生模型,并且在训练神经网络时采用了知识蒸馏方法,提高网络的精度的同时也加快网络的收敛速度。
优选的,所述教师模型和学生模型软输出计算的交叉熵在知识蒸馏损失函数中所占比重大于学生模型硬输出计算的交叉熵损失函数,即α取值应为(0.5,1)。
(三)有益效果
本发明提供了基于知识蒸馏训练的2指数幂深度神经网络量化方法,具备以下有益效果:
(1)、本发明通过神经网络权重值量化为2的指数幂量化深度神经网络方法,不仅可以降低与全精度权重值的误差,有效降低训练出来的网络精度与未被量化网络精度损失,而且2的指数幂权重值乘法操作可以利用位移来完成,在部署硬件设备上有明显的计算优势,可以提高神经网络硬件上的计算效率,解决了现有训练量化神经网络的方法在网络进行反向传播时量化权重值的梯度采用全精度权重值累积的梯度进行近似计算,且神经网络量化过的权重值会与网络中实际全精度权重值存在误差,尽管神经网络具有一定的鲁棒性,但这也会导致较大误差,导致其量化过的神经网络精度相对于未被量化过的神经网络有所损失的问题。
(2)、本发明基于知识蒸馏算法训练的神经网络模型能有效提高量化网络的精确度,加快神经网络收敛的速度,减少训练的迭代次数从而降低模型的训练时间。
附图说明
图1为本发明训练方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明提供一种技术方案:基于知识蒸馏训练的2指数幂深度神经网络量化方法,包括教师模型和2的指数幂量化的学生模型,教师网络模型选取参数较多和精度较高网络模型,学生模型一般选择参数少、精度不如教师模型的网络模型。
具体的,教师模型和2的指数幂量化的学生模型的输入输出维度相同,都能对同一数据集进行分类,有利于数据的统一化,并保证教学模型对数据的精准度。
具体的,教师模型和2的指数幂量化的学生模型的输出会除以同一个蒸馏参数T进行软化处理,T控制输出的概率分布,T越大,输出分布越均匀。
具体的,基于知识蒸馏训练的2指数幂深度神经网络量化方法,包括以下步骤:
S1:首先用指定数据集训练一个高精度的教师网络模型,要求其教师网络模型的精度要尽可能优于准备量化的学生模型。
S2:训练完成之后会得到预训练好的教师模型,将用于辅助学生网络的训练。
S3:利用预训练的高精度教师模型辅助训练学生网络模型,每次迭代训练中,分批输入数据集到学生网络中进行前向传播,网络中每一层的输出采用量化为2的指数幂的权重值进行计算,重复操作一直到最后一层输出层,每批数据会得到相应的网络输出,输出经过处理后得到硬输出和软输出。
S4:步骤三中经过硬输出和软输出后得到学生网络2个输出的同时,同样的数据输入到预训练的教师网络模型进行前向传播,得到教师网络的软输出。
S5:然后根据教师模型和和学生模型计算得到的软输出计算一个得到的交叉熵损失函数值。
S6:将步骤五中得到的交叉熵损失函数值跟据学生模型的硬输出和数据集标签计算学生模型交叉熵损失函数,分别乘以相应比重值相加得到知识蒸馏总损失函数值。
S7:保存教师模型不变,对学生网络进行反向传播,用全精度权重值累积的梯度去更新量化权重值。
S8:重复上述步骤直至网络收敛,完成训练并保存得到高精度权重值量化后的学生模型。
具体的,通过教师模型使用2的指数次幂去量化神经网络权重值得到学生模型,并且在训练神经网络时采用了知识蒸馏方法,提高网络的精度的同时也加快网络的收敛速度,有利于通过此方法训练出来的量化网络相对于未量化网络来说精度几乎没有损失,且如果将训练的量化网络部署到相应硬件设备可以充分发挥量化权重值在硬件上计算优势。
具体的,教师模型和学生模型软输出计算的交叉熵在知识蒸馏损失函数中所占比重大于学生模型硬输出计算的交叉熵损失函数,即α取值应为(0.5,1),通过知识蒸馏方法和量化权重值为2的指数幂(即2^n,n为整数)来保持量化神经网络的高精度,同时也提高了硬件计算效率,由于神经网络中大多为数浮点数乘法,所以将权重值量化为2^n后可以利用位移完成乘法计算(例如,x乘以2^3等同于x左移3位),从而快网络计算速度,且相对于低精度权重值而言,2^n与全精度权重值误差更小,此外,知识蒸馏方法训练神经网络可以有效提高网络的精度并加快网络收敛速度,因此,新的量化方法结合知识蒸馏方法训练的神经网络,不仅能保证其训练的网络精度与未量化网络相当,并且量化过的权重值更适应于硬件计算,能够部署在相应硬件上来充分发挥量化神经网络的计算优势。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (6)
1.基于知识蒸馏训练的2指数幂深度神经网络量化方法,包括教师模型和2的指数幂量化的学生模型,其特征在于:所述教师网络模型选取参数较多和精度较高网络模型,所述学生模型一般选择参数少、精度不如教师模型的网络模型。
2.根据权利要求1所述的基于知识蒸馏训练的2指数幂深度神经网络量化方法,其特征在于:所述教师模型和2的指数幂量化的学生模型的输入输出维度相同,都能对同一数据集进行分类。
3.根据权利要求1所述的基于知识蒸馏训练的2指数幂深度神经网络量化方法,其特征在于:所述教师模型和2的指数幂量化的学生模型的输出会除以同一个蒸馏参数T进行软化处理,T控制输出的概率分布,T越大,输出分布越均匀。
4.根据权利要求1所述的基于知识蒸馏训练的2指数幂深度神经网络量化方法,其特征在于,包括以下步骤:
S1:首先用指定数据集训练一个高精度的教师网络模型,要求其教师网络模型的精度要尽可能优于准备量化的学生模型;
S2:训练完成之后会得到预训练好的教师模型,将用于辅助学生网络的训练;
S3:利用预训练的高精度教师模型辅助训练学生网络模型,每次迭代训练中,分批输入数据集到学生网络中进行前向传播,网络中每一层的输出采用量化为2的指数幂的权重值进行计算,重复操作一直到最后一层输出层,每批数据会得到相应的网络输出,输出经过处理后得到硬输出和软输出;
S4:步骤三中经过硬输出和软输出后得到学生网络2个输出的同时,同样的数据输入到预训练的教师网络模型进行前向传播,得到教师网络的软输出;
S5:然后根据教师模型和和学生模型计算得到的软输出计算一个得到的交叉熵损失函数值;
S6:将步骤五中得到的交叉熵损失函数值跟据学生模型的硬输出和数据集标签计算学生模型交叉熵损失函数,分别乘以相应比重值相加得到知识蒸馏总损失函数值;
S7:保存教师模型不变,对学生网络进行反向传播,用全精度权重值累积的梯度去更新量化权重值;
S8:重复上述步骤直至网络收敛,完成训练并保存得到高精度权重值量化后的学生模型。
5.根据权利要求1所述的基于知识蒸馏训练的2指数幂深度神经网络量化方法,其特征在于:所述通过教师模型使用2的指数次幂去量化神经网络权重值得到学生模型,并且在训练神经网络时采用了知识蒸馏方法,提高网络的精度的同时也加快网络的收敛速度。
6.根据权利要求1所述的基于知识蒸馏训练的2指数幂深度神经网络量化方法,其特征在于:所述教师模型和学生模型软输出计算的交叉熵在知识蒸馏损失函数中所占比重大于学生模型硬输出计算的交叉熵损失函数,即α取值应为(0.5,1)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010604660.6A CN111985523A (zh) | 2020-06-28 | 2020-06-28 | 基于知识蒸馏训练的2指数幂深度神经网络量化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010604660.6A CN111985523A (zh) | 2020-06-28 | 2020-06-28 | 基于知识蒸馏训练的2指数幂深度神经网络量化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111985523A true CN111985523A (zh) | 2020-11-24 |
Family
ID=73441682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010604660.6A Pending CN111985523A (zh) | 2020-06-28 | 2020-06-28 | 基于知识蒸馏训练的2指数幂深度神经网络量化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111985523A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112766463A (zh) * | 2021-01-25 | 2021-05-07 | 上海有个机器人有限公司 | 基于知识蒸馏技术优化神经网络模型的方法 |
CN112766477A (zh) * | 2021-01-13 | 2021-05-07 | 天津智模科技有限公司 | 神经网络运算电路 |
CN113222123A (zh) * | 2021-06-15 | 2021-08-06 | 深圳市商汤科技有限公司 | 模型训练方法、装置、设备及计算机存储介质 |
CN113313250A (zh) * | 2021-05-13 | 2021-08-27 | 中国科学院计算技术研究所 | 采用混合精度量化与知识蒸馏的神经网络训练方法及系统 |
CN113688990A (zh) * | 2021-09-09 | 2021-11-23 | 贵州电网有限责任公司 | 用于电力边缘计算分类神经网络的无数据量化训练方法 |
CN113723596A (zh) * | 2021-09-03 | 2021-11-30 | 北京地平线信息技术有限公司 | 定点模型的训练方法和训练装置 |
CN114358206A (zh) * | 2022-01-12 | 2022-04-15 | 合肥工业大学 | 二值神经网络模型训练方法及系统、图像处理方法及系统 |
CN114462592A (zh) * | 2021-12-24 | 2022-05-10 | 光子算数(北京)科技有限责任公司 | 模型训练方法、装置、电子设备及计算机可读存储介质 |
CN115019123A (zh) * | 2022-05-20 | 2022-09-06 | 中南大学 | 一种遥感图像场景分类的自蒸馏对比学习方法 |
CN115511059A (zh) * | 2022-10-12 | 2022-12-23 | 北华航天工业学院 | 一种基于卷积神经网络通道解耦的网络轻量化方法 |
WO2023245873A1 (zh) * | 2022-06-21 | 2023-12-28 | 华南理工大学 | 一种生成式无数据量化方法、识别方法、装置及存储介质 |
WO2024012255A1 (zh) * | 2022-07-11 | 2024-01-18 | 北京字跳网络技术有限公司 | 语义分割模型训练方法、装置、电子设备及存储介质 |
-
2020
- 2020-06-28 CN CN202010604660.6A patent/CN111985523A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112766477A (zh) * | 2021-01-13 | 2021-05-07 | 天津智模科技有限公司 | 神经网络运算电路 |
CN112766463A (zh) * | 2021-01-25 | 2021-05-07 | 上海有个机器人有限公司 | 基于知识蒸馏技术优化神经网络模型的方法 |
CN113313250B (zh) * | 2021-05-13 | 2023-11-24 | 中国科学院计算技术研究所 | 采用混合精度量化与知识蒸馏的神经网络训练方法及系统 |
CN113313250A (zh) * | 2021-05-13 | 2021-08-27 | 中国科学院计算技术研究所 | 采用混合精度量化与知识蒸馏的神经网络训练方法及系统 |
CN113222123A (zh) * | 2021-06-15 | 2021-08-06 | 深圳市商汤科技有限公司 | 模型训练方法、装置、设备及计算机存储介质 |
CN113723596A (zh) * | 2021-09-03 | 2021-11-30 | 北京地平线信息技术有限公司 | 定点模型的训练方法和训练装置 |
CN113688990A (zh) * | 2021-09-09 | 2021-11-23 | 贵州电网有限责任公司 | 用于电力边缘计算分类神经网络的无数据量化训练方法 |
CN114462592A (zh) * | 2021-12-24 | 2022-05-10 | 光子算数(北京)科技有限责任公司 | 模型训练方法、装置、电子设备及计算机可读存储介质 |
CN114358206A (zh) * | 2022-01-12 | 2022-04-15 | 合肥工业大学 | 二值神经网络模型训练方法及系统、图像处理方法及系统 |
CN115019123B (zh) * | 2022-05-20 | 2023-04-18 | 中南大学 | 一种遥感图像场景分类的自蒸馏对比学习方法 |
CN115019123A (zh) * | 2022-05-20 | 2022-09-06 | 中南大学 | 一种遥感图像场景分类的自蒸馏对比学习方法 |
WO2023245873A1 (zh) * | 2022-06-21 | 2023-12-28 | 华南理工大学 | 一种生成式无数据量化方法、识别方法、装置及存储介质 |
WO2024012255A1 (zh) * | 2022-07-11 | 2024-01-18 | 北京字跳网络技术有限公司 | 语义分割模型训练方法、装置、电子设备及存储介质 |
CN115511059A (zh) * | 2022-10-12 | 2022-12-23 | 北华航天工业学院 | 一种基于卷积神经网络通道解耦的网络轻量化方法 |
CN115511059B (zh) * | 2022-10-12 | 2024-02-09 | 北华航天工业学院 | 一种基于卷积神经网络通道解耦的网络轻量化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111985523A (zh) | 基于知识蒸馏训练的2指数幂深度神经网络量化方法 | |
CN107688849B (zh) | 一种动态策略定点化训练方法及装置 | |
CN107679618B (zh) | 一种静态策略定点化训练方法及装置 | |
CN107688850B (zh) | 一种深度神经网络压缩方法 | |
CN107689224B (zh) | 合理使用掩码的深度神经网络压缩方法 | |
CN111970163B (zh) | 一种基于注意力机制的lstm模型的网络流量预测方法 | |
CN111260030B (zh) | 基于a-tcn电力负荷预测方法、装置、计算机设备及存储介质 | |
CN110969251B (zh) | 基于无标签数据的神经网络模型量化方法及装置 | |
CN107729999A (zh) | 考虑矩阵相关性的深度神经网络压缩方法 | |
US20140156575A1 (en) | Method and Apparatus of Processing Data Using Deep Belief Networks Employing Low-Rank Matrix Factorization | |
CN111027732B (zh) | 一种多风电场出力场景的生成方法及系统 | |
CN110349185B (zh) | 一种rgbt目标跟踪模型的训练方法及装置 | |
CN108509422B (zh) | 一种词向量的增量学习方法、装置和电子设备 | |
US20210294874A1 (en) | Quantization method based on hardware of in-memory computing and system thereof | |
CN110930996A (zh) | 模型训练方法、语音识别方法、装置、存储介质及设备 | |
CN114943335A (zh) | 一种三值神经网络逐层优化方法 | |
CN112257466B (zh) | 一种应用于小型机器翻译设备的模型压缩方法 | |
CN112686384A (zh) | 一种自适应比特位宽的神经网络量化方法及其装置 | |
CN111260056B (zh) | 一种网络模型蒸馏方法及装置 | |
CN108665002A (zh) | 一种二分类任务标签噪声容忍分类器学习方法 | |
CN112232565A (zh) | 基于两阶段的时间序列预测方法、预测系统、终端及介质 | |
CN115984025A (zh) | 基于深度学习图网络模型的影响力传播估计方法及系统 | |
CN112561050A (zh) | 一种神经网络模型训练方法及装置 | |
CN115860062A (zh) | 一种适合fpga的神经网络量化方法及装置 | |
CN113762489A (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 |