CN113762506A - 一种深度学习模型剪枝方法及系统 - Google Patents
一种深度学习模型剪枝方法及系统 Download PDFInfo
- Publication number
- CN113762506A CN113762506A CN202110931051.6A CN202110931051A CN113762506A CN 113762506 A CN113762506 A CN 113762506A CN 202110931051 A CN202110931051 A CN 202110931051A CN 113762506 A CN113762506 A CN 113762506A
- Authority
- CN
- China
- Prior art keywords
- layer
- similarity
- nodes
- node
- deep learning
- 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
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000013136 deep learning model Methods 0.000 title claims abstract description 55
- 238000013138 pruning Methods 0.000 title claims abstract description 53
- 238000010606 normalization Methods 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims abstract description 6
- 239000013598 vector Substances 0.000 claims description 42
- 230000004913 activation Effects 0.000 claims description 17
- 238000013519 translation Methods 0.000 claims description 13
- 230000009467 reduction Effects 0.000 claims description 6
- 238000012935 Averaging Methods 0.000 claims description 5
- 238000011176 pooling Methods 0.000 abstract description 7
- 238000005516 engineering process Methods 0.000 abstract description 6
- 230000000717 retained effect Effects 0.000 abstract description 3
- 238000005096 rolling process Methods 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000012549 training Methods 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 4
- 238000007429 general method Methods 0.000 description 4
- 101100153581 Bacillus anthracis topX gene Proteins 0.000 description 3
- 101150041570 TOP1 gene Proteins 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000006467 substitution reaction Methods 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
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)
- Image Analysis (AREA)
Abstract
本发明公开了一种深度学习模型剪枝方法及系统,属于计算机视觉技术领域,包括以下步骤:S1:层选择;S2:节点相似度比较;S3:节点合并;S4:相似度遍历判断;S5:剩余层处理。本发明对被合并的节点与前一层相连的权重、与后一层相连的权重均进行处理,最大程度地保持权重信息,可减少剪枝技术对深度学习模型最终输出的影响;并对批量归一化操作的参数进行合并,最大限度地保留节点的信息;还对被剪枝的层之后的最大池化层(maxpool)、平均池化层(avgpool)、随机丢弃层(dropout)进行相应处理,值得被推广使用。
Description
技术领域
本发明涉及计算机视觉技术领域,具体涉及深度学习模型剪枝方法及系统。
背景技术
近年来,深度学习技术在计算机视觉、语音、自然语言处理等领域得到了广泛地应用,解决了很多传统方法无法解决的问题。在计算机视觉领域,利用深度学习技术进行目标识别的精度远远超过了传统计算机视觉方法。以深度学习模型作为核心实现语音识别已经成为语音识别领域的主流。随之而来的一个问题是,深度学习模型的计算量非常大,其参数也非常多,对硬件的要求非常高,难以在对功耗限制较强的场景中使用。如常见的VGG16模型,其权重文件大小超过500MB,其参数量达到了1亿3千多万,需要三百多亿次浮点运算才能完成一次图像识别任务。在手机、智能手表、无人机等对功耗要求比较敏感的设备上,迫切需要计算量小、占用内存小,而精度仍可达到一定水平的深度学习模型。很多方法被提出,用于将深度学习模型进行轻量化,即降低计算量、或降低权重参数的个数。这些方法包括量化、剪枝等等。
剪枝技术是一项减小深度学习模型计算量与权重参数数量的技术。它通过删除对深度学习模型的结果贡献不大的节点,达到降低深度学习模型大小的目的。常规的剪枝方法是删除那些权重参数绝对值的平均值比较小的节点,或删除那些激活度绝对值平均值比较小的节点。根据深度学习模型的前向计算公式,这样的节点对最终结果的贡献比较小,因此,可以在不明显影响模型精度的基础上删除这些节点。
现有的深度学习模型剪枝方法以删除节点作为手段降低深度学习模型的大小。该过程修改了模型计算最终结果的过程,不可避免地会较大影响深度学习模型的最终输出。因此,提出一种尽可能保持权重信息的深度学习模型剪枝方法及系统。
发明内容
本发明所要解决的技术问题在于:如何解决现有的深度学习模型剪枝方法存在对深度学习模型最终输出的影响较大的问题,提供了一种最大程度保持权重信息的深度学习模型剪枝方法。
本发明是通过以下技术方案解决上述技术问题的,本发明包括以下步骤:
S1:层选择
选择深度学习模型的其中一层;
S2:节点相似度比较
对该层所有的节点,两两比较其相似度;
S3:节点合并
选择该层中相似度最大的两个节点,若相似度超过预设阈值,则执行节点合并;
S4:相似度遍历判断
继续计算该层所有节点之间的相似度并执行步骤S3中的操作,直到任意两个节点间的相似度都不超过预设阈值;
S5:剩余层处理
对模型的剩余包含权重的层依次执行步骤S1-S4的操作,直至模型中所有包含权重的层全部处理完毕。
更进一步地,在所述步骤S1中,选择的该层为卷积层或全连接层。
更进一步地,在所述步骤S2中,两两比较其相似度指的是比较计算这两个节点所需要的权重的相似度,即把计算一个节点的激活度的所有权重看成一个向量,比较两个节点的权重向量的相似度。
更进一步地,对于全连接层,权重向量即由前一层所有节点连接到该节点的所有权重组成的向量;对于卷积层,权重向量即由卷积核的所有权重展开为向量。
更进一步地,在所述步骤S2中,计算权重向量相似度的方法包括夹角余弦相似度、欧氏距离,其中夹角余弦越大,权重向量的相似度越大;欧氏距离越小,权重向量的相似度越大。
更进一步地,在所述步骤S3中,执行节点合并的过程如下:
S31:在该层生成一个新节点,由上一层到该新节点的权重设为由上一层到以上所述两个相似度最大的两个节点的权重的平均值;
S32:该新节点到下一层的权重设为以上所述相似度最大的两个节点到下一层的权重之和;
S33:若下一层为dropout层、maxpool或avgpool层,仍继续合并dropout层、maxpool或avgpool层之后受该层节点合并影响的卷积层或全连接层的权重,直至之后的层的权重参数的数量不受该层节点数量减少影响为止;
S34:若该层执行了批量归一化操作,则对模型中记录的以上所述相似度最大的两个节点激活度的浮动均值与平移参数分别执行求平均值操作,赋给新节点的浮动均值和平移参数;对模型中记录的以上所述相似度最大的两个节点激活度的浮动方差与拉伸参数,分别执行相乘之后开根号操作,赋给新节点的浮动方差和拉伸参数;
S35:删除以上所述相似度最高的两个节点。
本发明还提供了一种深度学习模型剪枝系统,采用上述的方法对深度学习模型进行剪枝,包括:
层选择模块,用于选择深度学习模型的其中一层;
相似度比较模块,用于对该层所有的节点,两两比较其相似度;
节点合并模块,用于选择该层中相似度最大的两个节点,若相似度超过预设阈值,则执行节点合并;
判断模块,用于继续计算该层所有节点之间的相似度并执行步骤S3中的操作,直到任意两个节点间的相似度都不超过预设阈值;
处理模块,用于对模型的剩余包含权重的层依次执行步骤S1-S4的操作,直至模型中所有包含权重的层全部处理完毕;
中央处理模块,用于向各模块发出指令,完成相关动作;
所述层选择模块、相似度比较模块、节点合并模块、判断模块、判断模块均与中央处理模块相连接。
本发明相比现有技术具有以下优点:该深度学习模型剪枝方法,对被合并的节点与前一层相连的权重、与后一层相连的权重均进行处理,最大程度地保持权重信息,可减少剪枝技术对深度学习模型最终输出的影响;并对批量归一化操作的参数进行合并,最大限度地保留节点的信息;还对被剪枝的层之后的最大池化层(maxpool)、平均池化层(avgpool)、随机丢弃层(dropout)进行相应处理,值得被推广使用。
附图说明
图1是本发明实施例二中步骤3.1中合并二维卷积层与上一层连接的权重方式示意图;
图2是本发明实施例二中步骤3.2中合并二维卷积层与下一层相连的权重方式示意图;
图3是本发明实施例二中步骤3.2中对卷积层1执行剪枝操作对其后的最大池化层、随机丢弃层的通道数的影响的示意图;
图4是本发明实施例二中所针对的深度学习模型在剪枝前各层的通道数及计算量示意图;
图5是本发明实施例二中所针对的深度学习模型在使用本方法进行剪枝后各层的通道数及计算量示意图;
图6是本发明实施例二中所针对的深度学习模型在使用直接删除节点方法进行剪枝后各层的通道数及计算量示意图;
图7是本发明实施例三中所提出的深度学习模型剪枝系统的结构示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例一
本实施例提供一种技术方案:一种深度学习模型剪枝方法,包括以下步骤:
步骤1:选择深度学习模型的某一层(如卷积层或全连接层),由于剪枝的目的是减小模型的计算量和参数大小,一般不选择dropout层或maxpool、avgpool层;
步骤2:对该层所有的节点,两两比较其相似度;相似度的计算有很多方法,一般方法是比较计算这两个节点所需要的权重的相似度;这种方法把计算一个节点的激活度的所有权重看成一个向量,比较两个节点的权重向量的相似度;对于全连接层,权重向量就是由前一层所有节点连接到该节点的所有权重组成的向量;对于卷积层,权重向量由卷积核的所有权重展开为向量;计算权重向量相似度的方法包括但不限于夹角余弦相似度、欧氏距离等等。夹角余弦越大,向量的相似度越大;欧氏距离越小,向量的相似度越大;
步骤3:选择该层中相似度最大的两个节点,若相似度超过某一预设的阈值,执行节点合并;
在本实施例中,步骤3包括以下子步骤:
步骤3.1:在该层生一个新的节点,由上一层到该新节点的权重设为由上一层到以上所述两个相似度最大的两个节点的权重的平均值;
步骤3.2:该新节点到下一层的权重设为以上所述相似度最大的两个节点到下一层的权重之和;
步骤3.3:若下一层为dropout层或maxpool、avgpool层,仍要继续合并这些层之后受该层节点合并影响的卷积层或全连接层的权重,直至之后的层的权重参数的数量不受该层节点数量减少影响为止;
步骤3.4:若该层执行了批量归一化操作(batchnormalization),则对模型中记录的以上所述相似度最大的两个节点激活度的浮动均值(rolling mean)与平移(bias)参数分别执行求平均值操作,赋给新生成的节点的浮动均值和平移参数;对模型中记录的以上所述相似度最大的两个节点激活度的浮动方差(rolling variation)与拉伸(scale)参数,分别执行相乘之后开根号操作,赋给新生成的节点的浮动方差和拉伸参数;
步骤3.5:删除以上所述相似度最高的两个节点;
步骤4:继续计算该层所有节点之间的相似度,直到任意两个节点间的相似度都不超过某一预设的相似度阈值(与步骤3中的阈值是同一个值);
步骤5:对模型的剩余包含权重的层(如卷积层、全连接层)执行第1-4步操作,直至模型中所有包含权重的层全部处理完。
本实施例还提出了一种对模型进行训练的方法,该方法一边对模型进行训练,一边对模型进行剪枝操作,直至模型无法再被剪枝或精度开始明显下降,包括以下步骤:
步骤1:对模型进行初步训练,直至其精度达到某一可以接受的阈值范围;
步骤2:选择深度学习模型的某一层(如卷积层或全连接层),由于剪枝的目的是减小模型的计算量和参数大小,一般不选择dropout层或maxpool、avgpool层;
步骤3:对该层所有的节点,两两比较其相似度;相似度的计算有很多方法,一般方法是比较计算这两个节点所需要的权重的相似度;这种方法把计算一个节点的激活度的所有权重看成一个向量,比较两个节点的权重向量的相似度;对于全连接层,权重向量就是由前一层所有节点连接到该节点的所有权重组成的向量;对于卷积层,权重向量由卷积核的所有权重展开为向量;计算权重向量相似度的方法包括但不限于夹角余弦相似度、欧氏距离等等;夹角余弦越大,向量的相似度越大;欧氏距离越小,向量的相似度越大。
步骤4:选择该层中相似度最大的两个节点,若相似度超过某一预设的阈值,执行节点合并;若该层中无相似度超过某一预设阈值的节点,对该层不进行处理;
在本实施例中,步骤4的节点合并包括如下步骤:
步骤4.1:在该层生一个新的节点,由上一层到该新节点的权重设为由上一层到以上所述两个相似度最大的两个节点的权重的平均值;
步骤4.2:该新节点到下一层的权重设为以上所述相似度最大的两个节点到下一层的权重之和;
步骤4.3:若下一层为dropout层或maxpool、avgpool层,仍要继续合并这些层之后受该层节点合并影响的卷积层或全连接层的权重,直至之后的层的权重参数的数量不受该层节点数量减少影响为止;
步骤4.4:若该层执行了批量归一化操作(batchnormalization),则对模型中记录的以上所述两个相似度最大的两个节点激活度的浮动均值(rolling mean)与平移(bias)参数分别执行求平均值操作,赋给新生成的节点的浮动均值和平移参数;对模型中记录的以上所述两个相似度最大的两个节点激活度的浮动方差(rolling variation)与拉伸(scale)参数,分别执行相乘之后开根号操作,赋给新生的节点的浮动方差和拉伸参数;
步骤4.5:删除以上所述相似度最高的两个节点;
步骤5:对模型的剩余包含权重的层(如卷积层、全连接层)执行第2-4步操作,直至模型中所有包含权重的层全部处理完;
步骤6:对模型以较低的学习率进行训练;
步骤7:若模型在验证集中的精度开始明显下降,选择下降前的模型作为最终训练好的模型。若模型的所有层中都没有相似度超过某一预设阈值的两个节点,则选择当前模型作为最终训练好的模型。若以上两个条件都没有满足,返回第2步继续进行剪枝与训练。
实施例二
针对计算机视觉技术领域的深度学习模型中,最常见的层是二维卷积层,计算量最大的层也是二维卷积层,以下合并二维卷积层中两个相似节点为示例说明本发明提出方法的实施过程:
步骤1:选择深度学习模型的某一个卷积层,记该卷积层为整个模型的第l层,以下所述“节点”指计算该层一个输出特征图通道的卷积核。
步骤2:对该层所有的节点,两两比较其相似度。对于卷积层,一个节点权重向量由一个通道所代表的卷积核所有权重展开为向量。若上一层也是卷积层,且通道数量为c。记本层卷积层核的高为h,宽为w。则本层计算一个输出通道的卷积核共有c*h*w个权重,即一个节点的权重向量包含c*h*w个权重。
在本实施例中,采用夹角余弦计算权重向量之间的相似度。
步骤3:选择该层中相似度最大的两个节点,若相似度超过某一预设的阈值,执行节点合并。
在本实施例中,节点合并包括如下步骤:
步骤3.1:在该层生一个新的节点,由深度学习模型上一层到该节点的权重为以上所述相似度最高的两个节点的权重向量的平均值;记该节点所在的层为第l层,两个相似度最高的节点计算的该层的输出特征图通道序号分别为i、j;该层的输出通道总数为out_cl,上一层的输出通道总数为out_cl-1,ci指上一层输出通道的索引(0≤ci<out_cl-1),x为卷积核横向维度的索引(0≤x<w),y为卷积核纵向维度的索引(0≤y<h);新节点的输出通道序号记为k,记wl,k,ci,x,y为深度学习模型第l层卷积层第k个输出通道与上一层第ci个通道间卷积核横向第x列、纵向第y行位置的权重。由上一层所有节点到该新节点的权重计算公式为:
wl,k,ci,x,y=(wl,i,ci,x,y+wl,j,ci,x,y)/2
以上公式对所有符合0≤ci<out_cl-1、0≤x<w、0≤y<h的权重执行。该层卷积核与上一层连接的权重的合并方式如图1所示,在图1中,本层通道数量记为out_c,上一层通道数量记为c。该方式将两个待合并的通道的权重合并为一个通道。
步骤3.2:该新节点到下一层的权重为以上所述相似度最高的两个节点到下一层的权重之和;若下一层仍为卷积层,则由该新节点到下一层所有节点的权重更新公式为:
wl+1,o,k,x,y=wl+1,o,i,x,y+wl+1,o,j,x,y
其中,o记为下一层的输入通道索引,记下一层的通道数量为out_cl+1;以上公式对所有符合0≤o<out_cl+1、0≤x<w、0≤y<h的权重执行;该层卷积核与上一层连接的权重的合并方式如图2所示,下一层通道数量记为out_c,本层通道数量记为c;下一层卷积层的通道数量不变,对每个通道内与本层两个通道相连的权重执行相加操作。
需要注意的是,针对下一层权重的合并方式与本层权重的合并方式不同。针对本层,如附图1所示,按要合并的两个节点合并权重,整体通道数减1。针对下一层,如图2所示,按每个通道中连接前一层的两个输入通道合并,整体通道数量不变。针对本层,权重合并方式为相加除以2,因为要使用一个节点代替原来的两个节点,所以计算这个节点的激活度时,其权重为已合并的两个节点的平均值。针对下一层,权重合并方式为直接相加,因为要使用一个节点代替原来的两个节点,这一个节点的激活度应与原来两个节点的权重之和相乘,才能使对输出的影响最小。
步骤3.3:若下一层为dropout层或maxpool、avgpool层,仍要继续合并该层之后卷积层或全连接层的权重;若下一层为maxpool层,再下一层为dropout层,则仍要继续合并这两层之后的卷积层或全连接层的权重;如图3所示,卷积层1的下一层为maxpool层,再下一层为dropouf层,则仍然要合并卷积层2的权重;在图3中,对卷积层1执行剪枝操作,该层的通道数量由C减少为C-1,邻接的下一层maxpool、avgpool、dropout层的通道数也相应减少为C-1,其后第一个卷积层也应执行权重合并操作。
在本实施例中,可以理解为若被剪枝的层之后是maxpool、avgpool、dropout层,则仍需要在这些层之后第一个受剪枝影响的层中执行权重合并操作。
步骤3.4:若该层执行了批量归一化操作(batchnormalization),则对模型中记录的以上所述相似度最高的两个节点激活度的浮动均值(rolling mean)与平移(bias)参数分别执行求平均值操作,赋给新生成的节点的浮动均值与平移参数;对模型中记录的以上所述相似度最高的两个节点激活度的浮动方差(rolling variation)与拉伸(scale)参数分别执行相乘之后开根号操作,赋给新生成的节点的浮动方差与拉伸参数;记rolling_meanl,k为模型第l层第k个通道的浮动均值,rolling_variationl,k为模型第l层第k个通道的浮动方差;biasl,k为模型第l层第k个通道的平移参数,scalel,k为模型第l层第k个通道的拉伸参数;这些参数的含义对该领域的普通技术人员来说是显而易见的。新生成的节点的浮动均值、浮动方差、平移参数、拉伸参数的计算公式为:
rolling_meanl,k=(rolling_meanl,i+rolling_meanl,j)/2
biasl,k=(biasl,i+biasl,j)/2
步骤3.5:删除以上所述相似度最高的两个节点。
步骤4:继续计算该层所有节点之间的相似度,直到任意两个节点间的相似度都不超过某一预设的相似度阈值。
步骤5:对模型的剩余包含权重的层(如卷积层、全连接层)执行第1-4步操作,直至模型中所有包含权重的层全部处理完。
为了验证本发明方法的有效性,进行了实验,对比了本发明提出的节点合并方法与一般的直接删除节点的方法的有效性。以darknet深度学习框架为基础,以cifar10作为数据集,验证本发明提出的剪枝模型在深度学习模型上的效果。本实验使用本发明提出的方法进行剪枝。对比实验使用一般的删除节点的方法进行剪枝。对比实验的方法同样选择相似度高的节点,但不是合并这两个节点,而是直接删除其中一个。两种方法在剪枝方式上,一种使用合并节点的方式,一种使用删除其中一个节点的方式。除此之外的其他参数都相同。使用夹角余弦相似度计算两个权重向量的相似度。预设相似度的阈值为0.7。
图4中显示出了原始未剪枝的深度学习模型总的计算量为1.625BFLOPS。如图5所示,经过本发明提出的方法进行剪枝后,总计算量减少为1.091BFLOPS。如图6所示,经过一般的删除节点法剪枝后的总计算量为1.159BFLOPS。可见,本发明提出的方法能更有效地剪除网络中相似的节点。
表1对比原始模型、两种剪枝方法剪枝后的模型各层的节点数量以及最终的准确率。原始模型在cifar10上的top1准确率为91.58%,经过本发明提出的方法剪枝后,top1准确率为89.57%,经过删除节点的方法剪枝后,top1准确率为85.74%。通过本发明提出的方法,准确率由91.58%降为89.57%。降低不明显,若再经过适当训练微调,准确率还会略有提升。本方法提出的剪枝方法对模型准确率的影响小于一般的删除节点的剪枝方法对模型准确率的影响。通过本发明提出的方法剪枝后,网络的计算量由1.625BFLOPS降为1.091BFLOPS,降低了约33%。显然,本发明提出的方法是有效的。通过与一般的剪枝方法对比,本发明提出的方法可以明显地减少对模型准确率的影响,即减少对模型最终输出结果的影响。
表1原始模型、两种剪枝方法的模型各层的节点数量以及最终的准确率对比
实施例三
基于本发明提出的深度学习模型剪枝方法,可设计深度学习模型剪枝系统。本实施例展示了该深度学习模型剪枝系统的简要方案,该系统包括如下模块:
层选择模块,用于选择深度学习模型的其中一层;
相似度比较模块,用于对该层所有的节点,两两比较其相似度;
节点合并模块,用于选择该层中相似度最大的两个节点,若相似度超过预设阈值,则执行节点合并;
判断模块,用于继续计算该层所有节点之间的相似度并执行步骤S3中的操作,直到任意两个节点间的相似度都不超过预设阈值;
处理模块,用于对模型的剩余包含权重的层依次执行步骤S1-S4的操作,直至模型中所有包含权重的层全部处理完毕;
中央处理模块,用于向各模块发出指令,完成相关动作;
所述层选择模块、相似度比较模块、节点合并模块、判断模块、判断模块均与中央处理模块相连接,受中央处理模块的控制。
图7为该深度学习模型剪枝系统的示意图。图中的连线代表模块之间的控制关系,连线箭头指向的模块被连线箭头发出的模块所控制。
综上所述,上述实施例的深度学习模型剪枝方法,对被合并的节点与前一层相连的权重、与后一层相连的权重均进行处理,最大程度地保持权重信息,可减少剪枝技术对深度学习模型最终输出的影响;并对批量归一化操作的浮动均值、浮动方差、平移参数、拉伸参数等参数进行合并,最大限度地保留节点的信息;还对被剪枝的层之后的最大池化层(maxpool)、平均池化层(avgpool)、随机丢弃层(dropout)进行相应处理,值得被推广使用。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (7)
1.一种深度学习模型剪枝方法,其特征在于,包括以下步骤:
S1:层选择
选择深度学习模型的其中一层;
S2:节点相似度比较
对该层所有的节点,两两比较其相似度;
S3:节点合并
选择该层中相似度最大的两个节点,若相似度超过预设阈值,则执行节点合并;
S4:相似度遍历判断
继续计算该层所有节点之间的相似度并执行步骤S3中的操作,直到任意两个节点间的相似度都不超过预设阈值;
S5:剩余层处理
对模型的剩余包含权重的层依次执行步骤S1-S4的操作,直至模型中所有包含权重的层全部处理完毕。
2.根据权利要求1所述的一种深度学习模型剪枝方法,其特征在于:在所述步骤S1中,选择的该层为卷积层或全连接层。
3.根据权利要求2所述的一种深度学习模型剪枝方法,其特征在于:在所述步骤S2中,两两比较其相似度指的是比较计算这两个节点所需要的权重的相似度,即把计算一个节点的激活度的所有权重看成一个向量,比较两个节点的权重向量的相似度。
4.根据权利要求3所述的一种深度学习模型剪枝方法,其特征在于:对于全连接层,权重向量即由前一层所有节点连接到该节点的所有权重组成的向量;对于卷积层,权重向量即由卷积核的所有权重展开为向量。
5.根据权利要求4所述的一种深度学习模型剪枝方法,其特征在于:在所述步骤S2中,计算权重向量相似度的方法包括夹角余弦相似度、欧氏距离,其中夹角余弦越大,权重向量的相似度越大;欧氏距离越小,权重向量的相似度越大。
6.根据权利要求1所述的一种深度学习模型剪枝方法,其特征在于:在所述步骤S3中,执行节点合并的过程如下:
S31:在该层生成一个新节点,由上一层到该新节点的权重设为由上一层到以上所述两个相似度最大的两个节点的权重的平均值;
S32:该新节点到下一层的权重设为以上所述相似度最大的两个节点到下一层的权重之和;
S33:若下一层为dropout层、maxpool或avgpool层,仍继续合并dropout层、maxpool或avgpool层之后受该层节点合并影响的卷积层或全连接层的权重,直至之后的层的权重参数的数量不受该层节点数量减少影响为止;
S34:若该层执行了批量归一化操作,则对模型中记录的以上所述相似度最大的两个节点激活度的浮动均值与平移参数分别执行求平均值操作,赋给新节点的浮动均值和平移参数;对模型中记录的以上所述相似度最大的两个节点激活度的浮动方差与拉伸参数,分别执行相乘之后开根号操作,赋给新节点的浮动方差和拉伸参数;
S35:删除以上所述相似度最高的两个节点。
7.一种深度学习模型剪枝系统,其特征在于,采用如权利要求1~6任一项所述的方法对深度学习模型进行剪枝,包括:
层选择模块,用于选择深度学习模型的其中一层;
相似度比较模块,用于对该层所有的节点,两两比较其相似度;
节点合并模块,用于选择该层中相似度最大的两个节点,若相似度超过预设阈值,则执行节点合并;
判断模块,用于继续计算该层所有节点之间的相似度并执行步骤S3中的操作,直到任意两个节点间的相似度都不超过预设阈值;
处理模块,用于对模型的剩余包含权重的层依次执行步骤S1-S4的操作,直至模型中所有包含权重的层全部处理完毕;
中央处理模块,用于向各模块发出指令,完成相关动作;
所述层选择模块、相似度比较模块、节点合并模块、判断模块、判断模块均与中央处理模块相连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110931051.6A CN113762506B (zh) | 2021-08-13 | 2021-08-13 | 一种计算机视觉深度学习模型剪枝方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110931051.6A CN113762506B (zh) | 2021-08-13 | 2021-08-13 | 一种计算机视觉深度学习模型剪枝方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113762506A true CN113762506A (zh) | 2021-12-07 |
CN113762506B CN113762506B (zh) | 2023-11-24 |
Family
ID=78789257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110931051.6A Active CN113762506B (zh) | 2021-08-13 | 2021-08-13 | 一种计算机视觉深度学习模型剪枝方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113762506B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116562923A (zh) * | 2023-05-26 | 2023-08-08 | 深圳般若海科技有限公司 | 一种基于电商行为的大数据分析方法、系统及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108846445A (zh) * | 2018-06-26 | 2018-11-20 | 清华大学 | 一种基于相似性学习的卷积神经网络滤波器剪枝技术 |
KR20190062225A (ko) * | 2017-11-28 | 2019-06-05 | 주식회사 날비컴퍼니 | 컨볼루션 신경망 내 필터 프루닝 장치 및 방법 |
US20200050604A1 (en) * | 2018-08-07 | 2020-02-13 | Accenture Global Solutions Limited | Approaches for knowledge graph pruning based on sampling and information gain theory |
CN111931698A (zh) * | 2020-09-08 | 2020-11-13 | 平安国际智慧城市科技股份有限公司 | 基于小型训练集的图像深度学习网络构建方法及装置 |
CN112165401A (zh) * | 2020-09-28 | 2021-01-01 | 长春工业大学 | 一种基于网络剪枝和局部社区扩展的边社区发现算法 |
CN112488304A (zh) * | 2020-12-21 | 2021-03-12 | 湖南大学 | 一种卷积神经网络中的启发式滤波器剪枝方法和系统 |
CN113240085A (zh) * | 2021-05-12 | 2021-08-10 | 平安科技(深圳)有限公司 | 模型剪枝方法、装置、设备及存储介质 |
-
2021
- 2021-08-13 CN CN202110931051.6A patent/CN113762506B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190062225A (ko) * | 2017-11-28 | 2019-06-05 | 주식회사 날비컴퍼니 | 컨볼루션 신경망 내 필터 프루닝 장치 및 방법 |
CN108846445A (zh) * | 2018-06-26 | 2018-11-20 | 清华大学 | 一种基于相似性学习的卷积神经网络滤波器剪枝技术 |
US20200050604A1 (en) * | 2018-08-07 | 2020-02-13 | Accenture Global Solutions Limited | Approaches for knowledge graph pruning based on sampling and information gain theory |
CN111931698A (zh) * | 2020-09-08 | 2020-11-13 | 平安国际智慧城市科技股份有限公司 | 基于小型训练集的图像深度学习网络构建方法及装置 |
CN112165401A (zh) * | 2020-09-28 | 2021-01-01 | 长春工业大学 | 一种基于网络剪枝和局部社区扩展的边社区发现算法 |
CN112488304A (zh) * | 2020-12-21 | 2021-03-12 | 湖南大学 | 一种卷积神经网络中的启发式滤波器剪枝方法和系统 |
CN113240085A (zh) * | 2021-05-12 | 2021-08-10 | 平安科技(深圳)有限公司 | 模型剪枝方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
SEYED SAEED HAMIDI等: "Consensus clustering algorithm based on the automatic partitioning similarity graph", 《DATA & KNOWLEDGE ENGINEERING》, vol. 124, pages 1 - 22 * |
黄聪: "基于相似性的深度卷积神经网络剪枝研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2020, pages 140 - 208 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116562923A (zh) * | 2023-05-26 | 2023-08-08 | 深圳般若海科技有限公司 | 一种基于电商行为的大数据分析方法、系统及介质 |
CN116562923B (zh) * | 2023-05-26 | 2023-12-22 | 深圳般若海科技有限公司 | 一种基于电商行为的大数据分析方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113762506B (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108596258B (zh) | 一种基于卷积神经网络随机池化的图像分类方法 | |
US11403838B2 (en) | Image processing method, apparatus, equipment, and storage medium to obtain target image features | |
KR102420465B1 (ko) | 슈퍼 해상도 딥 콘볼루션 뉴럴 네트워크 설계 시스템 및 방법 | |
CN111354017B (zh) | 一种基于孪生神经网络及平行注意力模块的目标跟踪方法 | |
CN108470320B (zh) | 一种基于cnn的图像风格化方法及系统 | |
CN111950656B (zh) | 图像识别模型生成方法、装置、计算机设备和存储介质 | |
CN110135460B (zh) | 基于vlad卷积模块的图像信息强化方法 | |
CN110909663B (zh) | 一种人体关键点识别方法、装置及电子设备 | |
CN112132856A (zh) | 一种基于自适应模板更新的孪生网络跟踪方法 | |
CN107564007B (zh) | 融合全局信息的场景分割修正方法与系统 | |
CN110245621A (zh) | 人脸识别装置及图像处理方法、特征提取模型、存储介质 | |
CN112101364A (zh) | 基于参数重要性增量学习的语义分割方法 | |
CN111353534B (zh) | 一种基于自适应分数阶梯度的图数据类别预测方法 | |
CN113762506A (zh) | 一种深度学习模型剪枝方法及系统 | |
CN107507199A (zh) | 一种图像分割方法及系统 | |
CN113128664A (zh) | 神经网络压缩方法、装置、电子设备及存储介质 | |
CN110120009B (zh) | 基于显著物体检测和深度估计算法的背景虚化实现方法 | |
CN117094910A (zh) | 基于非线性无激活网络的生成对抗网络图像去模糊方法 | |
CN110942106A (zh) | 一种基于平方平均的池化卷积神经网络图像分类方法 | |
CN116227574A (zh) | 一种基于深度学习的模型剪枝方法 | |
CN114419691B (zh) | 人脸衰老图像的生成方法、模型训练方法、设备和介质 | |
CN113326832B (zh) | 模型训练、图像处理方法、电子设备及存储介质 | |
CN113554104B (zh) | 一种基于深度学习模型的图像分类方法 | |
CN117894306B (zh) | 一种语音处理方法、装置、计算机设备及存储介质 | |
Li et al. | Semantic segmentation via enhancing Context Information by fusing multiple high-level features |
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 |