CN112215354A - 神经网络模型剪枝方法、装置、计算机设备和存储介质 - Google Patents
神经网络模型剪枝方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112215354A CN112215354A CN202011064520.0A CN202011064520A CN112215354A CN 112215354 A CN112215354 A CN 112215354A CN 202011064520 A CN202011064520 A CN 202011064520A CN 112215354 A CN112215354 A CN 112215354A
- Authority
- CN
- China
- Prior art keywords
- channel
- data
- pruning
- neural network
- network model
- 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
- 238000013138 pruning Methods 0.000 title claims abstract description 158
- 238000003062 neural network model Methods 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 title claims abstract description 42
- 238000012545 processing Methods 0.000 claims abstract description 71
- 238000010586 diagram Methods 0.000 claims abstract description 36
- 239000011159 matrix material Substances 0.000 claims description 55
- 238000000354 decomposition reaction Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 23
- 238000010606 normalization Methods 0.000 claims description 9
- 230000001502 supplementing effect Effects 0.000 claims description 7
- 238000009825 accumulation Methods 0.000 claims description 5
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010008 shearing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012549 training 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
本申请涉及人工智能领域,提供了一种神经网络模型剪枝方法、装置、计算机设备和存储介质。所述方法包括:获取待处理数据,将待处理数据输入至初始神经网络模型中,分别获取初始神经网络模型每一层输出的特征图;对每一层输出的特征图进行分解处理,获得特征图对应的冗余度数据和通道索引数据;基于冗余度数据以及通道索引数据,确定每一层的剪枝通道数据;基于剪枝通道数据对初始神经网络模型进行剪枝处理。通过对特征图进行处理,同时得到冗余度数据和通道索引数据,为剪枝通道数据的确定提供依据,无需添加其它约束,可以有效进行剪枝操作,操作简单且便于控制。
Description
技术领域
本申请涉及人工智能技术领域,特别是涉及一种神经网络模型剪枝方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展与进步,深度学习在各个领域得到了迅速发展,其中,神经网络模型在图像分类、目标检测、语义分割、实例分割等众多任务中得到了广泛应用。随着应用的不断发展,神经网络模型的参数量和计算量也在不断增加,这限制了神经网络模型应用在移动端等计算资源有限的设备上。
因此,如何得到体积更小的神经网络模型,对于计算资源有限的应用场景具有重要意义。剪枝是指删除神经网络中的某些连接和权重参数,由此减少神经网络模型的大小,同时在一定程度上缩短推理时间,但又不明显降低神经网络的性能。而传统的神经网络模型剪枝方法存在繁琐、难以有效控制的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种操作简单、便于控制的神经网络模型剪枝方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种神经网络模型剪枝方法,所述方法包括:
获取待处理数据,将所述待处理数据输入至初始神经网络模型中,分别获取所述初始神经网络模型每一层输出的特征图;
对所述每一层输出的特征图进行分解处理,获得所述特征图对应的冗余度数据和通道索引数据;
基于所述冗余度数据以及所述通道索引数据,确定每一层的剪枝通道数据;
基于所述剪枝通道数据对所述初始神经网络模型进行剪枝处理。
在一个实施例中,所述对所述每一层输出的特征图进行分解处理,获得所述特征图对应的冗余度数据和通道索引数据,包括:
对所述每一层输出的特征图进行矩阵分解,获得所述特征图对应的上三角矩阵和通道索引数据;
当所述上三角矩阵中对角线元素个数等于所述通道索引数据中的元素个数时,基于所述上三角矩阵中对角线元素,确定所述特征图对应的冗余度数据;
当所述上三角矩阵中对角线元素个数小于所述通道索引数据中的元素个数时,通过预设值补充所述对角线元素,以使所述对角线元素个数等于所述通道索引数据中的元素个数。
在一个实施例中,所述基于所述冗余度数据以及所述通道索引数据,确定每一层的剪枝通道数据,包括:
基于所述通道索引数据,获取不同的待处理数据在同一通道的冗余度数据;
根据不同的待处理数据在同一通道的冗余度数据,得到各个通道对应的通道处理数据;
基于所述各个通道对应的通道处理数据以及预设剪枝阈值,确定每一层的剪枝通道数据。
在一个实施例中,所述根据不同的待处理数据在同一通道的冗余度数据,得到各个通道对应的通道处理数据,包括:
基于不同的待处理数据在同一通道的冗余度数据进行叠加处理,获得叠加结果;
对所述叠加结果进行归一化处理,获得通道对应的通道处理数据。
在一个实施例中,所述基于所述各个通道对应的通道处理数据以及预设剪枝阈值,确定每一层的剪枝通道数据,包括:
对所述各个通道对应的通道处理数据进行排序,并基于排序结果进行累加求和,获得通道权重数据;
将所述通道权重数据中的通道权重逐个与预设剪枝阈值进行比较,获得首个大于所述预设剪枝阈值的通道权重;
基于所述首个大于所述预设剪枝阈值的通道权重,确定每一层的剪枝通道数据。
在一个实施例中,所述基于所述首个大于所述预设剪枝阈值的通道权重,确定每一层的剪枝通道数据,包括:
确定所述首个大于所述预设剪枝阈值的目标通道权重;
基于所述通道权重数据中大于所述目标通道权重的通道权重,确定每一层的剪枝通道数据。
第二方面,本申请提供了一种神经网络模型剪枝装置,所述装置包括:
特征图获取模块,用于获取待处理数据,将所述待处理数据输入至初始神经网络模型中,分别获取所述初始神经网络模型每一层输出的特征图;
分解处理模块,用于对所述每一层输出的特征图进行分解处理,获得所述特征图对应的冗余度数据和通道索引数据;
剪枝通道确定模块,用于基于所述冗余度数据以及所述通道索引数据,确定每一层的剪枝通道数据;
剪枝处理模块,用于基于所述剪枝通道数据对所述初始神经网络模型进行剪枝处理。
第三方面,本申请提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待处理数据,将所述待处理数据输入至初始神经网络模型中,分别获取所述初始神经网络模型每一层输出的特征图;
对所述每一层输出的特征图进行分解处理,获得所述特征图对应的冗余度数据和通道索引数据;
基于所述冗余度数据以及所述通道索引数据,确定每一层的剪枝通道数据;
基于所述剪枝通道数据对所述初始神经网络模型进行剪枝处理。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待处理数据,将所述待处理数据输入至初始神经网络模型中,分别获取所述初始神经网络模型每一层输出的特征图;
对所述每一层输出的特征图进行分解处理,获得所述特征图对应的冗余度数据和通道索引数据;
基于所述冗余度数据以及所述通道索引数据,确定每一层的剪枝通道数据;
基于所述剪枝通道数据对所述初始神经网络模型进行剪枝处理。
上述神经网络模型剪枝方法、装置、计算机设备和存储介质,通过获取待处理数据,将待处理数据输入至初始神经网络模型中,分别获取初始神经网络模型每一层输出的特征图;对每一层输出的特征图进行分解处理,获得特征图对应的冗余度数据和通道索引数据;基于冗余度数据以及通道索引数据,确定每一层的剪枝通道数据;基于剪枝通道数据对初始神经网络模型进行剪枝处理,通过对特征图进行处理,同时得到冗余度数据和通道索引数据,为剪枝通道数据的确定提供依据,无需添加其它约束,可以有效进行剪枝操作,操作简单且便于控制。
附图说明
图1为一个实施例中神经网络模型剪枝方法的应用环境图;
图2为一个实施例中神经网络模型剪枝方法的流程示意图;
图3为一个实施例中对特征图进行分解处理步骤的流程示意图;
图4为一个实施例中剪枝通道确定步骤的流程示意图;
图5为一个实施例中对通道处理数据进行处理步骤的流程示意图;
图6为一个实施例中神经网络模型剪枝装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的神经网络模型剪枝方法,可以应用于如图1所示的应用环境中。其中,客户端102通过网络与服务器104进行通信。客户端102发送待处理数据至服务器104,服务器104获取待处理数据,将待处理数据输入至初始神经网络模型中,分别获取初始神经网络模型每一层输出的特征图;对每一层输出的特征图进行分解处理,获得特征图对应的冗余度数据和通道索引数据;基于冗余度数据以及通道索引数据,确定每一层的剪枝通道数据;基于剪枝通道数据对初始神经网络模型进行剪枝处理。其中,客户端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。上述应用场景以神经网络模型剪枝方法应用于包括客户端和服务器的系统进行举例说明,并通过客户端和服务器的交互实现,可以理解的是,该神经网络模型剪枝方法也可以应用于客户端,还可以应用于服务器。
在一个实施例中,如图2所示,提供了一种神经网络模型剪枝方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,获取待处理数据,将待处理数据输入至初始神经网络模型中,分别获取初始神经网络模型每一层输出的特征图。
待处理数据可以是不同领域的数据,比如图像处理领域、语音处理领域等,以图像处理领域为例,待处理数据具体可以是图像数据。神经网络模型包括多个层,以卷积神经网络模型为例,可以包括输入层、卷积层、池化层、全连接层和输出层,其中,输入层用于输入待处理的数据,输出层用于输出相应的结果数据。在每个卷积层,数据都是以三维的形式存在,其中每一个卷积层对应一个特征图。
步骤204,对每一层输出的特征图进行分解处理,获得特征图对应的冗余度数据和通道索引数据。
冗余度数据是指用来评价神经网络模型中当前层对应通道是否冗余的数据,通道索引数据用于标识神经网络模型中当前层不同的通道。假设神经网络模型中当前层总共有16个通道,那么通道索引数据中的单个元素在0-15之间,假设通道索引数据为[4,2,5,7,9,10,15,11,12,1,0,13,14,8,6,3],那么冗余度数据中的第一个元素表示索引为4的通道(即第5个通道,索引从0开始)的冗余程度,冗余度数据中的第二个元素表示索引为2的通道的冗余程度,其它以此类推。
步骤206,基于冗余度数据以及通道索引数据,确定每一层的剪枝通道数据。
剪枝通道数据是指神经网络模型当前层中待进行剪枝处理的通道,通过冗余度数据以及通道索引数据对各个通道的重要性进行排序,并为各个通道的重要性给出一个权重,依据这两个信息,确定神经网络模型的剪枝通道数据。
步骤208,基于剪枝通道数据对初始神经网络模型进行剪枝处理。
神经网络模型剪枝只改变神经网络内部的结构和参数,不会影响神经网络模型的输入和输出,以神经网络模型用于图像分类为例,在剪枝前后,神经网络模型的输入均为图像,比如224x224分辨率的图像,输出均为一个一维向量,用于表示输入图像属于各个类别的概率。
上述神经网络模型剪枝方法中,通过获取待处理数据,将待处理数据输入至初始神经网络模型中,分别获取初始神经网络模型每一层输出的特征图;对每一层输出的特征图进行分解处理,获得特征图对应的冗余度数据和通道索引数据;基于冗余度数据以及通道索引数据,确定每一层的剪枝通道数据;基于剪枝通道数据对初始神经网络模型进行剪枝处理,通过对特征图进行处理,同时得到冗余度数据和通道索引数据,为剪枝通道数据的确定提供依据,无需添加其它约束,可以有效进行剪枝操作,操作简单且便于控制。
在一个实施例中,如图3所示,对每一层输出的特征图进行分解处理,获得特征图对应的冗余度数据和通道索引数据,包括:步骤302,对每一层输出的特征图进行矩阵分解,获得特征图对应的上三角矩阵和通道索引数据;步骤304,当上三角矩阵中对角线元素个数等于通道索引数据中的元素个数时,基于上三角矩阵中对角线元素,确定特征图对应的冗余度数据;步骤306,当上三角矩阵中对角线元素个数小于通道索引数据中的元素个数时,通过预设值补充对角线元素,以使对角线元素个数等于通道索引数据中的元素个数。矩阵分解是将矩阵拆解为数个矩阵的乘积,可分为三角分解、满秩分解、QR分解等。其中,QR分解是将矩阵分解成一个正规正交矩阵Q与上三角形矩阵R,本实施例中以RRQR矩阵分解为例。RRQR矩阵分解可以表示为公式: 公式中,Cm×n为二维输入矩阵,由于每一层的特征图是三维矩阵,因此需要先将其转换为二维,表示特征图的长乘宽,n表示特征图的通道数,D表示计算RRQR,Qm×kRk×n,Pn分别为输出。其中,k=min(m,n),在本申请中Qm×k不重要,Rk×n为对角线绝对值非增的上三角矩阵,而每一个对角线元素的绝对值代表其对应通道的冗余程度或者重要性,Pn为对角线元素所对应的通道的索引,是对重要程度的排序。根据RRQR矩阵分解的输出结果,可以计算出每个通道是否冗余。通道索引数据中的元素与R矩阵的对角线元素一一对应,通道索引数据的元素个数等于通道数,但是R矩阵对角线元素的个数可能小于通道数,此时,需要将R矩阵中没有对应对角线元素的通道对应的值赋为0,以方便后续数据处理及运算。
在一个实施例中,如图4所示,基于冗余度数据以及通道索引数据,确定每一层的剪枝通道数据,包括:步骤402,基于通道索引数据,获取不同的待处理数据在同一通道的冗余度数据;步骤404,根据不同的待处理数据在同一通道的冗余度数据,得到各个通道对应的通道处理数据;步骤406,基于各个通道对应的通道处理数据以及预设剪枝阈值,确定每一层的剪枝通道数据。其中,根据不同的待处理数据在同一通道的冗余度数据,得到各个通道对应的通道处理数据,包括:基于不同的待处理数据在同一通道的冗余度数据进行叠加处理,获得叠加结果;对叠加结果进行归一化处理,获得通道对应的通道处理数据。以图像数据作为待处理数据为例,获取所有图像在当前层进行RRQR矩阵分解的输出结果,将R矩阵的对角线元素取绝对值,再进行归一化处理,得到冗余度数据。将不同图像在同一通道的冗余度数据相加,再进行归一化处理,得到通道处理数据。然后根据各个通道的通道处理数据以及预设剪枝阈值,确定神经网络模型的剪枝通道数据。
在一个实施例中,如图5所示,基于各个通道对应的通道处理数据以及预设剪枝阈值,确定每一层的剪枝通道数据,包括:步骤502,对各个通道对应的通道处理数据进行排序,并基于排序结果进行累加求和,获得通道权重数据;步骤504,将通道权重数据中的通道权重逐个与预设剪枝阈值进行比较,获得首个大于预设剪枝阈值的通道权重;步骤506,基于首个大于预设剪枝阈值的通道权重,确定每一层的剪枝通道数据。其中,基于首个大于预设剪枝阈值的通道权重,确定每一层的剪枝通道数据,包括:确定首个大于预设剪枝阈值的目标通道权重;基于通道权重数据中大于目标通道权重的通道权重,确定每一层的剪枝通道数据。将通道处理数据从大到小排列,再从前往后累加求和,得到向量S,其中向量S的最后一个值应为1,比如通道处理数据从大到小排列依次为[0.4,0.3,0.2,0.1],那么累加求和得到[0.4,0.7,0.9,1.0]。将向量S中的元素从前往后分别与阈值T进行比较,直到找到第一个大于T的目标值,那么该目标值之前的元素对应的通道将被保留,该目标值之后的元素对应的通道将被剪掉。
在一个实施例中,以用于图像分类的神经网络模型为例,首先准备一批图像数据,每类图像数量相等,并设定一个剪枝阈值T,比如设为0.9。将图像数据逐张输入至神经网络模型中,对各个卷积层和全连接层输出的特征图进行RRQR分解,并保存得到的R矩阵和P向量。遍历所有图像在当前层的输出结果,将R矩阵的对角线元素取绝对值并归一化。遍历之后,根据P向量将不同图像在同一通道的值相加,然后再进行归一化,其中,P向量中元素与R矩阵的对角线元素一一对应。将上述归一化处理后的值从大到小排列,再从前往后累加求和,得到向量S,其中向量S的最后一个值应为1。将向量S中的元素从前往后分别与阈值T比较,直至找到第一个大于T的值,该值之前的值对应的通道将被保留,该值之后的值对应的通道将被剪掉。上述操作过程中,需要始终记录各元素所对应的通道索引,这样遍历神经网络模型的所有层之后,该模型的每个卷积层和全连接层都可以得到对应的保留通道和剪枝通道,以执行剪枝。对剪枝后的模型进行微调,以恢复损失的精度。微调是指按照正常训练模型的设置,将处理后的模型继续训练一定的次数,微调时模型权重是复用之前经过训练的参数。
上述卷积神经网络模型的通道剪枝方法,是对每一层的特征图进行RRQR分解,得到当前特征图中每个通道的冗余程度或者重要性。冗余程度越高,越说明这些通道可以由其他通道组合而成,剪掉这些相关的通道不会大幅影响模型性能。与对权重进行分析的方法相比,该方法由于模型的输出就是对特征图的线性或非线性叠加,因而可解释性更强。而与其他分析特征图的方法相比,该方法将每一层的特征图看做一个整体,而不是分立对待,通过RRQR矩阵分解法,可以直接对各通道的重要性进行排序,同时为各通道的重要性给出一个权重,依据这两个信息,可以进行有效的剪枝操作。此外,该方法无需添加任何约束,操作简单,不需要调整大量超参数,有利于将模型快速迁移至资源受限的任务中。
应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种神经网络模型剪枝装置,包括:特征图获取模块602、分解处理模块604、剪枝通道确定模块606和剪枝处理模块608。其中,特征图获取模块602,用于获取待处理数据,将待处理数据输入至初始神经网络模型中,分别获取初始神经网络模型每一层输出的特征图;分解处理模块604,用于对每一层输出的特征图进行分解处理,获得特征图对应的冗余度数据和通道索引数据;剪枝通道确定模块606,用于基于冗余度数据以及通道索引数据,确定每一层的剪枝通道数据;剪枝处理模块608,用于基于剪枝通道数据对初始神经网络模型进行剪枝处理。
在一个实施例中,分解处理模块还用于对每一层输出的特征图进行矩阵分解,获得特征图对应的上三角矩阵和通道索引数据;当上三角矩阵中对角线元素个数等于通道索引数据中的元素个数时,基于上三角矩阵中对角线元素,确定特征图对应的冗余度数据;当上三角矩阵中对角线元素个数小于通道索引数据中的元素个数时,通过预设值补充对角线元素,以使对角线元素个数等于通道索引数据中的元素个数。
在一个实施例中,剪枝通道确定模块还用于基于通道索引数据,获取不同的待处理数据在同一通道的冗余度数据;根据不同的待处理数据在同一通道的冗余度数据,得到各个通道对应的通道处理数据;基于各个通道对应的通道处理数据以及预设剪枝阈值,确定每一层的剪枝通道数据。
在一个实施例中,剪枝通道确定模块还用于基于不同的待处理数据在同一通道的冗余度数据进行叠加处理,获得叠加结果;对叠加结果进行归一化处理,获得通道对应的通道处理数据。
在一个实施例中,剪枝通道确定模块还用于对各个通道对应的通道处理数据进行排序,并基于排序结果进行累加求和,获得通道权重数据;将通道权重数据中的通道权重逐个与预设剪枝阈值进行比较,获得首个大于预设剪枝阈值的通道权重;基于首个大于预设剪枝阈值的通道权重,确定每一层的剪枝通道数据。
在一个实施例中,剪枝通道确定模块还用于确定首个大于预设剪枝阈值的目标通道权重;基于通道权重数据中大于目标通道权重的通道权重,确定每一层的剪枝通道数据。
关于神经网络模型剪枝装置的具体限定可以参见上文中对于神经网络模型剪枝方法的限定,在此不再赘述。上述神经网络模型剪枝装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储待处理数据、初始神经网络模型、优化神经网络模型等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种神经网络模型剪枝方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取待处理数据,将待处理数据输入至初始神经网络模型中,分别获取初始神经网络模型每一层输出的特征图;对每一层输出的特征图进行分解处理,获得特征图对应的冗余度数据和通道索引数据;基于冗余度数据以及通道索引数据,确定每一层的剪枝通道数据;基于剪枝通道数据对初始神经网络模型进行剪枝处理。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对每一层输出的特征图进行矩阵分解,获得特征图对应的上三角矩阵和通道索引数据;当上三角矩阵中对角线元素个数等于通道索引数据中的元素个数时,基于上三角矩阵中对角线元素,确定特征图对应的冗余度数据;当上三角矩阵中对角线元素个数小于通道索引数据中的元素个数时,通过预设值补充对角线元素,以使对角线元素个数等于通道索引数据中的元素个数。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于通道索引数据,获取不同的待处理数据在同一通道的冗余度数据;根据不同的待处理数据在同一通道的冗余度数据,得到各个通道对应的通道处理数据;基于各个通道对应的通道处理数据以及预设剪枝阈值,确定每一层的剪枝通道数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于不同的待处理数据在同一通道的冗余度数据进行叠加处理,获得叠加结果;对叠加结果进行归一化处理,获得通道对应的通道处理数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对各个通道对应的通道处理数据进行排序,并基于排序结果进行累加求和,获得通道权重数据;将通道权重数据中的通道权重逐个与预设剪枝阈值进行比较,获得首个大于预设剪枝阈值的通道权重;基于首个大于预设剪枝阈值的通道权重,确定每一层的剪枝通道数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:确定首个大于预设剪枝阈值的目标通道权重;基于通道权重数据中大于目标通道权重的通道权重,确定每一层的剪枝通道数据。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待处理数据,将待处理数据输入至初始神经网络模型中,分别获取初始神经网络模型每一层输出的特征图;对每一层输出的特征图进行分解处理,获得特征图对应的冗余度数据和通道索引数据;基于冗余度数据以及通道索引数据,确定每一层的剪枝通道数据;基于剪枝通道数据对初始神经网络模型进行剪枝处理。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对每一层输出的特征图进行矩阵分解,获得特征图对应的上三角矩阵和通道索引数据;当上三角矩阵中对角线元素个数等于通道索引数据中的元素个数时,基于上三角矩阵中对角线元素,确定特征图对应的冗余度数据;当上三角矩阵中对角线元素个数小于通道索引数据中的元素个数时,通过预设值补充对角线元素,以使对角线元素个数等于通道索引数据中的元素个数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于通道索引数据,获取不同的待处理数据在同一通道的冗余度数据;根据不同的待处理数据在同一通道的冗余度数据,得到各个通道对应的通道处理数据;基于各个通道对应的通道处理数据以及预设剪枝阈值,确定每一层的剪枝通道数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:基于不同的待处理数据在同一通道的冗余度数据进行叠加处理,获得叠加结果;对叠加结果进行归一化处理,获得通道对应的通道处理数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对各个通道对应的通道处理数据进行排序,并基于排序结果进行累加求和,获得通道权重数据;将通道权重数据中的通道权重逐个与预设剪枝阈值进行比较,获得首个大于预设剪枝阈值的通道权重;基于首个大于预设剪枝阈值的通道权重,确定每一层的剪枝通道数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:确定首个大于预设剪枝阈值的目标通道权重;基于通道权重数据中大于目标通道权重的通道权重,确定每一层的剪枝通道数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种神经网络模型剪枝方法,其特征在于,所述方法包括:
获取待处理数据,将所述待处理数据输入至初始神经网络模型中,分别获取所述初始神经网络模型每一层输出的特征图;
对所述每一层输出的特征图进行分解处理,获得所述特征图对应的冗余度数据和通道索引数据;
基于所述冗余度数据以及所述通道索引数据,确定每一层的剪枝通道数据;
基于所述剪枝通道数据对所述初始神经网络模型进行剪枝处理。
2.根据权利要求1所述的方法,其特征在于,所述对所述每一层输出的特征图进行分解处理,获得所述特征图对应的冗余度数据和通道索引数据,包括:
对所述每一层输出的特征图进行矩阵分解,获得所述特征图对应的上三角矩阵和通道索引数据;
当所述上三角矩阵中对角线元素个数等于所述通道索引数据中的元素个数时,基于所述上三角矩阵中对角线元素,确定所述特征图对应的冗余度数据;
当所述上三角矩阵中对角线元素个数小于所述通道索引数据中的元素个数时,通过预设值补充所述对角线元素,以使所述对角线元素个数等于所述通道索引数据中的元素个数。
3.根据权利要求1所述的方法,其特征在于,所述基于所述冗余度数据以及所述通道索引数据,确定每一层的剪枝通道数据,包括:
基于所述通道索引数据,获取不同的待处理数据在同一通道的冗余度数据;
根据不同的待处理数据在同一通道的冗余度数据,得到各个通道对应的通道处理数据;
基于所述各个通道对应的通道处理数据以及预设剪枝阈值,确定每一层的剪枝通道数据。
4.根据权利要求3所述的方法,其特征在于,所述根据不同的待处理数据在同一通道的冗余度数据,得到各个通道对应的通道处理数据,包括:
基于不同的待处理数据在同一通道的冗余度数据进行叠加处理,获得叠加结果;
对所述叠加结果进行归一化处理,获得通道对应的通道处理数据。
5.根据权利要求3所述的方法,其特征在于,所述基于所述各个通道对应的通道处理数据以及预设剪枝阈值,确定每一层的剪枝通道数据,包括:
对所述各个通道对应的通道处理数据进行排序,并基于排序结果进行累加求和,获得通道权重数据;
将所述通道权重数据中的通道权重逐个与预设剪枝阈值进行比较,获得首个大于所述预设剪枝阈值的通道权重;
基于所述首个大于所述预设剪枝阈值的通道权重,确定每一层的剪枝通道数据。
6.根据权利要求5所述的方法,其特征在于,所述基于所述首个大于所述预设剪枝阈值的通道权重,确定每一层的剪枝通道数据,包括:
确定所述首个大于所述预设剪枝阈值的目标通道权重;
基于所述通道权重数据中大于所述目标通道权重的通道权重,确定每一层的剪枝通道数据。
7.一种神经网络模型剪枝装置,其特征在于,所述装置包括:
特征图获取模块,用于获取待处理数据,将所述待处理数据输入至初始神经网络模型中,分别获取所述初始神经网络模型每一层输出的特征图;
分解处理模块,用于对所述每一层输出的特征图进行分解处理,获得所述特征图对应的冗余度数据和通道索引数据;
剪枝通道确定模块,用于基于所述冗余度数据以及所述通道索引数据,确定每一层的剪枝通道数据;
剪枝处理模块,用于基于所述剪枝通道数据对所述初始神经网络模型进行剪枝处理。
8.根据权利要求7所述的装置,其特征在于,所述分解处理模块还用于对所述每一层输出的特征图进行矩阵分解,获得所述特征图对应的上三角矩阵和通道索引数据;
当所述上三角矩阵中对角线元素个数等于所述通道索引数据中的元素个数时,基于所述上三角矩阵中对角线元素,确定所述特征图对应的冗余度数据;
当所述上三角矩阵中对角线元素个数小于所述通道索引数据中的元素个数时,通过预设值补充所述对角线元素,以使所述对角线元素个数等于所述通道索引数据中的元素个数。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011064520.0A CN112215354A (zh) | 2020-09-30 | 2020-09-30 | 神经网络模型剪枝方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011064520.0A CN112215354A (zh) | 2020-09-30 | 2020-09-30 | 神经网络模型剪枝方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112215354A true CN112215354A (zh) | 2021-01-12 |
Family
ID=74051692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011064520.0A Pending CN112215354A (zh) | 2020-09-30 | 2020-09-30 | 神经网络模型剪枝方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112215354A (zh) |
-
2020
- 2020-09-30 CN CN202011064520.0A patent/CN112215354A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022042123A1 (zh) | 图像识别模型生成方法、装置、计算机设备和存储介质 | |
CN111553215B (zh) | 人员关联方法及其装置、图卷积网络训练方法及其装置 | |
CN112183295A (zh) | 行人重识别方法、装置、计算机设备及存储介质 | |
CN113505797B (zh) | 模型训练方法、装置、计算机设备和存储介质 | |
CN114549913B (zh) | 一种语义分割方法、装置、计算机设备和存储介质 | |
CN111709415B (zh) | 目标检测方法、装置、计算机设备和存储介质 | |
CN110020718A (zh) | 基于变分推断的逐层神经网络剪枝方法和系统 | |
CN113705596A (zh) | 图像识别方法、装置、计算机设备和存储介质 | |
CN114332500A (zh) | 图像处理模型训练方法、装置、计算机设备和存储介质 | |
DE102021107510A1 (de) | Training eines neuronalen netzwerks unter speicherbeschränkung | |
CN113538281A (zh) | 图像去噪方法、装置、计算机设备和存储介质 | |
CN113626610A (zh) | 知识图谱嵌入方法、装置、计算机设备和存储介质 | |
CN116188878A (zh) | 基于神经网络结构微调的图像分类方法、装置和存储介质 | |
CN113378866B (zh) | 图像分类方法、系统、存储介质及电子设备 | |
CN112215354A (zh) | 神经网络模型剪枝方法、装置、计算机设备和存储介质 | |
CN114677545A (zh) | 一种基于相似性剪枝和高效模块的轻量化图像分类方法 | |
CN112633285B (zh) | 领域适应方法、装置、电子设备及存储介质 | |
CN115620017A (zh) | 图像的特征提取方法、装置、设备及存储介质 | |
CN112308197B (zh) | 一种卷积神经网络的压缩方法、装置及电子设备 | |
CN113590720A (zh) | 数据分类方法、装置、计算机设备和存储介质 | |
CN112686320A (zh) | 图像分类方法、装置、计算机设备及存储介质 | |
CN112804446A (zh) | 基于云平台大数据的大数据处理方法及装置 | |
CN112508187A (zh) | 一种机器学习模型压缩方法、装置及设备 | |
CN113298248B (zh) | 一种针对神经网络模型的处理方法、装置以及电子设备 | |
CN113269176B (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: 20210112 |