CN111488985A - 深度神经网络模型压缩训练方法、装置、设备、介质 - Google Patents
深度神经网络模型压缩训练方法、装置、设备、介质 Download PDFInfo
- Publication number
- CN111488985A CN111488985A CN202010269318.5A CN202010269318A CN111488985A CN 111488985 A CN111488985 A CN 111488985A CN 202010269318 A CN202010269318 A CN 202010269318A CN 111488985 A CN111488985 A CN 111488985A
- Authority
- CN
- China
- Prior art keywords
- neural network
- network model
- deep neural
- output
- loss function
- 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.)
- Granted
Links
- 238000003062 neural network model Methods 0.000 title claims abstract description 277
- 238000012549 training Methods 0.000 title claims abstract description 132
- 238000000034 method Methods 0.000 title claims abstract description 52
- 230000006835 compression Effects 0.000 title claims abstract description 37
- 238000007906 compression Methods 0.000 title claims abstract description 37
- 230000006870 function Effects 0.000 claims abstract description 119
- 238000013139 quantization Methods 0.000 claims abstract description 38
- 238000004422 calculation algorithm Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 14
- 238000007781 pre-processing Methods 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 10
- 238000013528 artificial neural network Methods 0.000 description 10
- 238000013527 convolutional neural network Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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/047—Probabilistic or stochastic networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了一种深度神经网络模型压缩训练方法、装置、设备、介质,该方法包括:获取目标训练数据集;将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型,得到第一输出和第二输出;根据所述第一输出和所述第二输出构建目标损失函数;利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新;利用所述第二全精度权重参数更新所述第二深度神经网络模型的量化权重参数,并在所述目标损失函数满足预设要求时,将所述第二深度神经网络模型作为训练后压缩神经网络模型。这样能够减小模型的大小,降低存储和内存带宽需求,降低计算代价。
Description
技术领域
本申请涉及机器学习技术领域,特别涉及一种深度神经网络模型压缩训练方法、装置、设备、介质。
背景技术
在大数据集和并行计算等技术的推动下,基于深度学习的神经网络得到了学术界和工业界的广泛关注,在多个领域有着比较大的突破,如图像分类、目标检测、语义分割、人脸检测和人脸识别等,然而,目前基于深度神经网络模型的算法仍然面临许多挑战。首先,虽然基于深度神经网络模型的算法在多个数据集取得较为优异的识别率,但是目前深度神经网络模型具有巨大的参数量,从而导致了庞大的存储和内存带宽需求,造成资源占用率太高。其次,基于深度神经网路的模型有较高的计算复杂度,使得基于深度神经网络模型的算法在推理速度上难以满足实时性需求,对实时性要求较高的设备不适用。庞大的参数量和计算量使得基于深度神经网络模型的算法难以部署到资源受限的设备中,如手机,穿戴设备和无人机等,这极大地限制了基于深度神经网络模型的算法在各个领域的应用。所以如何对现有的深度神经网络模型进行压缩,是目前本领域技术人员亟需解决的技术问题。
发明内容
有鉴于此,本申请的目的在于提供一种深度神经网络模型压缩训练方法、装置、设备、介质,能够减小模型的大小,降低存储和内存带宽需求,降低计算代价,使得基于深度神经网络模型的算法能够部署到资源受限的设备中,加快神经网络的前向传播速度,满足实时计算需求。其具体方案如下:
第一方面,本申请公开了一种深度神经网络模型压缩训练方法,包括:
获取目标训练数据集;
将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型,得到第一输出和第二输出;
根据所述第一输出和所述第二输出构建目标损失函数;
利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新;
利用所述第二全精度权重参数更新所述第二深度神经网络模型的量化权重参数,并在所述目标损失函数满足预设要求时,将所述第二深度神经网络模型作为训练后压缩神经网络模型。
可选地,所述利用所述目标训练数据集对预先构建的第一深度神经网络模型和第二深度神经网络模型进行训练之前,还包括:
构建所述第一深度神经网络模型和所述第二深度神经网络模型。
可选地,所述构建所述第一深度神经网络模型和所述第二深度神经网络模型,包括:
构建ResNet网络分别作为所述第一深度神经网络模型和所述第二深度神经网络模型;
或,构建PreResNet网络分别作为所述第一深度神经网络模型和所述第二深度神经网络模型。
可选地,所述将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型之前,还包括:
对所述目标训练数据集进行预处理,得到预处理后目标训练数据集;
相应的,所述将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型,得到第一输出和第二输出,包括:
将所述预处理后目标训练数据集输入到预先构建的第一深度神经网络模型,得到第一输出;
将所述预处理后目标训练数据集输入到预先构建的第二深度神经网络模型,得到第二输出。
可选地,所述根据所述第一输出和所述第二输出构建目标损失函数,包括:
利用所述第一输出、所述第二输出和softmax函数,分别确定第一概率输出和第二概率输出;
根据所述第一概率输出、所述第二概率输出和第一预设公式,确定辅助损失函数,其中,所述第一预设公式为:
根据所述辅助损失函数、所述第一深度神经网络模型的第一交叉熵损失函数、所述第二深度神经网络模型的第二交叉熵损失函数和第二预设公式,构建所述第一深度神经网络模型的第一目标损失函数和所述第二深度神经网络模型的第二目标损失函数,其中,所述第二预设公式为:
其中,Lfull表示所述第一深度神经网络模型的第一目标损失函数,Llow表示所述第二深度神经网络模型的第二目标损失函数,表示第一深度神经网络模型的第一交叉熵损失函数,表示第二深度神经网络模型的第二交叉熵损失函数,β表示预设系数,m表示所述第一深度神经网络模型或所述第二深度神经网络模型的分类结果类别数,I{·}表示指示函数,当满足输入条件时,输出1,否则输出为0,y(i)表示第i个样本的标签,表示第i个样本第t个类别的概率。
可选地,所述利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新,包括:
利用所述第一目标损失函数和随机梯度下降算法对所述第一深度神经网络模型的第一全精度权重参数进行更新;
利用所述第二目标损失函数和随机梯度下降算法对所述第二深度神经网络模型的第二全精度权重参数进行更新。
可选地,所述利用所述第二全精度权重参数更新所述第二深度神经网络模型的量化权重参数,包括:
利用所述第二全精度权重参数和第三预设公式更新所述第二深度神经网络模型的量化权重参数,其中,所述第三预设公式为:
其中,wq表示所述第二深度神经网络模型的量化权重参数,w表示所述第二全精度权重参数,tanh表示双曲正切函数,max函数用于返回输入向量中的最大值,Q表示离散函数。
第二方面,本申请公开了一种深度神经网络模型压缩训练装置,包括:
数据获取模块,用于获取目标训练数据集;
模型训练模块,用于将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型,得到第一输出和第二输出;
损失函数构建模块,用于根据所述第一输出和所述第二输出构建目标损失函数;
全精度权重参数更新,用于利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新;
量化权重参数利更新,用于用所述第二全精度权重参数更新所述第二深度神经网络模型的量化权重参数;
模型确定模块,用于在所述目标损失函数满足预设要求时,将所述第二深度神经网络模型作为训练后压缩神经网络模型。
第三方面,本申请公开了一种深度神经网络模型压缩训练设备,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现前述公开的深度神经网络模型压缩训练方法。
第四方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的深度神经网络模型压缩训练方法。
可见,本申请先获取目标训练数据集,然后将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型,得到第一输出和第二输出,再根据所述第一输出和所述第二输出构建目标损失函数,接着利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新,然后利用所述第二全精度权重参数更新所述第二深度神经网络模型的量化权重参数,并在所述目标损失函数满足预设要求时,将所述第二深度神经网络模型作为训练后压缩神经网络模型。这样得到的训练后压缩神经网络模型为具有量化权重参数的神经网络模型,能够减小模型的大小,降低存储和内存带宽需求,降低计算代价,使得基于深度神经网络模型的算法能够部署到资源受限的设备中,加快神经网络的前向传播速度,满足实时计算需求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种深度神经网络模型压缩训练方法流程图;
图2为本申请公开的一种具体的深度神经网络模型压缩训练方法流程图;
图3为本申请公开的一种具体的深度神经网络模型中的卷积层工作原理示意图;
图4为本申请公开的一种具体的辅助损失函数确定流程图;
图5为本申请公开的一种深度神经网络模型压缩训练装置结构示意图;
图6为本申请公开的一种深度神经网络模型压缩训练设备结构图;
图7为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1所示,本申请实施例公开了一种深度神经网络模型压缩训练方法,该方法包括:
步骤S11:获取目标训练数据集。
在具体的实施过程中,需要先获取目标训练数据集,其中,所述目标训练数据集包括但不限于目标图像训练集。当所述目标训练数据集为目标图像训练集时,所述目标图像训练集中的图像可以是利用目标图像采集设备实时采集的图像,也可以预先获取到的存储在预设内存中的图像。且所述图像可为RGB三通道图像,也可以为单通道灰度图像。还可以对所述的目标图像进行裁剪,缩放处理,得到最终的目标图像训练集。此外,当所述目标训练数据集为目标图像训练集时,为了提高识别结果的准确率,在将目标图像输入至预设深度神经网络模型之前,还可以对图像进行归一化处理。具体的,可以预先计算好图像数据集的均值和方差,可对目标图像每个像素值减去平均值,然后将结果除以标准偏差,使得处理后的图像数据分布趋近于以0为均值,标准差为1的高斯分布。紧接着可以对目标图像进行随机裁剪,然后将图片缩放到预先设置好的大小。此外还可以对目标图像随机水平翻转,以增加目标图像的多样性。
步骤S12:将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型,得到第一输出和第二输出。
在获取到所述目标训练数据集之后,还需要将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型,得到第一输出和第二输出,以便根据所述第一输出和所述第二输出确定相应的损失函数。
步骤S13:根据所述第一输出和所述第二输出构建目标损失函数。
在得到所述第一输出和所述第二输出之后,还需要根据所述第一输出和所述第二输出构建目标损失函数,以便利用所述目标损失函数对所述第一深度神经网络模型和所述第二深度神经网络模型进行训练,以使得所述第一深度神经网络和所述第二深度神经网络模型均满足相应的要求。
步骤S14:利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新。
可以理解的是,在构建出所述目标损失函数之后,还需要利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新,以便所述第一深度神经网络根据所述第一全精度权重参数确定与输入对应的输出,以及所述第二深度神经网络模型根据所述第二全精度权重参数确定与输入对应的输出。
步骤S15:利用所述第二全精度权重参数更新所述第二深度神经网络模型的量化权重参数,并在所述目标损失函数满足预设要求时,将所述第二深度神经网络模型作为训练后压缩神经网络模型。
在利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新之后,还包括利用所述第二全精度权重参数更新所述第二深度神经网络模型的量化权重参数,并在所述目标损失函数满足预设要求时,将所述第二深度神经网络模型作为训练后压缩神经网络模型。在训练过程中,所述第二深度神经网络模型中保留两份权重参数,一份是第二全精度权重参数,另一份是量化权重参数。在推理时,对所述第二全精度权重参数进行量化,得到量化权重参数。在所述第二深度神经网络模型的卷积层中,实际与输入做卷积运算的权重参数为量化权重参数。并训练完成后,也即在所述目标损失函数满足预设要求时,所述第二深度神经网络中只保留量化权重参数,舍弃所述第二全精度权重参数。由于量化权重参数可以用低比特定点数表示,所得到量化深度卷积网络的模型小,使得所述训练后压缩神经网络模型能够被部署到内存空间有限的设备中,例如,无人机、可穿戴设备、AR眼镜等。
可见,本申请先获取目标训练数据集,然后将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型,得到第一输出和第二输出,再根据所述第一输出和所述第二输出构建目标损失函数,接着利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新,然后利用所述第二全精度权重参数更新所述第二深度神经网络模型的量化权重参数,并在所述目标损失函数满足预设要求时,将所述第二深度神经网络模型作为训练后压缩神经网络模型。这样得到的训练后压缩神经网络模型为具有量化权重参数的神经网络模型,能够减小模型的大小,降低存储和内存带宽需求,降低计算代价,使得基于深度神经网络模型的算法能够部署到资源受限的设备中,加快神经网络的前向传播速度,满足实时计算需求。
参见图2所示,本申请实施例公开了一种具体的深度神经网络模型压缩训练方法,该方法包括:
步骤S21:构建第一深度神经网络模型和第二深度神经网络模型。
在具体的实施过程中,需要先构建第一深度神经网络模型和第二深度神经网络模型。具体的,所述构建所述第一深度神经网络模型和所述第二深度神经网络模型,包括:构建ResNet网络分别作为所述第一深度神经网络模型和所述第二深度神经网络模型;或,构建PreResNet网络分别作为所述第一深度神经网络模型和所述第二深度神经网络模型。具体的,就是可以构建ResNet网络或PreResNet网络作为所述第一深度神经网络模型和所述第二深度神经网络模型。构建好的ResNet网络或PreResNet网络有对应的初始化全精度权重参数,则将有初始化全精度权重参数的ResNet网络或PreResNet网络作为所述第一深度神经网络模型,将所述初始化全精度权重参数量化得到初始化量化权重参数,将有所述初始化量化权重参数和全精度权重参数的ResNet网络或PreResNet网络作为第二深度神经网络模型。
步骤S22:获取目标训练数据集。
可以理解的是,再构建出所述第一深度神经网络模型和所述第二深度神经网络模型之后,还需要获取目标训练数据集,以便利用所述目标训练数据集对所述第一深度神经网络模型和第二深度神经网络模型进行训练。
在获取到所述目标训练数据集之后,还包括:对所述目标训练数据集进行预处理,得到预处理后目标训练数据集。如果所述目标训练数据集为图像训练数据集,则所述预处理包括但不限于归一化、裁剪、缩放等。在样本进入所述第二深度神经网络模型之后,在进入每一层卷积之前需要进行量化。例如,所述第二深度神经网络模型有2个卷积层,则样本在进入第一个卷积层之前需要进行量化,经过第一个卷积层得到第一层输出,第一层输出在进入第二卷积层之前也需要先进行量化。
具体的,可以根据以下公式对待量化的输入特征图进行量化,所述公式为:
aq=Q(a)
其中,a为输入特征图,aq为量化后的输入特征图,Q为离散函数。由于对输入特征图进行了量化,可以用低比特定点数来表示输入特征图,大大减小了运行时的内存开销。又因为量化权重参数也用低比特定点数表示,所以量化输入特征图与量化权重参数之间的乘法可用定点数乘法代替,这极大地减少了量化深度神经网络的计算代价,使得量化深度网络能够被部署到计算力有限的设备中,如智能手机、无人机、可穿戴设备等。
参见图3所示,为所述第二深度神经网络模型中的卷积层(conv)工作原理示意图。对全精度权重参数进行量化,得到量化权重参数,再对输入进行量化,得到量化输入,所述量化参数和所述量化输入在卷积层进行运算,得到相应的输出。
步骤S23:将所述目标训练数据集输入到所述第一深度神经网络模型和所述第二深度神经网络模型,得到第一输出和第二输出。
在获取到所述目标训练数据集之后,还需要将所述目标训练数据集输入到所述第一深度神经网络模型和所述第二深度神经网络模型,得到第一输出和第二输出。具体的,将所述目标训练数据集输入到所述第一深度神经网络模型和所述第二深度神经网络模型,得到第一输出和第二输出,可以包括:将所述预处理后目标训练数据集输入到预先构建的第一深度神经网络模型,得到第一输出;将所述预处理后目标训练数据集输入到预先构建的第二深度神经网络模型,得到第二输出。
步骤S24:利用所述第一输出、所述第二输出和softmax函数,分别确定第一概率输出和第二概率输出。
在得到所述第一输出和所述第二输出之后,还需要根据所述第一输出和所述第二输出构建目标损失函数。具体的,就是先利用所述第一输出、所述第二输出和softmax函数,分别确定第一概率输出和第二概率输出。
步骤S25:根据所述第一概率输出、所述第二概率输出和第一预设公式,确定辅助损失函数,其中,所述第一预设公式为:
在得到所述第一概率输出和所述第二概率输出之后,还需要根据所述第一概率输出、所述第二概率输出以及第一预设公式确定辅助损失函数。在训练过程中,样本数量N不是越大越好,也不是越小越好。过多的样本数量会增加网络的训练开销,过小的样本数量会使得网络的训练不稳定。N的取值可以根据数据集来选择。例如在ImageNet数据上,N可以设置为256或128,在CIFAR-100数据集上,N可以设置为128。
步骤S26:根据所述辅助损失函数、所述第一深度神经网络模型的第一交叉熵损失函数、所述第二深度神经网络模型的第二交叉熵损失函数和第二预设公式,构建所述第一深度神经网络模型的第一目标损失函数和所述第二深度神经网络模型的第二目标损失函数,其中,所述第二预设公式为:
其中,Lfull表示所述第一深度神经网络模型的第一目标损失函数,Llow表示所述第二深度神经网络模型的第二目标损失函数,表示第一深度神经网络模型的第一交叉熵损失函数,表示第二深度神经网络模型的第二交叉熵损失函数,β表示预设系数,m表示所述第一深度神经网络模型或所述第二深度神经网络模型的分类结果类别数,I{·}表示指示函数,当满足输入条件时,输出1,否则输出为0,y(i)表示第i个样本的标签,表示第i个样本第t个类别的概率。
在得到所述辅助损失函数之后,便可根据所述辅助损失函数、所述第一深度神经网络模型的第一交叉熵损失函数、所述第二深度神经网络模型的第二交叉熵损失函数和第二预设公式,构建所述目标损失函数。在具体的实施过程中,过大的β值会阻碍深度神经网络模型的训练,过小的β值会减小辅助损失函数的性能,进而影响两个模型的性能,所以需要根据实际情况设置β的值,例如,β可以取0.5或0.1。
参见图4所示,为辅助损失函数确定流程图。将对应的训练样本训练第一深度神经网络模型和第二深度神经网络模型,样本在神经网络模型中经过多个卷积层,在经过平均层AvgPooling,然后从FC进行输出,得到第一输出和第二输出,将所述第一输出和所述第二输出输入到softmax函数中,对应得到第一概率输出Pfull,第二概率输出Plow,根据第一概率输出确定第一交叉熵损失函数根据第二概率输出确定第二交叉熵损失函数以及根据所述第一概率输出和所述第二概率输出确定辅助损失函数DKL(Pfull,Plow)。
步骤S27:利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新。
在得到所述目标损失函数之后,还需要利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新。具体的,所述利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新,包括:利用所述第一目标损失函数和随机梯度下降算法对所述第一深度神经网络模型的第一全精度权重参数进行更新;利用所述第二目标损失函数和随机梯度下降算法对所述第二深度神经网络模型的第二全精度权重参数进行更新。。
步骤S28:利用所述第二全精度权重参数和第三预设公式更新所述第二深度神经网络模型的量化权重参数,其中,所述第三预设公式为:
其中,wq表示所述第二深度神经网络模型的量化权重参数,w表示所述第二全精度权重参数,tanh表示双曲正切函数,max函数用于返回输入向量中的最大值,Q表示离散函数。
在对所述第一全精度权重参数和所述第二全精度权重参数进行更新之后,还需要利用所述第二全精度权重参数和第三预设公式更新所述第二深度神经网络模型的量化权重参数。在具体的实施过程中,离散函数Q可以参见如下公式:
其中,l表示需要量化的数据,round函数表示对输入进行四舍五入计算,k表示量化比特数。具体的,就是在每一轮训练结束之后,都会先对所述第一全精度权重参数和所述第二全精度权重参数进行更新,再根据所述第二全精度权重参数更新所述第二深度神经网络模型中的量化权重参数,而不是直接对所述量化权重参数进行更新。这样可以提高所述量化权重参数的准确性。
步骤S29:在所述目标损失函数满足预设要求时,将所述第二深度神经网络模型作为训练后压缩神经网络模型。
在所述目标损失函数满足预设要求时,将所述第二深度神经网络模型作为训练后压缩神经网络模型。得到的训练后压缩神经网络模型以量化权重参数作为模型权重参数,减小了神经网络的模型大小。
由于在训练第二深度神经网络模型的同时也在训练第一深度卷积神经网络模型,因而在训练的过程中,通过辅助损失函数,第一深度卷积神经网络模型能够为第二深度神经网络模型提供额外的监督信息,同时第二深度神经网络模型也可以为第一深度卷积神经网络模型提供额外的监督信息。这使得第一深度卷积神经网络模型和第二深度卷积神经网络模型能够互相学习,进而减少第二深度卷积神经网络模型的量化损失,提升第一深度卷积神经网络模型和第二深度卷积神经网络模型的性能。训练结束后,可只保留第二深度卷积神经网络模型的量化权重参数,获得更加小的模型。
在得到所述训练后压缩神经网络模型,也即量化深度神经网络模型之后,还可以在ImageNet和CIFAR-100等经典的数据集上进行测试,通过计算Top-1error以及Top-5error进行性能评估。从测试结果可以发现,利用本发明实施例所提供的深度神经网络模型压缩训练方法所得到的量化深度神经网络模型,性能上仍然可以保持甚至超过原始深度神经网络模型。参见表1所示,为得到的量化神经网络模型在CIFAR-100上的实验结果,此处以PreResNet-20为例。参见表2所示,为得到的量化神经网络模型在在ImageNet上的实验结果,以ResNet-18、ResNet-34、ResNet-50为例。
表1
表2
其中,表中的比特数是指量化比特数。
参见图5所示,本申请实施例公开了一种深度神经网络模型压缩训练装置,包括:
数据获取模块11,用于获取目标训练数据集;
模型训练模块12,用于将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型,得到第一输出和第二输出;
损失函数构建模块13,用于根据所述第一输出和所述第二输出构建目标损失函数;
全精度权重参数更新14,用于利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新;
量化权重参数利更新15,用于用所述第二全精度权重参数更新所述第二深度神经网络模型的量化权重参数;
模型确定模块16,用于在所述目标损失函数满足预设要求时,将所述第二深度神经网络模型作为训练后压缩神经网络模型。
可见,本申请先获取目标训练数据集,然后将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型,得到第一输出和第二输出,再根据所述第一输出和所述第二输出构建目标损失函数,接着利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新,然后利用所述第二全精度权重参数更新所述第二深度神经网络模型的量化权重参数,并在所述目标损失函数满足预设要求时,将所述第二深度神经网络模型作为训练后压缩神经网络模型。这样得到的训练后压缩神经网络模型为具有量化权重参数的神经网络模型,能够减小模型的大小,降低存储和内存带宽需求,降低计算代价,使得基于深度神经网络模型的算法能够部署到资源受限的设备中,加快神经网络的前向传播速度,满足实时计算需求。
进一步的,参见图6所示,本申请实施例还公开了一种深度神经网络模型压缩训练设备,包括:处理器21和存储器22。
其中,所述存储器22,用于存储计算机程序;所述处理器21,用于执行所述计算机程序,以实现前述实施例中公开的深度神经网络模型压缩训练方法。
其中,关于上述深度神经网络模型压缩训练方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
进一步的,参见图7所示,为本申请实施例提供的一种电子设备20的结构示意图,该电子设备20能够实现前述实施例中公开的深度神经网络模型压缩训练方法。
通常,本实施例中的电子设备20包括:处理器21和存储器22。
其中,处理器21可以包括一个或多个处理核心,比如四核心处理器、八核心处理器等。处理器21可以采用DSP(digital signal processing,数字信号处理)、FPGA(field-programmable gate array,现场可编程们阵列)、PLA(programmable logic array,可编程逻辑阵列)中的至少一种硬件来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(central processing unit,中应处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有GPU(graphics processing unit,图像处理器),GPU用于负责显示屏所需要显示的图像的渲染和绘制。一些实施例中,处理器21可以包括AI(artificialintelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器22可以包括一个或多个计算机可读存储介质,计算机可读存储介质可以是非暂态的。存储器22还可以包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器22至少用于存储以下计算机程序221,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例中公开的深度神经网络模型压缩训练方法步骤。另外,存储器22所存储的资源还可以包括操作系统222和数据223等,存储方式可以是短暂存储也可以是永久存储。其中,操作系统222可以是Windows、Unix、Linux等。数据223可以包括各种各样的数据。
在一些实施例中,电子设备20还可包括有显示屏23、输入输出接口24、通信接口25、传感器26、电源27以及通信总线28。
本技术领域人员可以理解,图7中示出的结构并不构成对电子设备20的限定,可以包括比图示更多或更少的组件。
进一步的,本申请实施例还公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述任一实施例中公开的深度神经网络模型压缩训练方法。
其中,关于上述深度神经网络模型压缩训练方法的具体过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得一系列包含其他要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种深度神经网络模型压缩训练方法、装置、设备、介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种深度神经网络模型压缩训练方法,其特征在于,包括:
获取目标训练数据集;
将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型,得到第一输出和第二输出;
根据所述第一输出和所述第二输出构建目标损失函数;
利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新;
利用所述第二全精度权重参数更新所述第二深度神经网络模型的量化权重参数,并在所述目标损失函数满足预设要求时,将所述第二深度神经网络模型作为训练后压缩神经网络模型。
2.根据权利要求1所述的深度神经网络模型压缩训练方法,其特征在于,所述利用所述目标训练数据集对预先构建的第一深度神经网络模型和第二深度神经网络模型进行训练之前,还包括:
构建所述第一深度神经网络模型和所述第二深度神经网络模型。
3.根据权利要求2所述的深度神经网络模型压缩训练方法,其特征在于,所述构建所述第一深度神经网络模型和所述第二深度神经网络模型,包括:
构建ResNet网络分别作为所述第一深度神经网络模型和所述第二深度神经网络模型;
或,构建PreResNet网络分别作为所述第一深度神经网络模型和所述第二深度神经网络模型。
4.根据权利要求1所述的深度神经网络模型压缩训练方法,其特征在于,将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型之前,还包括:
对所述目标训练数据集进行预处理,得到预处理后目标训练数据集;
相应的,所述将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型,得到第一输出和第二输出,包括:
将所述预处理后目标训练数据集输入到预先构建的第一深度神经网络模型,得到第一输出;
将所述预处理后目标训练数据集输入到预先构建的第二深度神经网络模型,得到第二输出。
5.根据权利要求1所述的深度神经网络模型压缩训练方法,其特征在于,所述根据所述第一输出和所述第二输出构建目标损失函数,包括:
利用所述第一输出、所述第二输出和softmax函数,分别确定第一概率输出和第二概率输出;
根据所述第一概率输出、所述第二概率输出和第一预设公式,确定辅助损失函数,其中,所述第一预设公式为:
根据所述辅助损失函数、所述第一深度神经网络模型的第一交叉熵损失函数、所述第二深度神经网络模型的第二交叉熵损失函数和第二预设公式,构建所述第一深度神经网络模型的第一目标损失函数和所述第二深度神经网络模型的第二目标损失函数,其中,所述第二预设公式为:
6.根据权利要求5所述的深度神经网络模型压缩训练方法,其特征在于,所述利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新,包括:
利用所述第一目标损失函数和随机梯度下降算法对所述第一深度神经网络模型的第一全精度权重参数进行更新;
利用所述第二目标损失函数和随机梯度下降算法对所述第二深度神经网络模型的第二全精度权重参数进行更新。
8.一种深度神经网络模型压缩训练装置,其特征在于,包括:
数据获取模块,用于获取目标训练数据集;
模型训练模块,用于将所述目标训练数据集输入到预先构建的第一深度神经网络模型和第二深度神经网络模型,得到第一输出和第二输出;
损失函数构建模块,用于根据所述第一输出和所述第二输出构建目标损失函数;
全精度权重参数更新,用于利用所述目标损失函数对所述第一深度神经网络模型的第一全精度权重参数和所述第二深度神经网络模型的第二全精度权重参数进行更新;
量化权重参数利更新,用于用所述第二全精度权重参数更新所述第二深度神经网络模型的量化权重参数;
模型确定模块,用于在所述目标损失函数满足预设要求时,将所述第二深度神经网络模型作为训练后压缩神经网络模型。
9.一种深度神经网络模型压缩训练设备,其特征在于,包括:
存储器和处理器;
其中,所述存储器,用于存储计算机程序;
所述处理器,用于执行所述计算机程序,以实现权利要求1至7任一项所述的深度神经网络模型压缩训练方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的深度神经网络模型压缩训练方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010269318.5A CN111488985B (zh) | 2020-04-08 | 2020-04-08 | 深度神经网络模型压缩训练方法、装置、设备、介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010269318.5A CN111488985B (zh) | 2020-04-08 | 2020-04-08 | 深度神经网络模型压缩训练方法、装置、设备、介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111488985A true CN111488985A (zh) | 2020-08-04 |
CN111488985B CN111488985B (zh) | 2023-11-14 |
Family
ID=71794851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010269318.5A Active CN111488985B (zh) | 2020-04-08 | 2020-04-08 | 深度神经网络模型压缩训练方法、装置、设备、介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111488985B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111967580A (zh) * | 2020-08-05 | 2020-11-20 | 上海交通大学 | 基于特征迁移的低比特神经网络训练方法及系统 |
CN112257858A (zh) * | 2020-09-21 | 2021-01-22 | 华为技术有限公司 | 一种模型压缩方法及装置 |
CN112508194A (zh) * | 2021-02-02 | 2021-03-16 | 支付宝(杭州)信息技术有限公司 | 模型压缩方法、系统和计算设备 |
WO2021159748A1 (zh) * | 2020-09-23 | 2021-08-19 | 平安科技(深圳)有限公司 | 模型压缩方法、装置、计算机设备及存储介质 |
CN113361602A (zh) * | 2021-06-04 | 2021-09-07 | 展讯通信(上海)有限公司 | 神经网络模型的训练方法、装置和电子设备 |
CN113408265A (zh) * | 2021-06-22 | 2021-09-17 | 平安科技(深圳)有限公司 | 基于人机交互的语义解析方法、装置、设备及存储介质 |
CN113554097A (zh) * | 2021-07-26 | 2021-10-26 | 北京市商汤科技开发有限公司 | 模型量化方法、装置、电子设备和存储介质 |
CN114205449A (zh) * | 2020-09-02 | 2022-03-18 | 成都鼎桥通信技术有限公司 | 终端防窃听方法、控制设备、终端及存储介质 |
WO2023165139A1 (zh) * | 2022-03-04 | 2023-09-07 | 上海商汤智能科技有限公司 | 模型量化方法、装置、设备、存储介质及程序产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594525A (zh) * | 2008-05-31 | 2009-12-02 | 华为技术有限公司 | 量化参数的获取方法、装置及转码器 |
CN101867799A (zh) * | 2009-04-17 | 2010-10-20 | 北京大学 | 一种视频帧处理方法和视频编码器 |
CN108805259A (zh) * | 2018-05-23 | 2018-11-13 | 北京达佳互联信息技术有限公司 | 神经网络模型训练方法、装置、存储介质及终端设备 |
CN109074665A (zh) * | 2016-12-02 | 2018-12-21 | 阿文特公司 | 用于在基于医学成像的程序中导航到目标解剖对象的系统和方法 |
CN109816092A (zh) * | 2018-12-13 | 2019-05-28 | 北京三快在线科技有限公司 | 深度神经网络训练方法、装置、电子设备及存储介质 |
CN110163234A (zh) * | 2018-10-10 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种模型训练方法、装置和存储介质 |
-
2020
- 2020-04-08 CN CN202010269318.5A patent/CN111488985B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594525A (zh) * | 2008-05-31 | 2009-12-02 | 华为技术有限公司 | 量化参数的获取方法、装置及转码器 |
CN101867799A (zh) * | 2009-04-17 | 2010-10-20 | 北京大学 | 一种视频帧处理方法和视频编码器 |
CN109074665A (zh) * | 2016-12-02 | 2018-12-21 | 阿文特公司 | 用于在基于医学成像的程序中导航到目标解剖对象的系统和方法 |
CN108805259A (zh) * | 2018-05-23 | 2018-11-13 | 北京达佳互联信息技术有限公司 | 神经网络模型训练方法、装置、存储介质及终端设备 |
CN110163234A (zh) * | 2018-10-10 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种模型训练方法、装置和存储介质 |
CN109816092A (zh) * | 2018-12-13 | 2019-05-28 | 北京三快在线科技有限公司 | 深度神经网络训练方法、装置、电子设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
BOHAN ZHUANG ET.AL: "Effective Training of Convolutional Neural Networks with Low-bitwidth Weights and Activations", 《ARXIV:1908.04680V1》, pages 1 - 5 * |
JING LIU ET.AL: "Discrimination-aware Network Pruning for Deep Model Compression", 《ARXIV:2001.01050V1》, pages 1 - 4 * |
ZHUANGWEI ZHUANG ET.AL: "Discrimination-aware Channel Pruning for Deep Neural Networks", 《ADVANCES IN NEURAL INFORMATION PROCESSING SYSTEMS 31 (NEURIPS 2018)》, pages 1 - 3 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111967580A (zh) * | 2020-08-05 | 2020-11-20 | 上海交通大学 | 基于特征迁移的低比特神经网络训练方法及系统 |
CN111967580B (zh) * | 2020-08-05 | 2023-09-29 | 上海交通大学 | 基于特征迁移的低比特神经网络训练方法及系统 |
CN114205449B (zh) * | 2020-09-02 | 2023-06-16 | 成都鼎桥通信技术有限公司 | 终端防窃听方法、控制设备、终端及存储介质 |
CN114205449A (zh) * | 2020-09-02 | 2022-03-18 | 成都鼎桥通信技术有限公司 | 终端防窃听方法、控制设备、终端及存储介质 |
CN112257858A (zh) * | 2020-09-21 | 2021-01-22 | 华为技术有限公司 | 一种模型压缩方法及装置 |
WO2022057776A1 (zh) * | 2020-09-21 | 2022-03-24 | 华为技术有限公司 | 一种模型压缩方法及装置 |
WO2021159748A1 (zh) * | 2020-09-23 | 2021-08-19 | 平安科技(深圳)有限公司 | 模型压缩方法、装置、计算机设备及存储介质 |
CN112508194A (zh) * | 2021-02-02 | 2021-03-16 | 支付宝(杭州)信息技术有限公司 | 模型压缩方法、系统和计算设备 |
CN113361602A (zh) * | 2021-06-04 | 2021-09-07 | 展讯通信(上海)有限公司 | 神经网络模型的训练方法、装置和电子设备 |
CN113408265B (zh) * | 2021-06-22 | 2023-01-17 | 平安科技(深圳)有限公司 | 基于人机交互的语义解析方法、装置、设备及存储介质 |
CN113408265A (zh) * | 2021-06-22 | 2021-09-17 | 平安科技(深圳)有限公司 | 基于人机交互的语义解析方法、装置、设备及存储介质 |
CN113554097A (zh) * | 2021-07-26 | 2021-10-26 | 北京市商汤科技开发有限公司 | 模型量化方法、装置、电子设备和存储介质 |
WO2023165139A1 (zh) * | 2022-03-04 | 2023-09-07 | 上海商汤智能科技有限公司 | 模型量化方法、装置、设备、存储介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN111488985B (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111488985A (zh) | 深度神经网络模型压缩训练方法、装置、设备、介质 | |
CN109816009B (zh) | 基于图卷积的多标签图像分类方法、装置及设备 | |
US11763542B2 (en) | Apparatus and method for image classification and segmentation based on feature-guided network, device, and medium | |
CN115063875B (zh) | 模型训练方法、图像处理方法、装置和电子设备 | |
CN113379627B (zh) | 图像增强模型的训练方法和对图像进行增强的方法 | |
CN112418292A (zh) | 一种图像质量评价的方法、装置、计算机设备及存储介质 | |
CN111105017A (zh) | 神经网络量化方法、装置及电子设备 | |
CN114494784A (zh) | 深度学习模型的训练方法、图像处理方法和对象识别方法 | |
CN113902010A (zh) | 分类模型的训练方法和图像分类方法、装置、设备和介质 | |
CN113642583A (zh) | 用于文本检测的深度学习模型训练方法及文本检测方法 | |
EP4343616A1 (en) | Image classification method, model training method, device, storage medium, and computer program | |
CN113360711A (zh) | 视频理解任务的模型训练和执行方法、装置、设备及介质 | |
CN115358392A (zh) | 深度学习网络的训练方法、文本检测方法及装置 | |
CN114049516A (zh) | 训练方法、图像处理方法、装置、电子设备以及存储介质 | |
CN113837965A (zh) | 图像清晰度识别方法、装置、电子设备及存储介质 | |
CN113887535B (zh) | 模型训练方法、文本识别方法、装置、设备和介质 | |
CN115035605B (zh) | 基于深度学习的动作识别方法、装置、设备及存储介质 | |
CN114913339B (zh) | 特征图提取模型的训练方法和装置 | |
CN114881227B (zh) | 模型压缩方法、图像处理方法、装置和电子设备 | |
CN113378866B (zh) | 图像分类方法、系统、存储介质及电子设备 | |
CN113361621B (zh) | 用于训练模型的方法和装置 | |
CN114817476A (zh) | 语言模型的训练方法、装置、电子设备和存储介质 | |
CN114117037A (zh) | 意图识别方法、装置、设备和存储介质 | |
CN113159297A (zh) | 一种神经网络压缩方法、装置、计算机设备及存储介质 | |
CN113128660A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |