CN110874636B - 一种神经网络模型压缩方法、装置和计算机设备 - Google Patents
一种神经网络模型压缩方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN110874636B CN110874636B CN201811027522.5A CN201811027522A CN110874636B CN 110874636 B CN110874636 B CN 110874636B CN 201811027522 A CN201811027522 A CN 201811027522A CN 110874636 B CN110874636 B CN 110874636B
- Authority
- CN
- China
- Prior art keywords
- convolution
- matrix
- neural network
- network model
- processing result
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000003062 neural network model Methods 0.000 title claims abstract description 74
- 230000006835 compression Effects 0.000 title claims abstract description 27
- 238000007906 compression Methods 0.000 title claims abstract description 27
- 239000011159 matrix material Substances 0.000 claims abstract description 159
- 238000012545 processing Methods 0.000 claims abstract description 102
- 238000012937 correction Methods 0.000 claims abstract description 37
- 238000000354 decomposition reaction Methods 0.000 claims description 30
- 238000013528 artificial neural network Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012549 training Methods 0.000 claims description 6
- 230000000007 visual effect Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 14
- 238000006243 chemical reaction Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012795 verification Methods 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
-
- 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
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)
- Complex Calculations (AREA)
Abstract
本申请提供一种神经网络模型压缩方法、装置和计算机设备。本申请提供的神经网络模型压缩方法,包括:针对待压缩神经网络模型的每一个原始卷积层,将原始卷积层分解为级联的多个目标卷积层;获取原始卷积层对输入数据进行卷积处理后的第一卷积处理结果,以及级联的多个目标卷积层依序对输入数据进行卷积处理后的第二卷积处理结果;根据第一卷积处理结果和第二卷积处理结果,对级联的多个目标卷积层的权值矩阵进行修正处理,得到压缩后的神经网络模型。本申请提供的神经网络模型压缩方法、装置和计算机设备,通过对该级联的多个目标卷积层的权值矩阵进行修正处理,这样,可避免因模型压缩导致的性能损失。
Description
技术领域
本申请涉及人工智能技术领域,尤其涉及一种神经网络模型压缩方法、装置和计算机设备。
背景技术
近年来,神经网络模型在计算机视觉、语音处理等众多领域取得了巨大的突破,显著地提高了图像处理、语音识别等任务的性能,并在互联网、视频监控、智能家居等领域得到广泛的应用。
目前的神经网络模型一般均需要高性能计算机设备的支持,为将神经网路模型应用到低性能设备上,需要降低神经网络模型的计算复杂度。目前,常通过矩阵分解的方法对神经网络模型进行压缩处理,以降低神经网络模型的计算复杂度。
相关技术中公开了一种神经网络模型压缩方法,该方法根据神经网络模型各层权值矩阵的奇异值分布对该层权值矩阵进行裁剪,以实现神经网络模型压缩的目的。
当利用上述方法对神经网络进行压缩时,由于对原始的权值矩阵进行了裁剪。因此,压缩后的模型性能损失较大。
发明内容
有鉴于此,本申请提供一种神经网络模型压缩方法、装置和计算机设备,以解决现有的方法对神经网络模型压缩后,模型性能损失较大的问题。
本申请第一方面提供一种神经网络模型压缩方法,包括:
针对待压缩神经网络模型的每一个原始卷积层,将所述原始卷积层分解为级联的多个目标卷积层;
获取所述原始卷积层对输入数据进行卷积处理后的第一卷积处理结果,以及所述级联的多个目标卷积层依序对所述输入数据进行卷积处理后的第二卷积处理结果;
根据所述第一卷积处理结果和所述第二卷积处理结果,对所述级联的多个目标卷积层的权值矩阵进行修正处理,得到压缩后的神经网络模型。
本申请第二方面提供一种神经网络模型压缩装置,所述装置包括分解模块、获取模块和修正模块;其中,
所述分解模块,用于针对待压缩神经网络模型的每一个原始卷积层,将所述原始卷积层分解为级联的多个目标卷积层;
所述获取模块,用于获取所述原始卷积层对输入数据进行卷积处理后的第一卷积处理结果,以及所述级联的多个目标卷积层依序对所述输入数据进行卷积处理后的第二卷积处理结果;
所述修正模块,用于根据所述第一卷积处理结果和所述第二卷积处理结果,对所述级联的多个目标卷积层的权值矩阵进行修正处理,得到压缩后的神经网络模型。
本申请第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本申请第一方面提供的任一项所述方法的步骤。
本申请第四方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请第一方面提供的任一项所述方法的步
本申请提供的神经网络模型压缩方法、装置和计算机设备,针对待压缩神经网络模型的每一个原始卷积层,通过将所述原始卷积层分解为级联的多个目标卷积层,并获取所述原始卷积层对输入数据进行卷积处理后的第一卷积处理结果,以及所述级联的多个目标卷积层依序对所述输入数据进行卷积处理后的第二卷积处理结果,进而根据所述第一卷积处理结果和所述第二卷积处理结果,对所述级联的多个目标卷积层的权值矩阵进行修正处理,得到压缩后的神经网络模型。这样,在将原始卷积层分解为级联的多个目标卷积层后,通过对上述级联的多个目标卷积层的权值矩阵进行修正处理,可避免性能损失。
附图说明
图1为本申请一示例性实施例示出的卷积层对输入数据进行卷积处理的示意图;
图2为本申请一示例性实施例示出的将输入数据转换为输入矩阵的示意图;
图3为本申请一示例性实施例示出的将权值张量转换为权值矩阵的示意图;
图4为本申请提供的神经网络模型压缩方法实施例一的流程图;
图5为本申请一示例性实施例中示出的将原始卷积层分解为级联的多个目标卷积层的流程图;
图6为本申请一示例性实施例示出的将权值矩阵划分为权值子矩阵的原理图;
图7为本申请一示例性实施例示出的将Di和Pi按照Wi在W中的位置进行排列的示意图;
图8为本申请一示例性实施例示出的神经网络模型压缩装置所在计算机设备的硬件结构图;
图9为本申请提供的神经网络模型压缩装置实施例一的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能利用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请提供一种神经网络模型压缩方法、装置和计算机设备,以解决现有的神经网络模型压缩方法在对神经网络模型进行压缩后,使压缩后的神经网络模型性能损失较大的问题。
下面给出几个具体的实施例,用于详细介绍本申请的技术方案,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
在介绍本申请提供的神经网络模型压缩方法之前,下面先简单介绍一下卷积处理与矩阵乘法的相互关系。具体的,图1为本申请一示例性实施例示出的卷积层对输入数据进行卷积处理的示意图。具体的,当输入数据的维度为Cin*w*w(其中,Cin为输入数据的通道数,w*w为输入数据的高和宽);该卷积层的权值张量的维度为Cin*k*k*Cout(其中,k*k为卷积核的空间维度大小,Cout为卷积处理结果的通道数),此时,经卷积处理后,卷积处理结果的维度为Cout*F*F(F*F为卷积处理结果的高和宽)。例如,在图1所示实例中,输入数据的维度为3*9*9,该卷积层的权值张量的维度为3*3*3*4,该卷积核移动的步长为1,且在采样范围超出边界时,超出边界的部分采用0填充,这样,卷积处理后,卷积处理结果的维度为4*9*9。
进一步地,当前的神经网络模型计算框架,常将卷积处理转换为矩阵乘法。具体的,图2为本申请一示例性实施例示出的将输入数据转换为输入矩阵的示意图。请参图2,可按照图2所示方法将输入数据转换为二维输入矩阵,该输入矩阵的行数为F*F行,列数为Cin*k*k。具体的,参照图2,在转换时,一个与卷积核的空间维度大小相同的滑窗在输入数据上滑动,滑窗每滑动一次,将本次的采样数据依序转换为行向量。
进一步地,图3为本申请一示例性实施例示出的将权值张量转换为权值矩阵的示意图。请参照图3,可按照图3所示方法将权值张量转换为二维权值矩阵W,该权值矩阵的行数为(Cin*k*k),列数为Cout。具体的,权值矩阵共有Cout组个卷积核,每个卷积核的大小为Cin*k*k,在转换时,只需要将每组卷积核的权值依序转换为列向量。这样,当将输入数据转换为输入矩阵,且将权值张量转换为权值矩阵后,卷积处理便可以表示为输入矩阵与权值矩阵的乘积。
需要说明的是,有关将卷积处理转换为矩阵乘法的详细介绍可以参见相关技术中的描述,此处不再赘述。
以上对卷积处理与矩阵乘法的相互关系做了介绍,下面对本申请提供的技术方案进行详细介绍。
图4为本申请提供的神经网络模型压缩方法实施例一的流程图。请参照图4,本实施例提供的方法,可以包括:
S401、针对待压缩神经网络模型的每一个原始卷积层,将上述原始卷积层分解为级联的多个目标卷积层。
具体的,可采用奇异值SVD(Singular Value Decomposition,简称SVD)分解法将原始卷积层分解为级联的多个目标卷积层。
例如,图5为本申请一示例性实施例中示出的将原始卷积层分解为级联的多个目标卷积层的流程图。请参照图5,本实施例中,将原始卷积层分解为级联的多个目标卷积层的过程,可以包括:
S501、在列方向将上述原始卷积层的权值矩阵W划分为指定数量个行数相等的权值子矩阵Wi。
具体的,参见前面的描述,可按照图3所示方法得到原始卷积层的权值矩阵W。进一步,图6为本申请一示例性实施例示出的将权值矩阵划分为权值子矩阵的原理图。请参照图6,可在列方向上,将原始卷积层的权值矩阵W划分为指定数量m个行数相等的权值子矩阵Wi。例如,在图6所示实例中,若权值矩阵为(32*3*3)×64阶矩阵,指定数量m为16,则按图6所示方法划分后,得到16个权值子矩阵Wi,每个权值子矩阵为(2*3*3)×64阶矩阵。
需要说明的是,该指定数量能够决定模型压缩的比例,其具体值是根据实际需要设定的,本实施例中,不对该指定数量的具体值进行限定。
S502、针对每个Wi,利用奇异值SVD分解法将上述Wi分解为矩阵Di和矩阵Pi的乘积;其中,上述Di的行数等于上述Wi的行数,上述Pi的列数等于上述Wi的列数;上述Di的列数和上述Pi的行数等于指定值,上述指定值等于输入数据的通道数除以上述指定数量。
结合上面的例子,例如,输入数据的通道数为32,指定数量为16,此时,指定值等于2。
具体的,该步骤的具体实现过程,可以包括以下步骤:
(1)计算上述Wi的奇异值,并采用SVD分解法对上述Wi进行分解;其中,Wi=Ui*∑i*Vi。
具体的,有关SVD分解法的具体实现原理和具体实现过程可以参见相关技术中的描述,此处不再赘述。
结合上面的例子,例如,针对权值子矩阵Wi,该权值子矩阵为(2*3*3)×64阶矩阵,该权值子矩阵存在18个奇异值,采用SVD分解法对该Wi进行分解后,其中,Ui为18×18阶矩阵,∑i为18×64阶矩阵,Vi为64×64阶矩阵。
(2)按照从大到小的顺序,从上述Wi的奇异值中选择上述指定值n个目标奇异值。
结合上面的例子,本步骤中,就按照从大到小的顺序,从上述Wi的奇异值中选择2个目标奇异值。
(3)利用上述目标奇异值分别对上述Ui、上述∑i和上述Vi进行裁剪,得到裁剪后的Ui、∑i和Vi。
具体的,首先,针对Ui,将上述Ui中除上述目标奇异值之外的被裁剪奇异值对应的列向量删除,得到裁剪后的Ui。即裁剪后的Ui中,仅包含上述目标奇异值对应的列向量。结合上面的例子,该裁剪后的Ui为18*2阶矩阵。
其次,针对∑i,仅保持上述目标奇异值对应的行向量和列向量,得到裁剪后的∑i。结合上面的例子,该裁剪后的∑i为2*2阶矩阵。
进一步地,针对Vi,仅保持上述目标奇异值对应的行向量,得到裁剪后的Vi。结合上面的例子,该裁剪后的Vi为2*64阶矩阵。
(4)将上述裁剪后的Ui和上述裁剪后的∑i相乘,并将相乘得到的矩阵和上述裁剪后的Vi的乘积确定为利用SVD分解法得到的矩阵Di和矩阵Pi的乘积;或者是将上述裁剪后的∑i和上述裁剪后Vi相乘,并将上述裁剪后的Ui和上述相乘得到的矩阵的乘积确定为利用SVD分解法得到的矩阵Di和矩阵Pi的乘积。
具体的,本步骤中,即将裁剪后的Ui和裁剪后的∑i的乘积确定为矩阵Di,将裁剪后的Vi确定为矩阵Pi;或者是,将裁剪后的Ui确定为矩阵Di,将裁剪后的∑i和裁剪后Vi的乘积确定为矩阵Pi。
结合上面的例子,例如,本实施例中,将上述裁剪后的Ui和上述裁剪后的∑i相乘,并将相乘得到的矩阵和上述裁剪后的Vi的乘积确定为利用SVD分解法得到的矩阵Di和矩阵Pi的乘积。此时,矩阵Di为裁剪后的Ui和裁剪后的∑i的乘积,该矩阵Di为18×2阶矩阵,进一步地,矩阵Pi为裁剪后的Vi,该矩阵Pi为2×64阶矩阵。
S503、分别将上述Di和上述Pi按照上述Wi在上述W中的位置进行排列,得到第一矩阵D和第二矩阵P。
具体的,图7为本申请一示例性实施例示出的将Di和Pi按照Wi在W中的位置进行排列的示意图。请参照图7,可将Di按照Wi在W的顺序依序排列在第一矩阵D的对角线位置,该第一矩阵D为分块对角矩阵。进一步地,将Pi按照Wi在W的顺序依序排列,得到第二矩阵P。
结合上面的例子,将上述Di和上述Pi按照上述Wi在上述W中的位置进行排列后,得到的第一矩阵D为(18*16)×(2*16)阶矩阵,第二矩阵P为(2*16)×64阶矩阵。这样,便可以将权值矩阵(本例中,权值矩阵为(32*3*3)×64)转换为第一矩阵D和第二矩阵P的乘积。
参见前面的描述,卷积处理可以转换为矩阵乘法,例如,当输入矩阵为X,权值矩阵为W时,卷积处理可表示为Y=X×W。进一步地,参见前面的描述,可以将权值矩阵W转换为第一矩阵D和第二矩阵P的乘积。此时,便可以将卷积处理转换为Y*=X×D×P。
S504、将上述原始卷积层分解为权值矩阵分别为上述D和上述P的级联的两个目标卷积层。
参见前面的描述,当将卷积处理转换为Y*=X×D×P时,此时,对于这两个乘积运算,可通过两个级联的目标卷积层实现,其中,第一个目标卷积层用于实现X×D的步骤,第二个步骤卷积层用以实现Y**×P的步骤(Y**为第一个目标卷积层的输出结果)。这样,针对第一个目标卷积层,为实现上述目的,只需要将第一个目标卷积层的权值矩阵设置为第一矩阵D即可。进一步地,针对第二个目标卷积层,为实现上述目的,只需要将第二个目标卷积层的权值矩阵设置为第一矩阵P即可。
此外,需要说明的是,第一个目标卷积层的卷积核大小与原始卷积层的卷积核大小相等,第二个目标卷积层的卷积核大小为1*1。进一步地,针对第一个目标卷积层,其权重矩阵为分块对角矩阵,由此可知,该第一目标卷积层用于进行分组卷积处理,即该第一目标卷积层对输入数据进行卷积处理时,会将输入数据对应的输入矩阵X按行方向划分为上述指定数量m个列数相等的子矩阵Xi(相对于输入数据,即在深度方向上进行分组),进而对子矩阵Xi进行分组卷积处理,每组输入/输出的通道数等于上述指定值n,且每组卷积处理可以表示为Yi**=Xi*Di。需要说明的是,有关分组卷积处理更详细的介绍可以参见相关技术中的描述,此处不再赘述。
结合上面的例子,例如,将输入数据(输入数据的维度为32*56*56)输入到第一目标卷积层后,该第一目标卷积层会将输入数据对应的输入矩阵(参见图2所示的方法,可得到输入数据对应的输入矩阵,本例中,该输入数据对应的输入矩阵为(56*56)×(32*3*3)阶矩阵)按行方向划分为16个子矩阵,分别记为Xi(Xi为(56*56)×(2*3*3)阶矩阵)。进一步地,结合上面的例子,第一目标卷积层的权值矩阵为D,该权值矩阵为(18*16)×(2*16)阶矩阵,这样,第一目标卷积层对各个子矩阵进行分组卷积处理后,输出结果的维度为(16*2)*56*56(本例中,每组输入/输出的通道数为2,16组卷积处理后,输出结果的通道数为16*2)。
进一步地,第二目标卷积层继续对第一目标卷积层的输出结果进行卷积处理,结合上面的例子,第二目标卷积层的权值矩阵为P,该权值矩阵为(2*16)×64阶矩阵。这样,第二目标卷积层对第一目标卷积层的输出结果进行卷积处理后,输出卷积处理结果,该卷积处理结果的维度为64*56*56。
参见前面的介绍,本实施例提供的方法,将原始卷积层分解为权值矩阵分别为上述D和上述P的级联的两个目标卷积层后,该级联的两个目标卷积层对输入数据依序进行卷积处理后的第二卷积处理结果的通道数与原始卷积层对输入数据进行卷积处理后的第一卷积处理结果的通道数相同,不会压缩卷积处理结果的通道数,能够保证提取的特征的丰富性,提升压缩后的模型的性能。
S402、获取上述原始卷积层对输入数据进行卷积处理后的第一卷积处理结果,以及上述级联的多个目标卷积层依序对上述输入数据进行卷积处理后的第二卷积处理结果。
具体的,可将样本数据分别输入到待压缩神经网络,得到原始卷积层对输入到该卷积层的输入数据进行卷积处理后的第一卷积处理结果;进一步地,将上述样本数据输入到分解后的神经网络(将该原始卷积层分解为级联的多个目标卷积层后的神经网络),得到该级联的多个目标卷积层对输入到该级联的多个目标卷积层的输入数据依序进行卷积处理后的第二卷积处理结果。需要说明的是,第二卷积处理结果为级联的多个目标卷积层中最后一个目标卷积层的输出结果。
S403、根据上述第一卷积处理结果和上述第二卷积处理结果,对上述级联的多个目标卷积层的权值矩阵进行修正处理,得到压缩后的神经网络模型。
具体的,该步骤的具体实现过程,可以包括以下步骤:
(1)根据上述第一卷积处理结果和上述第二卷积处理结果,确定用于对上述级联的多个目标卷积层的权值矩阵进行修正处理的修正矩阵。
具体的,可根据上述第一卷积处理结果和上述第二卷积处理结果,按照第一公式确定用于对上述级联的多个目标卷积层的权值矩阵进行修正处理的修正矩阵;
其中,上述Y为第一卷积处理结果;
上述Y*为第二卷积处理结果;
A为修正矩阵。
(2)利用上述修正矩阵对上述级联的多个目标卷积层的权值矩阵进行修正处理,得到压缩后的神经网络模型。
具体的,可依据修正矩阵更新上述级联的多个目标卷积层中最后一个目标卷积层的权值矩阵。例如,结合上面的例子,当将原始卷积层分解为级联的两个目标卷积层时,此时,可将第二个目标卷积层的权值矩阵更新为原权值矩阵与上述修正矩阵的乘积。
需要说明的是,当原始卷积层的权值张量为Cin*k*k*Cout,指定值为n时。原始卷积处理的计算复杂度为Cin*k*k*Cout,采用上述方法压缩模型后,计算复杂度降低为原来的(n/Cout+1/k*k),计算复杂度显著降低。
本申请提供的神经网络模型压缩方法,针对待压缩神经网络模型的每一个原始卷积层,通过将所述原始卷积层分解为级联的多个目标卷积层,并获取所述原始卷积层对输入数据进行卷积处理后的第一卷积处理结果,以及所述级联的多个目标卷积层依序对所述输入数据进行卷积处理后的第二卷积处理结果,进而根据所述第一卷积处理结果和所述第二卷积处理结果,对所述级联的多个目标卷积层的权值矩阵进行修正处理,得到压缩后的神经网络模型。这样,在将原始卷积层分解为级联的多个目标卷积层后,通过对上述级联的多个目标卷积层的权值矩阵进行修正处理,这样,可避免性能损失。
可选地,在本申请一可能的实现方式,得到压缩后的神经网络模型之后,所述方法还包括:
采用样本数据训练所述压缩后的神经网络模型。
例如,一实施例中,可在上述指定值n小于预设阈值时,采用样本数据训练压缩后的神经网络模型。需要说明的是,经验证,在对该压缩后的神经网络模型进行训练时,该模型收敛速度快,耗时少。
具体的,通过采用样本数据训练压缩后的神经网络模型,可进一步优化该压缩后的神经网络模型的性能。
与前述神经网络模型压缩方法的实施例相对应,本申请还提供了神经网络模型压缩装置的实施例。
本申请神经网络模型压缩装置的实施例可以应用在计算机设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在计算设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,图8为本申请一示例性实施例示出的神经网络模型810、处理器820、内存830和网络接口840之外,实施例中装置所在的计算机设备通常根据该神经网络模型压缩方法的实际功能,还可以包括其他硬件,对此不再赘述。
图9为本申请提供的神经网络模型压缩装置实施例一的结构示意图。请参照图9,本实施例提供的神经网络模型压缩装置,可以包括:分解模块910、获取模块920和修正模块930;其中,
所述分解模块910,用于针对待压缩神经网络模型的每一个原始卷积层,将所述原始卷积层分解为级联的多个目标卷积层;
所述获取模块920,用于获取所述原始卷积层对输入数据进行卷积处理后的第一卷积处理结果,以及所述级联的多个目标卷积层依序对所述输入数据进行卷积处理后的第二卷积处理结果;
所述修正模块930,用于根据所述第一卷积处理结果和所述第二卷积处理结果,对所述级联的多个目标卷积层的权值矩阵进行修正处理,得到压缩后的神经网络模型。
本实施例的装置,可用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
进一步地,所述修正模块930,具体用于根据所述第一卷积处理结果和所述第二卷积处理结果,确定用于对所述级联的多个目标卷积层的权值矩阵进行修正处理的修正矩阵,并利用所述修正矩阵对所述级联的多个目标卷积层的权值矩阵进行修正处理,得到压缩后的神经网络模型。
进一步地,所述修正模块930,具体用于根据所述第一卷积处理结果和所述第二卷积处理结果,按照第一公式确定用于对所述级联的多个目标卷积层的权值矩阵进行修正处理的修正矩阵;其中,
其中,所述Y为所述第一卷积处理结果;
所述Y*为所述第二卷积处理结果;
所述A为所述修正矩阵。
进一步地,所述分解模块910,具体用于:
在列方向将所述原始卷积层的权值矩阵W划分为指定数量个行数相等的权值子矩阵Wi;
针对每个Wi,利用奇异值SVD分解法将所述Wi分解为矩阵Di和矩阵Pi的乘积;其中,所述Di的行数等于所述Wi的行数,所述Pi的列数等于所述Wi的列数,所述Di的列数和所述Pi的行数等于指定值,所述指定值等于输入数据的通道数除以所述指定数量;
分别将所述Di和所述Pi按照所述Wi在所述W中的位置进行排列,得到第一矩阵D和第二矩阵P;
将所述原始卷积层分解为权值矩阵分别为所述D和所述P的级联的两个目标卷积层。
进一步地,所述分解模块910,具体用于:
计算所述Wi的奇异值,并采用SVD分解法对所述Wi进行分解;其中,Wi=Ui*∑i*Vi;
按照从大到小的顺序,从所述Wi的奇异值中选择所述指定值个目标奇异值;
利用所述目标奇异值分别对所述Ui、所述∑i和所述Vi进行裁剪,得到裁剪后的Ui、∑i和Vi;
将所述裁剪后的Ui和所述裁剪后的∑i相乘,并将相乘得到的矩阵和所述裁剪后的Vi的乘积确定为利用SVD分解法得到的矩阵Di和矩阵Pi的乘积;或者是将所述裁剪后的∑i和所述裁剪后Vi相乘,并将所述裁剪后的Ui和相乘得到的矩阵的乘积确定为利用SVD分解法得到的矩阵Di和矩阵Pi的乘积。
进一步地,所述修正模块930,具体用于将第二个目标卷积层的权值矩阵更新为所述P与所述修正矩阵的乘积。
进一步地,所述修正模块930,还用于在得到压缩后的神经网络模型之后,采用样本数据训练所述压缩后的神经网络模型。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本申请提供的任一项所述方法的步骤。
具体的,适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及CD ROM和DVD-ROM盘。
请继续参照图8,本申请还提供一种计算机设备,包括存储810、处理器820及存储在存储器810上并可在处理器820上运行的计算机程序,所述处理器820执行所述程序时实现本申请提供的任一项所述方法的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种神经网络模型压缩方法,其特征在于,用于针对视觉识别或语音识别的样本数据,训练得到适用于识别图像或语音的神经网络模型;所述方法应用于低性能设备,所述方法包括:
针对待压缩神经网络模型的每一个原始卷积层,将所述原始卷积层分解为级联的多个目标卷积层;
将样本数据分别输入到待压缩神经网络,得到所述原始卷积层对输入所述样本数据进行卷积处理后的第一卷积处理结果,以及将所述样本数据输入到分解后的神经网络,得到所述级联的多个目标卷积层依序对所述输入所述样本数据进行卷积处理后的第二卷积处理结果;所述样本数据为图像样本或语音样本;
根据所述第一卷积处理结果和所述第二卷积处理结果,对所述级联的多个目标卷积层的权值矩阵进行修正处理,得到压缩后的神经网络模型,以用于识别图像或语音。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一卷积处理结果和所述第二卷积处理结果,对所述级联的多个目标卷积层的权值矩阵进行修正处理,包括:
根据所述第一卷积处理结果和所述第二卷积处理结果,确定用于对所述级联的多个目标卷积层的权值矩阵进行修正处理的修正矩阵;
利用所述修正矩阵对所述级联的多个目标卷积层的权值矩阵进行修正处理,得到压缩后的神经网络模型。
4.根据权利要求2所述的方法,其特征在于,所述将所述原始卷积层分解为级联的多个目标卷积层,包括:
在列方向将所述原始卷积层的权值矩阵W划分为指定数量个行数相等的权值子矩阵Wi;
针对每个Wi,利用奇异值SVD分解法将所述Wi分解为矩阵Di和矩阵Pi的乘积;其中,所述Di的行数等于所述Wi的行数,所述Pi的列数等于所述Wi的列数,所述Di的列数和所述Pi的行数等于指定值,所述指定值等于样本数据的通道数除以所述指定数量;
分别将所述Di和所述Pi按照所述Wi在所述W中的位置进行排列,得到第一矩阵D和第二矩阵P;
将所述原始卷积层分解为权值矩阵分别为所述D和所述P的级联的两个目标卷积层。
5.根据权利要求4所述的方法,其特征在于,所述针对每个Wi,利用奇异值SVD分解法将所述Wi分解为矩阵Di和矩阵Pi的乘积,包括:
计算所述Wi的奇异值,并采用SVD分解法对所述Wi进行分解;其中,Wi=Ui*∑i*Vi;
按照从大到小的顺序,从所述Wi的奇异值中选择所述指定值个目标奇异值;
利用所述目标奇异值分别对所述Ui、所述∑i和所述Vi进行裁剪,得到裁剪后的Ui、∑i和Vi;
将所述裁剪后的Ui和所述裁剪后的∑i相乘,并将相乘得到的矩阵和所述裁剪后的Vi的乘积确定为利用SVD分解法得到的矩阵Di和矩阵Pi的乘积;或者是将所述裁剪后的∑i和所述裁剪后Vi相乘,并将所述裁剪后的Ui和相乘得到的矩阵的乘积确定为利用SVD分解法得到的矩阵Di和矩阵Pi的乘积。
6.根据权利要求4所述的方法,其特征在于,所述利用所述修正矩阵对所述级联的多个目标卷积层的权值矩阵进行修正处理,得到压缩后的神经网络模型,包括:
将第二个目标卷积层的权值矩阵更新为所述P与所述修正矩阵的乘积。
7.根据权利要求1所述的方法,其特征在于,所述得到压缩后的神经网络模型之后,所述方法还包括:
采用样本数据训练所述压缩后的神经网络模型。
8.一种神经网络模型压缩装置,其特征在于,用于针对视觉识别或语音识别的样本数据,训练得到适用于识别图像或语音的神经网络模型;所述装置应用于低性能设备,所述装置包括分解模块、获取模块和修正模块;其中,
所述分解模块,用于针对待压缩神经网络模型的每一个原始卷积层,将所述原始卷积层分解为级联的多个目标卷积层;
所述获取模块,用于将样本数据分别输入到待压缩神经网络,得到所述原始卷积层对输入的样本数据进行卷积处理后的第一卷积处理结果,以及将所述样本数据输入到分解后的神经网络,得到级联的多个目标卷积层依序对输入的样本数据进行卷积处理后的第二卷积处理结果;所述样本数据为图像样本或语音样本;
所述修正模块,用于根据所述第一卷积处理结果和所述第二卷积处理结果,对所述级联的多个目标卷积层的权值矩阵进行修正处理,得到压缩后的神经网络模型,以用于识别图像或语音。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811027522.5A CN110874636B (zh) | 2018-09-04 | 2018-09-04 | 一种神经网络模型压缩方法、装置和计算机设备 |
PCT/CN2019/102834 WO2020048354A1 (zh) | 2018-09-04 | 2019-08-27 | 一种神经网络模型压缩方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811027522.5A CN110874636B (zh) | 2018-09-04 | 2018-09-04 | 一种神经网络模型压缩方法、装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110874636A CN110874636A (zh) | 2020-03-10 |
CN110874636B true CN110874636B (zh) | 2023-06-30 |
Family
ID=69716109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811027522.5A Active CN110874636B (zh) | 2018-09-04 | 2018-09-04 | 一种神经网络模型压缩方法、装置和计算机设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110874636B (zh) |
WO (1) | WO2020048354A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111507473B (zh) * | 2020-04-20 | 2023-05-12 | 上海交通大学 | 一种基于Crossbar架构的剪枝方法及系统 |
CN113554145B (zh) * | 2020-04-26 | 2024-03-29 | 伊姆西Ip控股有限责任公司 | 确定神经网络的输出的方法、电子设备和计算机程序产品 |
CN112200301B (zh) * | 2020-09-18 | 2024-04-09 | 星宸科技股份有限公司 | 卷积计算装置及方法 |
CN112766462A (zh) * | 2021-01-18 | 2021-05-07 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置及计算机可读存储介质 |
CN114781650B (zh) * | 2022-04-28 | 2024-02-27 | 北京百度网讯科技有限公司 | 一种数据处理方法、装置、设备以及存储介质 |
CN114969640A (zh) * | 2022-06-02 | 2022-08-30 | 星宸科技股份有限公司 | 三维卷积运算装置与三维卷积运算方法 |
CN115914407A (zh) * | 2022-08-15 | 2023-04-04 | 国网冀北电力有限公司计量中心 | 一种基于奇异值分解的配用电数据压缩方法 |
CN117350354B (zh) * | 2023-09-21 | 2024-06-18 | 摩尔线程智能科技(北京)有限责任公司 | 大模型的训练方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106127297A (zh) * | 2016-06-02 | 2016-11-16 | 中国科学院自动化研究所 | 基于张量分解的深度卷积神经网络的加速与压缩方法 |
CN107688850A (zh) * | 2017-08-08 | 2018-02-13 | 北京深鉴科技有限公司 | 一种深度神经网络压缩方法 |
CN107748915A (zh) * | 2017-11-02 | 2018-03-02 | 北京智能管家科技有限公司 | 深度神经网络dnn模型的压缩方法、装置、设备及介质 |
CN107944555A (zh) * | 2017-12-07 | 2018-04-20 | 广州华多网络科技有限公司 | 神经网络压缩和加速的方法、存储设备和终端 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10223635B2 (en) * | 2015-01-22 | 2019-03-05 | Qualcomm Incorporated | Model compression and fine-tuning |
CN106326985A (zh) * | 2016-08-18 | 2017-01-11 | 北京旷视科技有限公司 | 神经网络训练方法和装置及数据处理方法和装置 |
US11321609B2 (en) * | 2016-10-19 | 2022-05-03 | Samsung Electronics Co., Ltd | Method and apparatus for neural network quantization |
CN107563965A (zh) * | 2017-09-04 | 2018-01-09 | 四川大学 | 基于卷积神经网络的jpeg压缩图像超分辨率重建方法 |
-
2018
- 2018-09-04 CN CN201811027522.5A patent/CN110874636B/zh active Active
-
2019
- 2019-08-27 WO PCT/CN2019/102834 patent/WO2020048354A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106127297A (zh) * | 2016-06-02 | 2016-11-16 | 中国科学院自动化研究所 | 基于张量分解的深度卷积神经网络的加速与压缩方法 |
CN107688850A (zh) * | 2017-08-08 | 2018-02-13 | 北京深鉴科技有限公司 | 一种深度神经网络压缩方法 |
CN107748915A (zh) * | 2017-11-02 | 2018-03-02 | 北京智能管家科技有限公司 | 深度神经网络dnn模型的压缩方法、装置、设备及介质 |
CN107944555A (zh) * | 2017-12-07 | 2018-04-20 | 广州华多网络科技有限公司 | 神经网络压缩和加速的方法、存储设备和终端 |
Also Published As
Publication number | Publication date |
---|---|
WO2020048354A1 (zh) | 2020-03-12 |
CN110874636A (zh) | 2020-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110874636B (zh) | 一种神经网络模型压缩方法、装置和计算机设备 | |
US10949717B2 (en) | Generating images using neural networks | |
US11645529B2 (en) | Sparsifying neural network models | |
CN107977704B (zh) | 权重数据存储方法和基于该方法的神经网络处理器 | |
JP6615062B2 (ja) | 画像を処理する方法及びシステム | |
CN110222598B (zh) | 一种视频行为识别方法、装置、存储介质和服务器 | |
CN109919183B (zh) | 一种基于小样本的图像识别方法、装置、设备及存储介质 | |
US11144782B2 (en) | Generating video frames using neural networks | |
CN110020639B (zh) | 视频特征提取方法及相关设备 | |
CN114651260A (zh) | 具有动态权重选择的相位选择性卷积 | |
CN112183295A (zh) | 行人重识别方法、装置、计算机设备及存储介质 | |
CN112766392B (zh) | 基于并行不对称空洞卷积的深度学习网络的图像分类方法 | |
CN115171052B (zh) | 基于高分辨率上下文网络的拥挤人群姿态估计方法 | |
CN113705589A (zh) | 数据处理方法、装置及设备 | |
CN114821058A (zh) | 一种图像语义分割方法、装置、电子设备及存储介质 | |
CN117372359A (zh) | 一种融合空间注意力机制的田间水稻植株计数估计方法及装置 | |
CN110276332B (zh) | 一种视频特征处理方法及装置 | |
CN111882028A (zh) | 用于卷积神经网络的卷积运算装置 | |
CN109558819B (zh) | 一种用于遥感图像目标检测的深度网络轻量化方法 | |
CN113887721B (zh) | 一种语音识别任务中的训练后量化压缩方法及系统 | |
KR101946692B1 (ko) | 그래프 랭킹 수행 방법 및 장치 | |
CN105354807A (zh) | 一种基于解析稀疏表示的图像盲分离方法 | |
US12002453B2 (en) | Methods and devices for irregular pruning for automatic speech recognition | |
US20220310068A1 (en) | Methods and devices for structured pruning for automatic speech recognition | |
CN111079904B (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 |