CN115601593A - 一种图像分类方法、装置、设备及介质 - Google Patents
一种图像分类方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115601593A CN115601593A CN202211272835.3A CN202211272835A CN115601593A CN 115601593 A CN115601593 A CN 115601593A CN 202211272835 A CN202211272835 A CN 202211272835A CN 115601593 A CN115601593 A CN 115601593A
- Authority
- CN
- China
- Prior art keywords
- image classification
- layer
- output result
- value
- residual error
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013139 quantization Methods 0.000 claims abstract description 94
- 238000013145 classification model Methods 0.000 claims abstract description 90
- 238000012545 processing Methods 0.000 claims abstract description 47
- 238000012549 training Methods 0.000 claims abstract description 37
- 238000013528 artificial neural network Methods 0.000 claims abstract description 25
- 238000009826 distribution Methods 0.000 claims description 34
- 238000007667 floating Methods 0.000 claims description 21
- 238000003062 neural network model Methods 0.000 claims description 19
- 238000010606 normalization Methods 0.000 claims description 18
- 230000004913 activation Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 10
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000013507 mapping Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 6
- 238000005265 energy consumption Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000013136 deep learning model Methods 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 238000000354 decomposition reaction Methods 0.000 description 3
- 229910002056 binary alloy Inorganic materials 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- 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/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种图像分类方法、装置、设备及介质,涉及图像处理领域,该方法包括:确定待处理图像,并将待处理图像输入已训练好的图像分类模型,得到由图像分类模型输出的图像分类结果;图像分类模型中每层网络的特征值和权重均分配有各自对应的量化系数,量化系数是基于反向传播和梯度下降训练得到的;和/或;图像分类模型的残差层包括残差支路和对齐支路,残差支路用于对向残差层输入的数据进行若干次卷积得到第一输出结果,对齐支路用于对向残差层输入的数据进行数据标准化处理得到第二输出结果。本发明能够很好的平衡深度神经网络的应用精度和执行速度,不但能部署到专用定制平台,还能适用于通用平台。
Description
技术领域
本发明涉及图像处理领域,具体涉及一种图像分类方法、装置、设备及介质。
背景技术
目前,有大量基于神经网络构建的深度学习模型被部署到自动驾驶、智能手机等平台,用于进行图像的分类,根据图像中各个目标在图像信息中所反映的不同特征,把不同类别的目标区分开来。
然而用于图像分类的深度学习模型在实际场景部署的时候,一方面,为了保证算法的精度,需要设计计算量庞大的深度模型,另一方面,自动驾驶、智能手机上述平台的计算资源是有限的,它们对计算能力和整体功耗都有着严格的约束,深度学习模型部署上述平台时,迫切需要降低深度神经网络的计算复杂度,使其能够适用于资源受限的平台。
因此,能够降低计算复杂度并且还能确保图像处理精度的图像分类模型是目前业界亟待解决的重要课题。
发明内容
有鉴于此,本发明实施例提供了一种图像分类方法、装置、设备及介质,以解决图像分类模型部署时需要较高的计算复杂度以及计算资源的问题。
根据第一方面,本发明实施例提供了一种图像分类方法,所述方法包括:
确定待处理图像,并将待处理图像输入已训练好的图像分类模型,得到由图像分类模型输出的图像分类结果;
图像分类模型为三值神经网络模型,图像分类模型中每层网络的特征值和权重均分配有各自对应的量化系数,量化系数是基于反向传播和梯度下降训练得到的;
和/或;
图像分类模型的残差层包括残差支路和对齐支路,残差支路用于对向残差层输入的数据进行若干次卷积得到第一输出结果,对齐支路用于对向残差层输入的数据进行数据标准化处理得到第二输出结果,残差层的输出结果是对第一输出结果和第二输出结果进行加权求和后再经过激活层处理后得到的,第二输出结果的数据分布和第一输出结果的数据分布之间的相似值在预设范围内。
结合第一方面,在第一方面第一实施方式中,对所述图像分类模型训练时,每层网络的权重和量化系数均进行训练及调整;
所述图像分类模型通过以下步骤进行训练:
确定训练数据,并基于所述训练数据训练得到浮点模型;
将浮点模型中每层网络的特征值和权重作为训练用的数据,对权重进行调整,基于反向传播和梯度下降训练量化系数,并基于量化系数对特征值和权重进行量化处理,得到用于输出图像分类结果的图像分类模型;三值神经网络中经过量化后的每层网络的特征值和权重均至多具有三种取值。
结合第一方面第一实施方式,在第一方面第二实施方式中,通过公式(2)对权重进行量化处理,所述公式(2)为:
结合第一方面第一实施方式,在第一方面第三实施方式中,通过公式(3)对特征值进行量化处理,所述公式(3)为:
结合第一方面,在第一方面第四实施方式中,当所述图像分类模型具有所述残差层时,所述残差层的所述对齐支路包括一批归一化层,所述批归一化层用于对向所述残差层输入的数据进行数据标准化处理,并使得第二输出结果的数据分布和第一输出结果的数据分布之间的相似值在预设范围内。
结合第一方面,在第一方面第五实施方式中,所述图像分类模型的卷积层通过以下步骤进行卷积运算:
确定该卷积层已量化的特征值和权重分别对应的编码值;编码值包括第一、二、三和四编码值,第一编码值为2’b00并且用于表征-1,第二编码值为2’b01并且用于表征0,第三编码值为2’b10并且用于表征0,第三编码值为2’b11并且用于表征1;
基于特征值和权重分别对应的编码值确定掩膜信息,并基于掩膜信息以及编码值,确定特征值和权重的乘积;
基于特征值和权重的乘积以及卷积长度,得到该卷积层的卷积值。
结合第一方面第五实施方式,在第一方面第六实施方式中,通过以下公式计算得到卷积层的卷积值:
xnor=~(x^y) (6)
switch=((y>>1)&auxi)丨((y<<1)&~auxi) (7)
mask=switch^y (8)
TM(·)=(mask&auxi)丨((~mask)&xnor) (9)
X·Y=popcount(TM(x,y))-N (10)
其中,X表示权重,Y表示特征值,X和Y的长度均为N;x表示权重的二值编码向量;y表示特征值的二值编码向量;auxi为辅助计算常数,auxi取值为{2’b01}*L,L为每次计算中的批量操作长度。
第二方面,本发明实施例还提供一种图像分类装置,所述装置包括:
图像分类模块,用于确定待处理图像,并将待处理图像输入已训练好的图像分类模型,得到由图像分类模型输出的图像分类结果;
图像分类模型为三值神经网络模型,图像分类模型中每层网络的特征值和权重均分配有各自对应的量化系数,量化系数是基于反向传播和梯度下降训练得到的;
和/或;
图像分类模型的残差层包括残差支路和对齐支路,残差支路用于对向残差层输入的数据进行若干次卷积得到第一输出结果,对齐支路用于对向残差层输入的数据进行数据标准化处理得到第二输出结果,残差层的输出结果是对第一输出结果和第二输出结果进行加权求和后再经过激活层处理后得到的,第二输出结果的数据分布和第一输出结果的数据分布之间的相似值在预设范围内。
第三方面,本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述图像分类方法的步骤。
第四方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述图像分类方法的步骤。
第五方面,本发明实施例还提供一种计算机程序介质,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述图像分类方法的步骤。
本发明提供的图像分类方法、装置、设备及介质,通过为图像分类模型每层网络的特征值和权重分配两个独立的并且可学习参数来适配未知的数据分布,对特征值和权重进行量化处理,量化后的图像分类模型能够在硬件平台上取得比原来的全精度浮点模型更好的执行速度一级更低的能量消耗,极大地扩展了图像分类模型在等移动端平台的部署;
和/或;
在残差层的跨层连接处额外添加对齐结构形成对齐分支,使得第二输出结果和第一输出结果的差值在预设范围内,使得两条支路输出的数据分布尽可能一致,残差层能够有效屏蔽模型网络训练中的不稳定问题,使得图像分类模型能够取得显著的精度提升;
本申请的图像分类模型能够很好的平衡深度神经网络用于图像分类时的图像处理精度和执行速度,不但能部署到ASIC、FPGA等专用定制化平台,还可以适用到CPU、GPU、DSP等通用平台。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明提供的图像分类方法的流程示意图;
图2示出了本发明提供的图像分类方法中权重量化过程的示意图;
图3示出了本发明提供的图像分类方法中特征值量化过程的示意图;
图4示出了现有技术中残差层的结构示意图;
图5示出了本发明提供的图像分类方法中残差层的结构示意图;
图6示出了本发明提供的图像分类方法中进行三值数据编码的编码示意图;
图7示出了本发明提供的图像分类方法中特征值和权重基于编码值进行乘积时的结果示意图;
图8示出了本发明提供的图像分类装置的结构示意图;
图9示出了本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
基于神经网络构建的深度学习模型也就是深度神经网络(Deep NeuralNetworks,DNN)模型中,模型量化技术是一种降低模型复杂度的方法。模型量化可以理解为通过将深度神经网络中的特征值和权重从连续的浮点数据离散化成定点数据,模型量化能够使得模型在硬件消耗更少的整型计算部件上执行,能够有效地降低深度学习模型对计算能力和功耗的需求。
现有的模型量化技术有针对不同量化位宽的研究,并且,相关研究表明量化位宽越低,能够取得的加速性能和能耗降低越有优势,但是相应地同样网络结构取得的应用精度也越低,也就是用于图像分类的神经网络模型简单地运用模型量化技术,并不能确保图像分类时的准确率。模型量化技术需要在应用精度和执行速度之间寻得平衡,在保证应用精度能够满足应用需求的前提下,降低量化位宽,获取更好的执行性能。
深度神经网络模型中,二值神经网络具有最好的部署加速比,但是二值神经网络在应用精度方面存在缺陷,因而很多场景需要更高量化位宽来满足场景的需求。三值神经网络比二值神经网络有更多的量化等级,能够取得更好的应用精度,但是传统的三值神经网络使用四值神经网络的计算方法,在部署加速比方面并没有取得明显的优势。
通常意义来讲,深度神经网络模型量化中采用的量化位宽越低,越能够取得加速性能和能耗降低就越明显。但是在实际部署的时候,需要同时保证算法的精度,不能因为量化位宽太低而造成算法结果不可接受。因此,现有的一些深度神经网络模型以及模型的构建方案都保守地采用了一些比较高的量化位宽。目前的方案中都是基于8bit及以上量化进行相关的模型搭建,另一方面,低于8bit量化的模型在实际部署中对硬件也有比较高的要求,除了二值神经网络外,其他低于8bit量化的模型都需要在特定硬件上才能取得加速比。
深度神经网络模型的量化还和其在实际平台上的实现息息相关。目前的深度学习模型都是面向专用定制化平台的开发,例如,现场可编程逻辑门阵列(Field ProgrammableGate Array,FPGA)或者专用集成电路(Application Specific Integrated Circuit,ASIC),但是深度神经网络模型却很难在通用硬件平台,例如,中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、数字信号处理(Digital Signal Process,DSP)上应用。
下面结合图1描述本发明的图像分类方法,该方法包括以下步骤:
S10、确定待处理图像,并将待处理图像输入已训练好的图像分类模型,得到由图像分类模型输出的图像分类结果。
在本实施例中,图像分类模型为三值神经网络模型,且图像分类模型中每层网络的特征值和权重均分配有各自对应的量化系数,量化系数是基于反向传播和梯度下降训练得到的;
和/或;
图像分类模型的残差层包括残差支路和对齐支路,残差支路用于对向残差层输入的数据进行若干次卷积得到第一输出结果,对齐支路用于对向残差层输入的数据进行数据标准化处理得到第二输出结果,残差层的输出结果是对第一输出结果和第二输出结果进行加权求和后再经过激活层处理后得到的,第二输出结果的数据分布和第一输出结果的数据分布之间的相似值差值在预设范围内即数据分布在相似的区间,也就是第一输出结果和第二输出结果遵循相似的分布,通过为残差支路引入对齐结构,可以协调残差层的不同路径,使得不同路径的数据遵循相似的分布,降低不同分支汇合时的误差,能够有效降低模型量化带来的任务精度损失。
本发明的图像分类方法,通过为图像分类模型每层网络的特征值和权重分配两个独立的并且可学习参数来适配未知的数据分布,对特征值和权重进行量化处理,量化后的图像分类模型能够在硬件平台上取得比原来的全精度浮点模型更好的执行速度一级更低的能量消耗,极大地扩展了图像分类模型在等移动端平台的部署;
和/或;
在残差层的跨层连接处额外添加对齐结构形成对齐分支,使得第二输出结果和第一输出结果的差值在预设范围内,使得两条支路输出的数据分布尽可能一致,残差层能够有效屏蔽模型网络训练中的不稳定问题,使得图像分类模型能够取得显著的精度提升;
本申请的图像分类模型能够很好的平衡深度神经网络用于图像分类时的图像处理精度和执行速度,不但能部署到ASIC、FPGA等专用定制化平台,还可以适用到CPU、GPU、DSP等通用平台。
在本申请中,对图像分类模型训练时,每层网络的权重和量化系数均进行训练及调整,即,每层网络的量化系数和原来网络中的权重一起参与参数的微调,一起参与梯度下降优化。更具体的,图像分类模型通过以下步骤进行训练:
A10、确定训练数据,并基于训练数据训练得到浮点模型,在训练过程中也可以用验证数据对浮点模型进行验证,使得步骤A10训练得到的是一个全精度浮点模型。
A20、将之前得到的浮点模型作为预训练模型,作为量化模型的初始状态,将浮点模型也就是初始状态的量化模型中每层网络的特征值和权重作为训练用的数据,对权重进行调整,基于反向传播和梯度下降训练量化系数,并基于量化系数对特征值和权重进行量化处理也就是离散化处理,得到用于输出图像分类结果的图像分类模型,三值神经网络中每层网络的特征值和权重均至多具有三种取值,具体的,权重的取值包括-1,0和1,特征值的取值包括0,1和2。
在步骤A20中会为图像分类模型中每层网络的特征值和权重各自分配两个独立且对应的量化系数,并且量化系数和权重会在模型训练的过程中进行调整,最终得到本申请的图像分类模型。
请参阅图2和图3,形式化地,本申请中可以将量化过程描述成一个分段函数。
例如对于每层网络的权重中的任何一个浮点数p来说,可以通过公式(1)进行量化处理,权重经过量化处理后得到的量化值可以表示为:
其中,α1为第一量化系数,α2为第二量化系数,α1与α2不相等且均为正数,因此本申请采用的是非均匀量化;Qw(p)表示对浮点类型的权重p进行量化处理后得到的量化值;表示取整函数。也就是数值取整,在本实施例中,为了取得更好的效果,在取整时还会进行四舍五入(round-nearest integer)。
上述公式(1)也可以理解并表达为:
梯度下降的优化方式要求所有函数可导,或者分段可导。通过公式(2)可知,公式(2)中大部分量化操作都是可导,除了需要进行round操作的取整函数之外,取整函数本身的导数几乎处处为0,阻断了训练阶段的梯度传播,为了能正常训练,对于取整函数本申请中采用STE(Straight Through Estimator)算法,即本申请将的直通得到近似的优化方向,也即是设定的导数为1,即本申请中将的导数强行被定义为1。
本申请中神经网络模型特征值的量化过程与权重的量化过程一致,对于每层网络的特征值,通过公式(3)进行量化处理,公式(3)为:
本发明的图像分类方法,通过为图像分类模型每层网络的特征值和权重分配两个独立的并且可学习参数来适配未知的数据分布,适应各种分布的浮点数据,对特征值和权重进行量化处理,量化后的图像分类模型能够在硬件平台上取得比原来的全精度浮点模型更好的执行速度一级更低的能量消耗,极大地扩展了神经网络在自动驾驶等移动端平台的部署。
深度神经网络中的残差模块也叫做残差网络(Residual Net,ResNet)。使用了残差连接使得网络变得更深。当深度神经网络模型的层次变得更深时,对于模型训练就可能会存在梯度消失(Vanishing Gradient):由于沿着网络进行反向传播时,梯度会越来越小,导致对于很深的网络,最初几层网络的权重基本不会更新。通过残差模块使得梯度传播可以跳过卷积层,即使深度神经网络模型的网络层数(隐藏层层数)达到百层千层仍可以训练。
在本申请一些可能的实施例中,当图像分类模型具有残差层时,残差层的对齐支路包括一批归一化层,批归一化层用于对向残差层输入的数据进行数据标准化处理,并使得第二输出结果和第一输出结果的差值在预设范围内。
请参阅图4,现有技术中深度神经网络的残差层(模块)的结构如下:
现有技术中残差层具有两条分支,分别为残差支路和直接映射支路。
残差支路(ResBlock)包括第一卷积层、第一批归一化层、第二卷积层、第二批归一化层,输入的数据z依次经过第一卷积层、第一批归一化层、第二卷积层和第二批归一化层的处理后得到残差支路输出的F(z),如果没有直接映射支路,残差支路和原本的深层网络结构没有区别,目前最简单的残差支路可以只有两层的卷积层以及设置在两层卷积层之间的ReLU激活层;
直接映射支路为近路连接(shortcut),通过对输入的数据x进行恒等映射(Identity Mapping)处理,也就是直接跨层连接,直接通过简单的恒等映射完成,不需要引入额外的参数,减小了计算负担。
最后对残差支路和直接映射支路的结果进行融合(eltwise add)处理后再进行ReLU激活处理得到残差层输出的数据u,u=F(z)+z,也就是将两条支路的结果加权求和后再进行ReLU激活处理得到数据y。
在实际训练过程中,由于每层权重和特征值的分布是不均匀的,并且不能提前获知,为了增强三值神经网络的应用精度,请参阅图5,在本申请中对现有技术的残差层的直接映射支路进行改进,增加了对齐结构,具体的:
本申请中残差层同样具有两条分支,分别为残差支路和对齐支路。残差支路与现有技术中类似,未作改动,同样可以是第一卷积层、第一批归一化层、第二卷积层、第二批归一化层,输入的数据z依次经过第一卷积层、第一批归一化层、第二卷积层和第二批归一化层的处理后得到残差支路输出的F(z);对齐支路包括第三批归一化层,该对齐支路对输入的数据x进行数据标准化处理,得到H(z)。然后对两条支路的输出结果加权求和后进行ReLU激活(激活层)处理得到数据u,即,本申请中残差层的输出为u=F(z)+H(z)。
本申请中还可以进一步在残差层的跨层连接处额外添加对齐结构形成对齐分支,使得第二输出结果和第一输出结果的差值在预设范围内,即,通过对齐支路使得在残差层的融合阶段,两条支路输出的数据分布尽可能一致。因此,本申请中结构进行改进的残差层能够有效屏蔽模型网络训练中的不稳定问题,能够取得显著的精度提升。
以将本申请提供的深度神经网络模型应用在Imagenet图片分类任务为例进行说明,当图像分类模型的网络结构使用了本申请中的非均匀化量化结构后,再分别应用在Resnet-18、Resnet-34和ResNet-50三种网络结构上时,三值网络量化算法能够取得比全精度模型只低约几点百分点的量化精度,该量化损失在很多应用场景能被接受,同时,相对于使用均匀量化的LSQ(Learned Step Size Quantization)等算法,能够取得更好的量化精度,即,使用非均匀化量化结构后应用精度没有明显的改变,却能够提升量化精度;当图像分类模型的残差层使用了本申请中的对齐结构后,再分别应用在Resnet-18、Resnet-34和ResNet-50三种网络结构上时,三值网络量化算法同样能够取得比全精度模型只低约几点百分点的量化精度,该量化损失在很多应用场景能被接受,同时相对于其他量化算法相比,本申请在类似量化位宽或者执行复杂度的情况下,在量化精度有显著提升;当图像分类模型同时使用了本申请中的非均匀化结构以及残差层的对齐结构后,应用精度没有明显的改变,量化精度能够明显得到了提升。
传统的图像分类模型通过部署通用硬件平台进行模型运行及应用时,卷积层的卷积运算采用4个二值网络实现,例如公式(4)所示,或者,采用分解的方式例如公式(5)所示。上述这些实现方式下的三值神经网络具有和2-bit神经网络相同的计算复杂度,因此在速度和功耗方面相比2-bit量化网络没有优势。
X·Y=N-2·popcount(xnor(x,y)) (4)
其中,X为权重,Y为特征值,X和Y的长度均为N;x为权重的二值编码向量;y为特征值的二值编码向量;M表示特征值的位宽;K表示特征值的位宽;xm为第m位的特征值;yk为第k位的权重;αm=2m,βk=2k。
公式(4)是典型的二值卷积的实现方式,先使用同或运算区分x和y中的不同值,然后根据逻辑,计算中两个数据的卷积。对于高于二值量化位宽的网络,可以使用公式(5)进行分解,例如,对于M-bit特征值量化和K-bit权重量化的网络,可以分解为M*K个二值网络。但是按照以上两种方式,三值量化网络没有比2-bit量化网络速度方面有优势,应用精度方面又没有2-bit网络精度高,在实际应用时具有明显缺陷。
在本申请一些可能的实施例中,图像分类模型的卷积层通过以下步骤进行卷积运算:
B10、确定该卷积层已量化的特征值和权重分别对应的编码值。
请参阅图6,编码值包括第一、二、三和四编码值,第一编码值为2’b00并且用于表征-1,第二编码值为2’b01并且用于表征0,第三编码值为2’b10并且用于表征0,第三编码值为2’b11并且用于表征1。也就是,本申请针对三值神经网络量化后的值在实际运行时,设计了专门的编码,通过使用编码2’b00代表-1,使用编码2’b11代表1,使用编码2’b01和2’b10均代表0。
以上编码方式采用数字逻辑设计中的常用格式,第一个‘2’表示有2位数字,‘b’代表二进制,进制符号后代表指定位宽的数字编码,本申请中编码采用的是2位二进制4种编码。
采用本申请提供的编码方式的好处是,编码中1’b1的数量减去1,刚好是其逻辑值(即popcount(codec)=data+1)。根据这种编码方式,验证两个三值数据的乘法结果,其真值表参见图7所示,其中,xc表示量化后的特征值,yc表示量化后的权重,zc表示量化后的特征值以及权重的卷积值。
B20、基于特征值和权重分别对应的编码值确定掩膜信息,并基于掩膜信息以及编码值,确定特征值和权重的乘积。
对图7中zc进行进一步的结果验证可以发现,这样编码的三值数据,其乘法结果和异或操作结果有大部分是相同的,仅有图7中加粗部分的数据和异或运算的结果不一致,因此通过设计一种检测算法,检测出图7中加粗部分,经过修正即可以获得三值数据的乘法结果。
B30、基于特征值和权重的乘积以及卷积长度,得到该卷积层的卷积值。
更具体的,通过公式(6)至公式(10)得到卷积层的卷积值。
xnor=~(x^y) (6)
switch=((y>>1)&auxi)丨((y<<1)&~auxi) (7)
mask=switch^y (8)
TM(·)=(mask&auxi)丨((~mask)&xnor) (9)
X·Y=popcount(TM(x,y))-N (10)
其中,auxi是辅助计算常数,具体数值根据每次计算中的批量操作长度确定,auxi取值为{2’b01}*L,L为每次计算对应公式(6)至公式(9)中的批量操作长度,也可以理解为并行处理的数据数量。例如每次只处理一个数据时,auxi=2’01;每次并行处理两个数据时,auxi=4’b0101;每次并行处理三个数据时,auxi=6’b010101,以此类推。
公式(7)通过检测操作数y中是否出现2’b01或者2’b10的编码,识别出是否属于图7中加粗部分的情况,再通过公式(8)得出相应的掩膜(mask)信息,接着由公式(9)进行最终的修订,公式(9)得到两个三值数据(或者三值向量)的乘积,最后通过公式(10)计算所得两个三值数据的卷积。
通过本申请提出的卷积运算方式,能比2-bit量化网络取得更快的加速比,大大增强了三值量化网络的计算能力,减少了所需的计算资源,即,本申请的图像分类模型能够在二值量化网络和2-bit量化网络之间取得良好的均衡,进一步能够支持在位操作的硬件平台包括专用定制平台和通用平台上进行部署和运行。
下面对本发明提供的图像分类装置进行描述,下文描述的图像分类装置与上文描述的图像分类方法可相互对应参照。
下面结合图8描述本发明的图像分类装置,该装置包括:
图像分类模块10,用于确定待处理图像,并将待处理图像输入已训练好的图像分类模型,得到由图像分类模型输出的图像分类结果。
在本实施例中,图像分类模型为三值神经网络模型,且图像分类模型中每层网络的特征值和权重均分配有各自对应的量化系数,量化系数是基于反向传播和梯度下降训练得到的;
和/或;
图像分类模型的残差层包括残差支路和对齐支路,残差支路用于对向残差层输入的数据进行若干次卷积得到第一输出结果,对齐支路用于对向残差层输入的数据进行数据标准化处理得到第二输出结果,残差层的输出结果是对第一输出结果和第二输出结果进行加权求和后再进行ReLU激活处理得到的,第二输出结果的数据分布和第一输出结果的数据分布之间的相似值在预设范围内。
本发明的图像分类装置,通过为图像分类模型每层网络的特征值和权重分配两个独立的并且可学习参数来适配未知的数据分布,对特征值和权重进行量化处理,量化后的图像分类模型能够在硬件平台上取得比原来的全精度浮点模型更好的执行速度一级更低的能量消耗,极大地扩展了图像分类模型在等移动端平台的部署;
和/或;
在残差层的跨层连接处额外添加对齐结构形成对齐分支,使得第二输出结果和第一输出结果的差值在预设范围内,使得两条支路输出的数据分布尽可能一致,残差层能够有效屏蔽模型网络训练中的不稳定问题,使得图像分类模型能够取得显著的精度提升;
本申请的图像分类模型能够很好的平衡深度神经网络用于图像分类时的图像处理精度和执行速度,不但能部署到ASIC、FPGA等专用定制化平台,还可以适用到CPU、GPU、DSP等通用平台。
图9示例了一种电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)210、通信接口(Communications Interface)220、存储器(memory)230和通信总线240,其中,处理器210,通信接口220,存储器230通过通信总线240完成相互间的通信。处理器210可以调用存储器230中的逻辑命令,以执行图像分类方法,该方法包括:
确定待处理图像,并将待处理图像输入已训练好的图像分类模型,得到由图像分类模型输出的图像分类结果;
图像分类模型为三值神经网络模型,图像分类模型中每层网络的特征值和权重均分配有各自对应的量化系数,量化系数是基于反向传播和梯度下降训练得到的;
和/或;
图像分类模型的残差层包括残差支路和对齐支路,残差支路用于对向残差层输入的数据进行若干次卷积得到第一输出结果,对齐支路用于对向残差层输入的数据进行数据标准化处理得到第二输出结果,残差层的输出结果是对第一输出结果和第二输出结果进行加权求和后再经过激活层处理后得到的,第二输出结果的数据分布和第一输出结果的数据分布之间的相似值在预设范围内。
此外,上述的存储器230中的逻辑命令可以通过软件功能单元的形式实现并作为独立的介质销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件介质的形式体现出来,该计算机软件介质存储在一个存储介质中,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序介质,所述计算机程序介质包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的图像分类方法,该方法包括:
确定待处理图像,并将待处理图像输入已训练好的图像分类模型,得到由图像分类模型输出的图像分类结果;
图像分类模型为三值神经网络模型,图像分类模型中每层网络的特征值和权重均分配有各自对应的量化系数,量化系数是基于反向传播和梯度下降训练得到的;
和/或;
图像分类模型的残差层包括残差支路和对齐支路,残差支路用于对向残差层输入的数据进行若干次卷积得到第一输出结果,对齐支路用于对向残差层输入的数据进行数据标准化处理得到第二输出结果,残差层的输出结果是对第一输出结果和第二输出结果进行加权求和后再经过激活层处理后得到的,第二输出结果的数据分布和第一输出结果的数据分布之间的相似值在预设范围内。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的图像分类方法,该方法包括:
确定待处理图像,并将待处理图像输入已训练好的图像分类模型,得到由图像分类模型输出的图像分类结果;
图像分类模型为三值神经网络模型,图像分类模型中每层网络的特征值和权重均分配有各自对应的量化系数,量化系数是基于反向传播和梯度下降训练得到的;
和/或;
图像分类模型的残差层包括残差支路和对齐支路,残差支路用于对向残差层输入的数据进行若干次卷积得到第一输出结果,对齐支路用于对向残差层输入的数据进行数据标准化处理得到第二输出结果,残差层的输出结果是对第一输出结果和第二输出结果进行加权求和后再经过激活层处理后得到的,第二输出结果的数据分布和第一输出结果的数据分布之间的相似值在预设范围内。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件介质的形式体现出来,该计算机软件介质可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种图像分类方法,其特征在于,所述方法包括:
确定待处理图像,并将待处理图像输入已训练好的图像分类模型,得到由图像分类模型输出的图像分类结果;
图像分类模型为三值神经网络模型,图像分类模型中每层网络的特征值和权重均分配有各自对应的量化系数,量化系数是基于反向传播和梯度下降训练得到的;
和/或;
图像分类模型的残差层包括残差支路和对齐支路,残差支路用于对向残差层输入的数据进行若干次卷积得到第一输出结果,对齐支路用于对向残差层输入的数据进行数据标准化处理得到第二输出结果,残差层的输出结果是对第一输出结果和第二输出结果进行加权求和后再经过激活层处理后得到的,第二输出结果的数据分布和第一输出结果的数据分布之间的相似值在预设范围内。
2.根据权利要求1所述的图像分类方法,其特征在于,对所述图像分类模型训练时,每层网络的权重和量化系数均进行训练及调整;
所述图像分类模型通过以下步骤进行训练:
确定训练数据,并基于所述训练数据训练得到浮点模型;
将浮点模型中每层网络的特征值和权重作为训练用的数据,对权重进行调整,基于反向传播和梯度下降训练量化系数,并基于量化系数对特征值和权重进行量化处理,得到用于输出图像分类结果的图像分类模型;三值神经网络中经过量化后的每层网络的特征值和权重均至多具有三种取值。
5.根据权利要求1所述的图像分类方法,其特征在于,当所述图像分类模型具有所述残差层时,所述残差层的所述对齐支路包括一批归一化层,所述批归一化层用于对向所述残差层输入的数据进行数据标准化处理,并使得第二输出结果的数据分布和第一输出结果的数据分布之间的相似值在预设范围内。
6.根据权利要求1所述的图像分类方法,其特征在于,所述图像分类模型的卷积层通过以下步骤进行卷积运算:
确定该卷积层已量化的特征值和权重分别对应的编码值;编码值包括第一、二、三和四编码值,第一编码值为2’b00并且用于表征-1,第二编码值为2’b01并且用于表征0,第三编码值为2’b10并且用于表征0,第三编码值为2’b11并且用于表征1;
基于特征值和权重分别对应的编码值确定掩膜信息,并基于掩膜信息以及编码值,确定特征值和权重的乘积;
基于特征值和权重的乘积以及卷积长度,得到该卷积层的卷积值。
7.根据权利要求6所述的图像分类方法,其特征在于,通过以下公式计算得到卷积层的卷积值:
xnor=~(x^y) (6)
switch=((y>>1)&auxi)丨((y<<1)&~auxi) (7)
mask=switch^y (8)
TM(·)=(mask&auxi)丨((~mask)&xnor) (9)
X·Y=popcount(TM(x,y))-N (10)
其中,X表示权重,Y表示特征值,X和Y的长度均为N;x表示权重的二值编码向量;y表示特征值的二值编码向量;auxi表示辅助计算常数,auxi取值为{2’b01}*L,L为每次计算中的批量操作长度。
8.一种图像分类装置,其特征在于,所述装置包括:
图像分类模块,用于确定待处理图像,并将待处理图像输入已训练好的图像分类模型,得到由图像分类模型输出的图像分类结果;
图像分类模型为三值神经网络模型,图像分类模型中每层网络的特征值和权重均分配有各自对应的量化系数,量化系数是基于反向传播和梯度下降训练得到的;
和/或;
图像分类模型的残差层包括残差支路和对齐支路,残差支路用于对向残差层输入的数据进行若干次卷积得到第一输出结果,对齐支路用于对向残差层输入的数据进行数据标准化处理得到第二输出结果,残差层的输出结果是对第一输出结果和第二输出结果进行加权求和后再经过激活层处理后得到的,第二输出结果的数据分布和第一输出结果的数据分布之间的相似值在预设范围内。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述图像分类方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述图像分类方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211272835.3A CN115601593A (zh) | 2022-10-18 | 2022-10-18 | 一种图像分类方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211272835.3A CN115601593A (zh) | 2022-10-18 | 2022-10-18 | 一种图像分类方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115601593A true CN115601593A (zh) | 2023-01-13 |
Family
ID=84847628
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211272835.3A Pending CN115601593A (zh) | 2022-10-18 | 2022-10-18 | 一种图像分类方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115601593A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200372246A1 (en) * | 2019-05-21 | 2020-11-26 | Magic Leap, Inc. | Hand pose estimation |
WO2021008018A1 (zh) * | 2019-07-18 | 2021-01-21 | 平安科技(深圳)有限公司 | 基于人工智能的车辆识别方法、装置、程序及存储介质 |
CN114511733A (zh) * | 2022-01-05 | 2022-05-17 | 泉州湖南大学工业设计与机器智能创新研究院 | 基于弱监督学习的细粒度图像识别方法、装置及可读介质 |
CN114943335A (zh) * | 2022-04-16 | 2022-08-26 | 国网山东省电力公司聊城供电公司 | 一种三值神经网络逐层优化方法 |
-
2022
- 2022-10-18 CN CN202211272835.3A patent/CN115601593A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200372246A1 (en) * | 2019-05-21 | 2020-11-26 | Magic Leap, Inc. | Hand pose estimation |
WO2021008018A1 (zh) * | 2019-07-18 | 2021-01-21 | 平安科技(深圳)有限公司 | 基于人工智能的车辆识别方法、装置、程序及存储介质 |
CN114511733A (zh) * | 2022-01-05 | 2022-05-17 | 泉州湖南大学工业设计与机器智能创新研究院 | 基于弱监督学习的细粒度图像识别方法、装置及可读介质 |
CN114943335A (zh) * | 2022-04-16 | 2022-08-26 | 国网山东省电力公司聊城供电公司 | 一种三值神经网络逐层优化方法 |
Non-Patent Citations (1)
Title |
---|
CHEN PENG ET AL.: "FATNN: Fast and Accurate Ternary Neural Networks", 《PROCEEDINGS OF THE IEEE/CVF INTERNATIONAL CONFERENCE ON COMPUTER VISION (ICCV), 2021》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108510067B (zh) | 基于工程化实现的卷积神经网络量化方法 | |
US11106973B2 (en) | Method and system for bit-depth reduction in artificial neural networks | |
US11915128B2 (en) | Neural network circuit device, neural network processing method, and neural network execution program | |
KR102608467B1 (ko) | 뉴럴 네트워크의 경량화 방법, 이를 이용한 인식 방법, 및 그 장치 | |
US20190370658A1 (en) | Self-Tuning Incremental Model Compression Solution in Deep Neural Network with Guaranteed Accuracy Performance | |
CN111105017B (zh) | 神经网络量化方法、装置及电子设备 | |
CN110796253A (zh) | 生成对抗网络的训练方法及设备 | |
CN111860783B (zh) | 图节点低维表征学习方法、装置、终端设备及存储介质 | |
CN114402596A (zh) | 神经网络模型压缩 | |
US20220156987A1 (en) | Adaptive convolutions in neural networks | |
CN112446888A (zh) | 图像分割模型的处理方法和处理装置 | |
CN114282666A (zh) | 基于局部稀疏约束的结构化剪枝方法和装置 | |
CN114429208A (zh) | 基于残差结构剪枝的模型压缩方法、装置、设备及介质 | |
CN113424200A (zh) | 用于视频编码和视频解码的方法、装置和计算机程序产品 | |
CN111582229A (zh) | 一种网络自适应半精度量化的图像处理方法和系统 | |
CN115664899A (zh) | 一种基于图神经网络的信道解码方法及系统 | |
CN114792347A (zh) | 一种基于多尺度空间和上下文信息融合的图像压缩方法 | |
CN112686384A (zh) | 一种自适应比特位宽的神经网络量化方法及其装置 | |
CN115601593A (zh) | 一种图像分类方法、装置、设备及介质 | |
CN114049539B (zh) | 基于去相关二值网络的协同目标识别方法、系统及装置 | |
CN114065913A (zh) | 模型量化方法、装置及终端设备 | |
CN113177627B (zh) | 优化系统、重新训练系统及其方法及处理器和可读介质 | |
CN112561050B (zh) | 一种神经网络模型训练方法及装置 | |
CN114511069A (zh) | 一种提高低比特量化模型性能的方法和系统 | |
CN114298280A (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: 20230113 |