CN113762452B - 一种量化prelu激活函数的方法 - Google Patents
一种量化prelu激活函数的方法 Download PDFInfo
- Publication number
- CN113762452B CN113762452B CN202010497786.8A CN202010497786A CN113762452B CN 113762452 B CN113762452 B CN 113762452B CN 202010497786 A CN202010497786 A CN 202010497786A CN 113762452 B CN113762452 B CN 113762452B
- Authority
- CN
- China
- Prior art keywords
- value
- parameter
- data
- quantized
- array
- 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.)
- Active
Links
- 230000004913 activation Effects 0.000 title claims abstract description 28
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000013139 quantization Methods 0.000 claims abstract description 31
- 239000000523 sample Substances 0.000 claims abstract description 3
- 238000012545 processing Methods 0.000 claims description 14
- 238000013528 artificial neural network Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 5
- 238000011002 quantification Methods 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 22
- 238000013527 convolutional neural network Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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/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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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)
- 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
本发明提供一种量化激活函数为PRELU的方法,包括:S1数据量化,对于待量化的数据按照下列公式(1)所示进行量化,得到低比特的数据,公式(1)变量说明:Wf为全精度数据是一个数组,Wq为量化后的数据,maxw为全精度数据Wf中最大值,minw为全精度数据Wf中最小值,b为量化后的位宽;S2量化PRELU激活函数,量化公式如公式(2)所示:公式(2)变量说明:当xi取值大于0时,需要将xi值乘上参数q1,如果xi值小于0时,需要将xi值乘上参数ac,c为xi所在的通道;具体参数说明:x为一个三维数组即{h,w,c},h,w,c分别为该数组的长,宽,通道数;参数a为一个一维数组{c},其中的c和x中的c数值是相等的;q1为1.0的量化;ac为参数a中第c个通道的数值。
Description
技术领域
本发明涉及神经网络加速技术领域,特别涉及一种量化PRELU激活函数的方法。
背景技术
近年来,随着科技的飞速发展,大数据时代已经到来。深度学习以深度神经网络(DNN)作为模型,在许多人工智能的关键领域取得了十分显著的成果,如图像识别、增强学习、语义分析等。卷积神经网络(CNN)作为一种典型的DNN结构,能有效提取出图像的隐层特征,并对图像进行准确分类,在近几年的图像识别和检测领域得到了广泛的应用。
特别地,实时量化feature map:将卷积运算出来的结果反量化为全精度数,然后根据实时统计获得的最大最小值完成对feature map的量化。
然而,现有技术中对于激活函数为PRELU时,并不会对其做量化处理,即对输入到PRELU的数据如果是量化后的数据则需要反量化为全精度的数据,PRELU内部做浮点运算,这样对于整个量化模型来说这一块需要做浮点运算,会导致模型运行时间增加。
此外,现有技术中的常用术语如下:
卷积神经网络(Convolutional Neural Networks,CNN):是一类包含卷积计算且具有深度结构的前馈神经网络。
量化:量化指将信号的连续取值(或者大量可能的离散取值)近似为有限多个(或较少的)离散值的过程。
低比特:将数据量化为位宽为8bit,4bit或者2bit的数据。
推理:神经网络训练结束后,利用保存的数据进行运算的过程。
PReLU(Parametric Rectified Linear Unit):带参数的ReLU。
发明内容
为了解决上述技术问题,本申请提出了一种量化激活函数为PRELU的方法,旨在克服上述现有技术中存在的缺陷,提出一种量化PRELU的方法,解决现有低比特模型推理过程当激活函数为PRELU时采用全精度计算的问题。
本发明方法会对PRELU函数也做量化处理,即PRELU函数的输入为量化后的数据内部做整型运算,从而提高模型的整体运行时间。
具体地,本发明提供一种量化激活函数为PRELU的方法,所述方法包括以下步骤:
S1,数据量化,对于待量化的数据按照下列公式(1)所示进行量化,得到低比特的数据,
公式(1)
变量说明:Wf为全精度数据是一个数组,Wq为量化后的数据,maxw为全精度数据Wf中最大值,minw为全精度数据Wf中最小值,b为量化后的位宽;
S2,量化PRELU激活函数,量化公式如公式(2)所示:
公式(2)
变量说明:当xi取值大于0时,需要将xi值乘上参数q1,如果xi值小于0时,需要将xi值乘上参数ac,c为xi所在的通道;具体参数说明:x为一个三维数组即{h,w,c},h,w,c分别为该数组的长,宽,通道数;参数a为一个一维数组{c},其中的c和x中的c数值是相等的;q1为1.0的量化;ac为参数a中第c个通道的数值。
所述的步骤S2的量化进一步包括:
S2.1,初始化:将0分别赋值给最小值minValue、最大值maxValue;
S2.2,将将Max(cf)赋值给cMax;将Min(cf)赋值给Min Value;
其中,Max(x)获取数组x的最大值,cf为全精度参数c,则Max(cf)为获取数组cf的最大值;
Min(x)获取数组x的最小值,cf为全精度参数c,则Min(cf)为获取数据cf的最小值;
S2.3,判断cMax是否大于1.0,如果是,则将cMax赋值给maxValue;
否则将1.0赋值给maxValue;
S2.4,处理量化Quantize(cf,minValue,maxValue)并赋值给qc;
处理量化Quantize(1.0,minValue,maxValue)并赋值给q1;
处理量化Quantize(xf,Min(xf),Max(xf))并赋值给qx;
处理量化QPRELU(qx,qc,q1)并将量化结果赋值给res;
其中,qc为量化后的参数cf,q1为1.0的量化,xf为全精度数据x,qx为量化后的数据xf,res为经过量化PRELU激活函数的结果。
所述步骤S2在量化PRELU激活时,由于正负半轴的处理方式是不一样,即x>0或x<0的情况不同,采用将正半轴都乘一个1,然后再根据参数c的minValue,maxValue将1量化,以便保证正负半轴的尺度一致。
所述方法还包括确定量化过程中使用PRELU激活函数的步骤,所述PRELU激活函数是个分段函数,如公式(3)所示,当xi取值大于0时直接取xi的值,如果xi值小于0时,需要将xi值乘上参数ac,c为xi所在的通道,
公式(3)具体参数说明:x为一个三维数组即{h,w,c},h,w,c分别为该数组的长,宽,通道数;参数a为一个一维数组{c},其中的c和x中的c数值是相等的;ac为参数a中第c个通道的数值。
由此,本申请的优势在于:
(1)当卷积神经网络中如果激活函数为PRELU的话,量化后的模型在推理的时候PRELU运算过程中将不存在浮点运算;
(2)含有PRELU激活函数的模型量化后,模型推理时间的减少。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不构成对本发明的限定。
图1是本发明方法的流程示意图。
图2是实现本发明方法中量化的代码化流程示意图。
具体实施方式
为了能够更清楚地理解本发明的技术内容及优点,现结合附图对本发明进行进一步的详细说明。
如图1所示,本发明的一种量化激活函数为PRELU的方法,所述方法包括以下步骤:
S1,数据量化,对于待量化的数据按照下列公式(1)所示进行量化,得到低比特的数据,
公式(1)变量说明:Wf为全精度数据是一个数组,Wq为量化后的数据,maxw为全精度数据Wf中最大值,minw为全精度数据Wf中最小值,b为量化后的位宽;
S2,量化PRELU激活函数,量化公式如公式(2)所示:
公式(2)变量说明:当xi取值大于0时,需要将xi值乘上参数q1,如果xi值小于0时,需要将xi值乘上参数ac,c为xi所在的通道;具体参数说明:x为一个三维数组即{h,w,c},h,w,c分别为该数组的长,宽,通道数;参数a为一个一维数组{c},其中的c和x中的c数值是相等的;q1为1.0的量化;ac为参数a中第c个通道的数值。
特别地,本申请的方法还可以表述为以下:
一种量化激活函数为PRELU的方法,包括以下内容:
1)PRELU激活函数实现原理:PRELU激活函数是个分段函数,具体公式如下列公式所示,当xi取值大于0时直接取xi的值,如果xi值小于0时,需要将xi值乘上参数ac,c为xi所在的通道:
具体参数说明:x为一个三维数组即{h,w,c},h,w,c分别为该数组的长,宽,通道数;参数a为一个一维数组{c},其中的c和x中的c数值是相等的;ac为参数a中第c个通道的数值。
2)数据量化:对于待量化的数据按照下列公式所示进行量化,得到低比特的数据。
变量说明:Wf为全精度数据是一个数组,Wq为量化后的数据,maxw全精度数据Wf中最大值,minw全精度数据Wf中最小值,b为量化后的位宽。
3)量化PRELU:如下列公式所示对于输入的数据xi,xi的正负会影响数据的运算方式,并且需要考虑到参数a的量化,量化公式如公式(3)所示:
公式(3)
具体的流程,具体描述如下,代码化如图2所示:
1),初始化:将0分别赋值给最小值minValue、最大值maxValue;
2),将将Max(cf)赋值给cMax;将Min(cf)赋值给minValue;
其中,Max(x)获取数组x的最大值,cf为全精度参数c,则Max(cf)为获取数组cf的最大值;
Min(x)获取数组x的最小值,cf为全精度参数c,则Min(cf)为获取数据cf的最小值;
3),判断cMax是否大于1.0,如果是,则将cMax赋值给maxValue;
否则将1.0赋值给maxValue;
4),处理量化Quantize(cf,minValue,maxValue)并赋值给qc;
处理量化Quantize(1.0,minValue,maxValue)并赋值给q1;
处理量化Quantize(xf,Min(xf),Max(xf))并赋值给qx;
处理量化QPRELU(qx,qc,q1)并将量化结果赋值给res;
其中,qc为量化后的参数cf,q1为1.0的量化,xf为全精度数据x,qx为量化后的数据xf,res为经过量化PRELU激活函数的结果。
在量化PRELU激活时,由于正负半轴(即x>0或x<0的情况)的处理方式是不一样,如果直接对负半轴的参数c采用公式(2)直接量化的话会导致正负半轴的尺度不一致,导致最终的结果不对。将正半轴都乘了一个1,然后再根据参数c的minValue,maxValue将1量化,这样就可以保证正负半轴的尺度一致。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (2)
1.一种量化PRELU激活函数的方法,其特征在于,所述量化PRELU激活函数应用于图像识别应用、语义分析应用中部署的深度神经网络,所述方法包括以下步骤:
S1,数据量化,对于待量化的数据按照下列公式(1)所示进行量化,得到低比特的数据,
公式(1)变量说明:Wf为全精度数据是一个数组,Wq为量化后的数据,maxw为全精度数据Wf中最大值,minw为全精度数据Wf中最小值,b为量化后的位宽;
S2,量化PRELU激活函数,量化公式如公式(2)所示:
公式(2)
变量说明:当xi取值大于0时,需要将xi值乘上参数q1,如果xi值小于0时,需要将xi值乘上参数ac,c为xi所在的通道;具体参数说明:x为一个三维数组即{h,w,c},h,w,c分别为该数组的长,宽,通道数;参数a为一个一维数组{c},其中的c和x中的c数值是相等的;q1为1.0的量化;ac为参数a中第c个通道的数值;
所述的步骤S2的量化进一步包括:
S2.1,初始化:将0分别赋值给最小值minValue、最大值maxValue;
S2.2,将Max(cf)赋值给cMax;将Min(cf)赋值给minValue;
其中,Max(x)获取数组x的最大值,cf为全精度参数c,则Max(cf)为获取数组cf的最大值;
Min(x)获取数组x的最小值,cf为全精度参数c,则Min(cf)为获取数据cf的最小值;
S2.3,判断cMax是否大于1.0,如果是,则将cMax赋值给maxValue;
否则将1.0赋值给maxValue;
S2.4,处理量化Quantize(cf,minValue,maxValue)并赋值给qc;
处理量化Quantize(1.0,minValue,maxValue)并赋值给q1;
处理量化Quantize(xf,Min(xf),Max(xf))并赋值给ax;
处理量化QPRELU(qx,qc,q1)并将量化结果赋值给res;
其中,qc为量化后的参数cf,q1为1.0的量化,xf为全精度数据x,qx为量化后的数据xf,res为经过量化PRELU激活函数的结果;
所述步骤S2在量化PRELU激活时,由于正负半轴的处理方式是不一样,即x>0或x<0的情况不同,采用将正半轴都乘一个1,然后再根据参数c的minValue,maxValue将1量化,以便保证正负半轴的尺度一致。
2.根据权利要求1所述的一种量化PRELU激活函数的方法,其特征在于,所述方法还包括确定量化过程中使用PRELU激活函数的步骤,所述PRELU激活函数是个分段函数,如公式(3)所示,当xi取值大于0时直接取xi的值,如果xi值小于0时,需要将xi值乘上参数ac,c为xi所在的通道,
公式(3)
具体参数说明:x为一个三维数组即{h,w,c},h,w,c分别为该数组的长,宽,通道数;参数a为一个一维数组{c},其中的c和x中的c数值是相等的;ac为参数a中第c个通道的数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010497786.8A CN113762452B (zh) | 2020-06-04 | 2020-06-04 | 一种量化prelu激活函数的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010497786.8A CN113762452B (zh) | 2020-06-04 | 2020-06-04 | 一种量化prelu激活函数的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113762452A CN113762452A (zh) | 2021-12-07 |
CN113762452B true CN113762452B (zh) | 2024-01-02 |
Family
ID=78783421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010497786.8A Active CN113762452B (zh) | 2020-06-04 | 2020-06-04 | 一种量化prelu激活函数的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113762452B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991472A (zh) * | 2017-03-30 | 2017-07-28 | 中国人民解放军国防科学技术大学 | 一种融合ReLU激活函数与最大值池化的向量化实现方法 |
CN109902745A (zh) * | 2019-03-01 | 2019-06-18 | 成都康乔电子有限责任公司 | 一种基于cnn的低精度训练与8位整型量化推理方法 |
CN110334802A (zh) * | 2019-05-23 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 一种神经网络模型的构建方法、装置、设备及存储介质 |
CN110796236A (zh) * | 2019-10-21 | 2020-02-14 | 中国人民解放军国防科技大学 | 多样本多通道卷积神经网络池化的向量化实现方法 |
CN111080729A (zh) * | 2019-12-24 | 2020-04-28 | 山东浪潮人工智能研究院有限公司 | 基于Attention机制的训练图片压缩网络的构建方法及系统 |
CN111105007A (zh) * | 2018-10-26 | 2020-05-05 | 中国科学院半导体研究所 | 用于目标检测的深度卷积神经网络的压缩加速方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102526650B1 (ko) * | 2017-05-25 | 2023-04-27 | 삼성전자주식회사 | 뉴럴 네트워크에서 데이터를 양자화하는 방법 및 장치 |
US11195096B2 (en) * | 2017-10-24 | 2021-12-07 | International Business Machines Corporation | Facilitating neural network efficiency |
-
2020
- 2020-06-04 CN CN202010497786.8A patent/CN113762452B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991472A (zh) * | 2017-03-30 | 2017-07-28 | 中国人民解放军国防科学技术大学 | 一种融合ReLU激活函数与最大值池化的向量化实现方法 |
CN111105007A (zh) * | 2018-10-26 | 2020-05-05 | 中国科学院半导体研究所 | 用于目标检测的深度卷积神经网络的压缩加速方法 |
CN109902745A (zh) * | 2019-03-01 | 2019-06-18 | 成都康乔电子有限责任公司 | 一种基于cnn的低精度训练与8位整型量化推理方法 |
CN110334802A (zh) * | 2019-05-23 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 一种神经网络模型的构建方法、装置、设备及存储介质 |
CN110796236A (zh) * | 2019-10-21 | 2020-02-14 | 中国人民解放军国防科技大学 | 多样本多通道卷积神经网络池化的向量化实现方法 |
CN111080729A (zh) * | 2019-12-24 | 2020-04-28 | 山东浪潮人工智能研究院有限公司 | 基于Attention机制的训练图片压缩网络的构建方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113762452A (zh) | 2021-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112183742B (zh) | 基于渐进式量化和Hessian信息的神经网络混合量化方法 | |
CN111147862B (zh) | 一种基于目标编码的端到端图像压缩方法 | |
CN111091184B (zh) | 一种深度神经网络的量化方法、装置、电子设备及介质 | |
CN111667068A (zh) | 一种基于掩码的深度图卷积神经网络模型剪枝方法与系统 | |
CN110647990A (zh) | 基于灰色关联分析的深度卷积神经网络模型的裁剪方法 | |
CN114707637A (zh) | 一种神经网络量化部署方法、系统及存储介质 | |
CN108734287A (zh) | 深度神经网络模型的压缩方法及装置、终端、存储介质 | |
CN113111889B (zh) | 用于边缘计算端的目标检测网络处理方法 | |
CN111027684A (zh) | 一种深度学习模型量化方法、装置、电子设备及存储介质 | |
CN113762452B (zh) | 一种量化prelu激活函数的方法 | |
CN114169513B (zh) | 神经网络的量化方法、装置、存储介质及电子设备 | |
CN113408696B (zh) | 深度学习模型的定点量化方法及装置 | |
CN112488291B (zh) | 一种神经网络8比特量化压缩方法 | |
CN112613604A (zh) | 神经网络的量化方法及装置 | |
CN110378467A (zh) | 一种针对深度学习网络参数的量化方法 | |
CN114998661B (zh) | 一种基于定点数量化的目标检测方法 | |
CN117454943A (zh) | 一种自动模型压缩方法、装置及介质 | |
CN113762496B (zh) | 一种降低低比特卷积神经网络推理运算复杂度的方法 | |
CN113762494B (zh) | 一种通过权重预处理提高低比特神经网络模型精度的方法 | |
CN109389221A (zh) | 一种神经网络压缩方法 | |
CN114372553A (zh) | 一种神经网络的量化方法及装置 | |
CN113762497B (zh) | 一种卷积神经网络模型低比特推理优化的方法 | |
CN112463078A (zh) | 神经网络量化存储方法 | |
CN113762500B (zh) | 一种卷积神经网络在量化时提高模型精度的训练方法 | |
Kim et al. | Towards Accurate Low Bit DNNs with Filter-wise Quantization |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |