CN114444676A - 模型通道剪枝方法、装置、计算机设备和存储介质 - Google Patents
模型通道剪枝方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN114444676A CN114444676A CN202011214048.4A CN202011214048A CN114444676A CN 114444676 A CN114444676 A CN 114444676A CN 202011214048 A CN202011214048 A CN 202011214048A CN 114444676 A CN114444676 A CN 114444676A
- Authority
- CN
- China
- Prior art keywords
- pruning
- target
- model
- channel
- characteristic data
- 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
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)
- Feedback Control In General (AREA)
Abstract
本申请涉及一种模型通道剪枝方法、装置、计算机设备和存储介质。方法包括:获取模型剪枝任务,确定目标模型中待剪枝的目标层,根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据,根据特征数据类型以及特征数据数值大小,对目标层中的通道进行排序,得到与第一特征数据类型对应的第一排序结果以及与第二特征数据类型对应的第二排序结果,根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,对目标通道进行剪枝处理。实现对目标模型进行有效可靠的压缩处理,避免神经网络模型无法适用于内存和计算资源受限的设备的情况出现。
Description
技术领域
本申请涉及人工智能技术领域,特别是涉及一种模型通道剪枝方法、装置、计算机设备和存储介质。
背景技术
随着人工智能技术的发展,神经网络模型作为人工智能领域中的重要部分,由于其准确率高,易于达到生产要求,因此被大量的用到各种业务场景中。
但是神经网络作为高度计算密集型和内存密集型的模型,对计算和存储资源提出了很高的要求。深度神经网络的深度与其表达能力有一定的正相关性,其深度越深,则训练的效果越好,对于具体的任务而言准确度就会越高。然而,神经网络的深度越深,则网络模型的参数越多,需要的存储空间越大,导致神经网络模型无法适用于内存和计算资源受限的设备。
发明内容
基于此,有必要针对上述技术问题,提供一种能够实现模型压缩的模型通道剪枝方法、装置、计算机设备和存储介质。
一种模型通道剪枝方法,方法包括:
获取模型剪枝任务,确定目标模型中待剪枝的目标层;
根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据;
根据特征数据类型以及特征数据数值大小,对目标层中的通道进行排序,得到与第一特征数据类型对应的第一排序结果以及与第二特征数据类型对应的第二排序结果;
根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,对目标通道进行剪枝处理。
在其中一个实施例中,根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,对目标通道进行剪枝处理包括:
根据目标层的通道数量和预设的剪枝比例参数,确定待剪枝的目标通道的目标数量;
按照排序顺序,同步遍历第一排序结果和第二排序结果,筛选出在第一排序结果和第二排序结果中均遍历到的目标通道,直至筛选得到的目标通道的数量达到目标数量;
对筛选得到的目标通道进行剪枝处理。
在其中一个实施例中,获取模型剪枝任务包括:
响应目标模型的重写操作,获取针对重写的目标模型配置的待剪枝的目标层、剪枝比例参数以及剪枝方式,剪枝方式包括第一特征数据类型和第二特征数据类型;
根据待剪枝的目标层、剪枝比例参数以及剪枝方式,构建目标模型对应的模型剪枝任务。
在其中一个实施例中,待剪枝的目标层包括多个;模型剪枝任务还包括配置的模型训练与剪枝的组合方式,其中,组合方式包括单个目标层剪枝与模型训练的循环组合方式、以及全目标层剪枝与模型训练的组合方式中的任意一种;
方法还包括:
根据组合方式,对目标模型的各目标层进行剪枝和模型训练,得到更新的目标模型。
在其中一个实施例中,根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据包括:
根据模型剪枝任务中的剪枝方式,确定第一特征数据类型和第二特征数据类型;
获取目标层中通道对应的特征参数;
根据第一特征数据类型对特征参数进行处理,得到与通道对应的第一特征数据;
根据第二特征数据类型对特征参数进行处理,得到与通道对应的第二特征数据。
在其中一个实施例中,剪枝方式包括以参数零的占比、通道均值以及通道方差中的任意两个作为第一特征数据类型和第二特征数据类型的剪枝方式;其中,参数零的占比是指通道对应的特征参数中参数零的数量和特征参数的总数的比值,通道均值是指通道对应的特征参数的均值,通道方差是指通道对应的特征参数的方差。
在其中一个实施例中,剪枝方式包括以通道对应激活层的权重百分比和通道对应BN(Batch Normalization,批次标准化)层的gamma参数与零之间的距离作为第一特征数据类型和第二特征数据类型的剪枝方式。
一种模型通道剪枝装置,装置包括:
任务获取模块,用于获取模型剪枝任务,确定目标模型中待剪枝的目标层;
特征数据确定模块,用于根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据;
排序模块,用于根据特征数据类型以及特征数据数值大小,对目标层中的通道进行排序,得到与第一特征数据类型对应的第一排序结果以及与第二特征数据类型对应的第二排序结果;
筛选模块,用于根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,对目标通道进行剪枝处理。
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
获取模型剪枝任务,确定目标模型中待剪枝的目标层;
根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据;
根据特征数据类型以及特征数据数值大小,对目标层中的通道进行排序,得到与第一特征数据类型对应的第一排序结果以及与第二特征数据类型对应的第二排序结果;
根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,对目标通道进行剪枝处理。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取模型剪枝任务,确定目标模型中待剪枝的目标层;
根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据;
根据特征数据类型以及特征数据数值大小,对目标层中的通道进行排序,得到与第一特征数据类型对应的第一排序结果以及与第二特征数据类型对应的第二排序结果;
根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,对目标通道进行剪枝处理。
上述模型通道剪枝方法、装置、计算机设备和存储介质,通过获取模型剪枝任务,确定目标模型中待剪枝的目标层,根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据,通过不同的特征数据来反映目标层各通道的不同类型的特征,根据特征数据类型以及特征数据数值大小,对目标层中的通道进行排序,得到与第一特征数据类型对应的第一排序结果以及与第二特征数据类型对应的第二排序结果;根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,基于不同特征类型的综合排序结果来筛选得到的目标通道,能够避免重要的通道被滤除,提高目标通道筛选结果的有效性,对目标通道进行剪枝处理,对目标模型进行有效可靠的压缩处理,避免神经网络模型无法适用于内存和计算资源受限的设备的情况出现。
附图说明
图1为一个实施例中模型通道剪枝方法的应用环境图;
图2为一个实施例中模型通道剪枝方法的流程示意图;
图3为另一个实施例中模型通道剪枝方法的流程示意图;
图4为再一个实施例中模型通道剪枝方法的流程示意图;
图5为又一个实施例中模型通道剪枝方法的流程示意图;
图6为一个实施例中模型通道剪枝装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的模型通道剪枝方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与剪枝平台104进行通信。用户通过终端将要进行剪枝处理的目标模型重写至剪枝平台104,并输入期望达到的剪枝比例,剪枝平台获取基于终端输入数据构建的模型剪枝任务,确定目标模型中待剪枝的目标层,根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据,根据特征数据类型以及特征数据数值大小,对目标层中的通道进行排序,得到与第一特征数据类型对应的第一排序结果以及与第二特征数据类型对应的第二排序结果,根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,对目标通道进行剪枝处理,并通过模型训练得到更新的目标模型。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,剪枝平台104可以是服务器,其中,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种模型通道剪枝方法,以该方法应用于图1中的剪枝平台为例进行说明,包括以下步骤202至步骤208。
步骤202,获取模型剪枝任务,确定目标模型中待剪枝的目标层。
模型剪枝任务是指根据用户对待剪枝的神经网络模型的预期,基于用户的配置数据生成的、用于对指定的神经网络模型进行剪枝处理的任务数据。剪枝平台中的模型剪枝任务可以预先配置,在用户触发剪枝事件时从配置数据中获取。也可以基于用户输入数据,实时构建得到。
在实施例中,模型剪枝任务中包括待进行剪枝处理的目标模型,目标模型中待进行剪枝处理的目标层,对目标层的通道进行剪枝所依据的特征数据类型以及期望的剪枝比例等。
通过提取模型剪枝任务中携带的模型标识,确定待剪枝的目标模型。并根据待剪枝层级的层级名称或层级标识,确定目标模型中待剪枝的目标层。
在实施例中,目标模型可以由用户重写至剪枝平台,剪枝平台中的目标模型的初始模型架构在重写过程中已经确定,包括模型层级、各层级之间的通道以及模型的特征参数等,例如神经网络模型中的卷积层、池化层、全连接层中特征参数等。
步骤204,根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据。
第一特征数据类型和第二特征数据类型是用于表征通道不同类型的特征数据,例如通道对应的各个特征参数的方差、均值、特征参数中零的占比等。不同类型的特征数据所表示的意义有所不同,例如,均值体现的是整体水平的高低,方差体现的整体差异的大小,特征参数中零的占比体现的是特征参数零对该通道的数据传输的重要程度。
根据不同的特征数据类型,能够从不同的角度对目标层中的各个通道进行评价,避免单一因素导致重要的通道被滤除。
在其他实施例中,模型剪枝任务中的特征数据类型还可以是三个或是三个以上,与之对应的,得到的目标层中通道的特征数据的数量也是三个或是三个以上。可以理解,特征数据类型越多,对通道的评价角度也就越多,从而使得对通道的评价越全面,以确保后续被剪枝的通道对模型的整体影响降到最低。
步骤206,根据特征数据类型以及特征数据数值大小,对目标层中的通道进行排序,得到与第一特征数据类型对应的第一排序结果以及与第二特征数据类型对应的第二排序结果。
根据特征数据类型和特征数据数值大小,基于相同的排序规则,分别对通道进行排序。需要说明的是,不同特征数据类型需要按照对特征数据对通道的重要程度的高低进行排序。
例如,当第一特征数据类型是按特征数据对通道的重要程度的从高到低的顺序按数值从大到小排序的,那么,第二特征数据类型也需要按通道的重要程度的从高到低的顺序进行排序。反之,可以均按照特征数据对通道的重要程度的从低到高的顺序进行排序。
根据第一特征数据类型,按特征数据数值大小对目标层中的通道进行排序,与根据第二特征数据类型,按特征数据数值大小对目标层中的通道进行排序,两个排序过程独立进行,不会相互影响。排序处理结束后,得到与第一特征数据类型对应的第一排序结果以及与第二特征数据类型对应的第二排序结果。
步骤208,根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,对目标通道进行剪枝处理。
预设的剪枝比例参数是指要去除掉的通道数量占总的通道数量的比例。在确定待剪枝的目标层之后,由于目标模型的结构是确定的,因此,目标模型中目标层的通道数量也是确定的。根据预设的剪枝比例参数,可以确定待剪枝的通道数量,然后根据第一排序结果、第二排序结果,筛选出特定数量的目标通道,对筛选出来的目标通道进行剪枝处理,以实现对模型的压缩。
上述模型通道剪枝方法,通过获取模型剪枝任务,确定目标模型中待剪枝的目标层,根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据,通过不同的特征数据来反映目标层各通道的不同类型的特征,根据特征数据类型以及特征数据数值大小,对目标层中的通道进行排序,得到与第一特征数据类型对应的第一排序结果以及与第二特征数据类型对应的第二排序结果;根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,基于不同特征类型的综合排序结果来筛选得到的目标通道,能够避免重要的通道被滤除,提高目标通道筛选结果的有效性,对目标通道进行剪枝处理,对目标模型进行有效可靠的压缩处理,避免神经网络模型无法适用于内存和计算资源受限的设备的情况出现。
在其中一个实施例中,如图3所示,根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,对目标通道进行剪枝处理即步骤208,包括步骤302至步骤306。
步骤302,根据目标层的通道数量和预设的剪枝比例参数,确定待剪枝的目标通道的目标数量。
步骤304,按照排序顺序,同步遍历第一排序结果和第二排序结果,筛选出在第一排序结果和第二排序结果中均遍历到的目标通道,直至筛选得到的目标通道的数量达到目标数量。
步骤306,对筛选得到的目标通道进行剪枝处理。
由于目标模型的结构是确定的,在确定待剪枝的目标层之后,可以得到目标模型中目标层的通道数量,根据预设的剪枝比例参数和目标层的通道数量,计算得到待剪枝的目标通道的目标数量。
在实施例中,不同的目标层具有不同的通道数量。不同的目标层可以配置相同的剪枝比例参数进行剪枝,不同的目标层也可以分别配置不同的剪枝比例参数进行剪枝。
若目标模型中需要进行剪枝处理目标层的数量为多个,且剪枝比例参数相同时,可以根据剪枝比例参数得到各目标层需要剪枝的通道的数量。若目标模型中需要进行剪枝处理目标层的数量为多个,且剪枝比例参数不相同时,可以根据剪枝比例参数与目标层的匹配关系,分别计算得到各目标层需要剪枝的通道的数量。
在实施例中,对于同一目标层,由于第一排序结果和第二排序结果实际上是针对相同的通道按不同特征数据进行的排序,参与排序的对象是相同的。按照排序顺序,同步遍历第一排序结果和第二排序结果,对于遍历结果中出现两次的通道,即在第一排序结果和第二排序结果中均遍历到的通道,将其从通道中筛选出来,确定为目标通道,当筛选得到的目标通道的数量达到计算得到的目标数量时,停止遍历,并对筛选得到的目标通道进行剪枝处理。
筛选过程是基于排序顺序实现的,通道在排序结果中的排序位置,会影响到其是否会被筛选为待剪枝的目标通道。遍历是按照排序顺序依次进行数据查找或是数据获取的过程。对于第一排序结果和第二排序结果的同步遍历,当同步遍历到第一排序结果和第二排序结果的最后一项数据时,在第一排序结果和第二排序结果中均遍历到的通道会包括所有参与排序的通道。需要说明的是,在筛选过程中,并不需要完成对整个第一排序结果和第二排序结果的全部遍历。设定目标数量的意义在于,对同步遍历过程中排序均靠前的通道进行筛选,直到筛选得到所需目标数量的通道后,停止遍历,也就是设定遍历过程的停止节点。
在实施例中,第一排序结果和第二排序结果是基于特征数据的数值大小进行排序得到的,同一通道在第一排序结果中的排序号与在第二排序结果中的排序号可能不同。举例来说,假设存在通道ABCDEF,第一排序结果为ACFEBD,第二排序结果为CFEADB,要筛选的目标通道的数量为3,筛选过程如下:按照排序顺序,同步遍历第一排序结果和第二排序结果,第一个遍历得到的是A和C,第二个遍历得到的是C和F,此时,通道C为在第一排序结果和第二排序结果中均遍历到的目标通道,再往后,依次筛选得到的是通道F、通道E。因此,待裁剪的目标通道为通道CFE。同理,在本实施例中,如果要筛选的目标通道的数量为1,则只筛选最先遍历到的通道C。
在其他实施例中,通过改变第一排序结果和第二排序结果的排序顺序,筛选得到的目标通道也可以是需要保留的通道。例如,根据目标层的通道数量和预设的剪枝比例参数,确定须保留的目标通道的目标数量,筛选得到的目标数量的目标通道即为需要保留的通道。
在其中一个实施例中,如图4所示,获取模型剪枝任务,确定目标模型中待剪枝的目标层即步骤202,包括步骤402至步骤406。
步骤402,响应目标模型的重写操作,获取针对重写的目标模型配置的待剪枝的目标层、剪枝比例参数以及剪枝方式,剪枝方式包括第一特征数据类型和第二特征数据类型。
步骤404,根据待剪枝的目标层、剪枝比例参数以及剪枝方式,构建目标模型对应的模型剪枝任务。
步骤406,根据模型剪枝任务,确定目标模型中待剪枝的目标层。
目标模型的重写操作是指将需要进行剪枝处理的模型写入剪枝平台的过程。在将目标模型写入剪枝平台之后,针对该目标模型进行剪枝参数的配置,包括待剪枝的目标层、剪枝比例参数以及剪枝方式。其中,待剪枝的目标层可以是一个,也可以是多个。针对包括多个待剪枝目标层的目标模型,可以分别配置各个目标层的剪枝比例参数以及剪枝方式,以实现各个目标层的个性化剪枝。
剪枝平台在获取到用户通过终端输入的配置数据后,根据配置的待剪枝的目标层、剪枝比例参数以及剪枝方式,构建目标模型对应的模型剪枝任务。在其他实施例中,还可以将配置数据存储在剪枝平台,在后续检测到模型剪枝任务生成请求事件,根据配置数据生成模型剪枝任务。
在配置数据中定义有第一特征数据类型和第二特征数据类型,以便实现剪枝方式的配置。在实施例中,在剪枝平台预先配置有多个可选的特征数据类型,通过选取其中两个特征数据类型作为第一特征数据类型和第二特征数据类型,确定目标层的剪枝方式。
在其中一个实施例中,待剪枝的目标层包括多个。模型剪枝任务还包括配置的模型训练与剪枝的组合方式,其中,组合方式包括单个目标层剪枝与模型训练的循环组合方式、以及全目标层剪枝与模型训练的组合方式中的任意一种。在实施例中,方法还包括:根据组合方式,对目标模型的各目标层进行剪枝和模型训练,得到更新的目标模型。
神经网络模型投入应用之前,需要对模型进行训练。在一个实施例中,对于重写的目标模型是经过训练的模型的情况,若目标模型中只有单个目标层需要进行剪枝,可以先通过剪枝再进行模型训练的方式得到更新的目标模型。若目标模型中有多个目标层需要进行剪枝,可以通过单个目标层剪枝与模型训练的循环组合方式依次进行剪枝和模型训练,也就是边剪枝边训练的方式,得到更新的目标模型,举例来说,假设待剪枝的目标层包括第一层、第二层和第三层,在完成第一层剪枝之后,对得到的模型进行训练,训练完成之后,开始执行对第二层的剪枝,并在第二层剪枝完成后再次进行模型训练,再对第三层依次进行剪枝以及模型训练,最后得到更新的目标模型。此外,对于多个目标层需要进行剪枝的情况,还可以通过对全部待剪枝的目标层进行剪枝,在剪枝结束之后,对模型进行训练,得到更新的目标模型。其中,边剪枝边训练的方式,能够进一步提高模型的性能,确保最后更新得到的目标模型的性能实现最大优化,通过先剪枝再训练的方式,能够对模型的处理速度,便于快速得到更新后的目标模型。
在另一个实施例中,对于重写的目标模型是未经过训练的模型的情况,可以通过在剪枝处理之前,先进行模型初次训练,再依次进行剪枝和模型再次训练,已得到更新的目标模型。通过对于未进行训练的模型先进行模型训练,能够保证进行剪枝处理的模型已处于最优状态,进一步提高剪枝后的模型的性能。
在其中一个实施例中,如图5所示,根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据包括步骤502至步骤508。
步骤502,根据模型剪枝任务中的剪枝方式,确定第一特征数据类型和第二特征数据类型。
步骤504,获取目标层中通道对应的特征参数。
步骤506,根据第一特征数据类型对特征参数进行处理,得到与通道对应的第一特征数据。
步骤508,根据第二特征数据类型对特征参数进行处理,得到与通道对应的第二特征数据。
目标通道对应的特征参数是指用于对通道的特征数据进行评价的参数。例如在卷积层中,卷积核中的各个参数为该卷积核对应通道的特征参数。根据第一特征数据类型对特征参数进行处理,得到与通道对应的第一特征数据,同理,根据第二特征数据类型对特征参数进行处理,得到与通道对应的第二特征数据。
在其中一个实施例中,剪枝方式包括以参数零的占比、通道均值以及通道方差中的任意两个作为第一特征数据类型和第二特征数据类型的剪枝方式。其中,参数零的占比是指通道对应的特征参数中参数零的数量和特征参数的总数的比值,通道均值是指通道对应的特征参数的均值,通道方差是指通道对应的特征参数的方差。
在一个实施例中,第一特征数据类型为通道均值,第二特征数据类型为通道方差,根据特征参数,计算通道对应的通道均值和通道方差,根据通道均值的数值大小,对通道进行排序,得到第一排序结果。根据通道方差的数值大小,对通道进行排序,得到第二排序结果。
在另一个实施例中,第一特征数据类型为参数零的占比,第二特征数据类型为通道方差,根据特征参数,计算通道对应的通道方差,并根据特征参数中参数零的数量和特征参数的总数,计算通道对应的参数零的占比,根据参数零的占比的数值大小,对通道进行排序,得到第一排序结果,根据通道方差的数值大小,对通道进行排序,得到第二排序结果。
在其他实施例中,还可以将参数零的占比作为第一特征数据类型,将通道均值作为第二特征数据类型。
在一个实施例中,剪枝方式包括以通道对应激活层的权重百分比和通道对应BN层的gamma参数与零之间的距离作为第一特征数据类型和第二特征数据类型的剪枝方式。
以参数零的占比、通道均值以及通道方差中的任意两个作为第一特征数据类型和第二特征数据类型的剪枝方式都只考虑的目标层的信息,有时更应该考虑目标层的后面层,例如激活层、BN层的权重来进行剪枝。该剪枝方式就是利用了激活层的权重以及BN层的权重来进行。具体的方法是计算激活层的权重百分比以及BN层的gamma参数与零之间的距离来进行,需要对激活层的百分比零和BN层的gamma参数进行排序,然后结合两个排序进行通道剪枝,同时满足两个排序目标数量的通道筛选出来对其进行剪枝。
在实施例中,剪枝平台可以通过参数化来调用上面写的多种剪枝方式中的其中一个对目标层进行剪枝。可通过设置需要剪枝的层,对特定层进行剪枝,也可以采用通用的剪枝方式,遍历网络的每一层并对其中的满足要求的层进行剪枝。同样可以通过配置的方式,设置剪枝的比例,将每个待剪枝的层按照剪枝比例进行相应通道数的剪枝,以期达到预期的权重大小。
通过上述模型剪枝方法,对于任意神经网络模型,只需要将该神经网络模型和剪枝比例参数写入剪枝平台中就可以对其进行剪枝,使得任意网络进行剪枝得到实现,具有较好的通用性。并且剪枝平台利用多种剪枝方式,可以有效地对神经网络模型进行裁剪,并实现神经网络模型最终准确率变化幅度小,使得神经网络模型的落地成本下降,此外,通过剪枝平台的剪枝处理还能实现权重按参数化比例进行剪枝,让用户在权重和精度之间找到平衡,同时保证权重下降与精度满足业务需求。
应该理解的是,虽然上述实施例涉及的各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述实施例涉及的各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种模型通道剪枝装置,包括:任务获取模块602、特征数据确定模块604、排序模块606和筛选模块608,其中:
任务获取模块602,用于获取模型剪枝任务,确定目标模型中待剪枝的目标层。
特征数据确定模块604,用于根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据。
排序模块606,用于根据特征数据类型以及特征数据数值大小,对目标层中的通道进行排序,得到与第一特征数据类型对应的第一排序结果以及与第二特征数据类型对应的第二排序结果。
筛选模块608,用于根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,对目标通道进行剪枝处理。
在其中一个实施例中,筛选模块还用于:根据目标层的通道数量和预设的剪枝比例参数,确定待剪枝的目标通道的目标数量;按照排序顺序,同步遍历第一排序结果和第二排序结果,筛选出在第一排序结果和第二排序结果中均出现的目标通道,直至筛选得到的目标通道的数量达到目标数量;对筛选得到的目标通道进行剪枝处理。
在其中一个实施例中,任务获取模块还用于响应目标模型的重写操作,获取针对重写的目标模型配置的待剪枝的目标层、剪枝比例参数以及剪枝方式,剪枝方式包括第一特征数据类型和第二特征数据类型;根据待剪枝的目标层、剪枝比例参数以及剪枝方式,构建目标模型对应的模型剪枝任务。
在其中一个实施例中,待剪枝的目标层包括多个;模型剪枝任务还包括配置的模型训练与剪枝的组合方式,其中,组合方式包括单个目标层剪枝与模型训练的循环组合方式、以及全目标层剪枝与模型训练的组合方式中的任意一种;模型通道剪枝装置还用于根据组合方式,对目标模型的各目标层进行剪枝和模型训练,得到更新的目标模型。
在其中一个实施例中,特征数据确定模块还用于根据模型剪枝任务中的剪枝方式,确定第一特征数据类型和第二特征数据类型;获取目标层中通道对应的特征参数;根据第一特征数据类型对特征参数进行处理,得到与通道对应的第一特征数据;根据第二特征数据类型对特征参数进行处理,得到与通道对应的第二特征数据。
在其中一个实施例中,剪枝方式包括以参数零的占比、通道均值以及通道方差中的任意两个作为第一特征数据类型和第二特征数据类型的剪枝方式;其中,参数零的占比是指通道对应的特征参数中参数零的数量和特征参数的总数的比值,通道均值是指通道对应的特征参数的均值,通道方差是指通道对应的特征参数的方差。
在其中一个实施例中,剪枝方式包括以通道对应激活层的权重百分比和通道对应BN层的gamma参数与零之间的距离作为第一特征数据类型和第二特征数据类型的剪枝方式。
上述模型通道剪枝装置,通过获取模型剪枝任务,确定目标模型中待剪枝的目标层,根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据,通过不同的特征数据来反映目标层各通道的不同类型的特征,根据特征数据类型以及特征数据数值大小,对目标层中的通道进行排序,得到与第一特征数据类型对应的第一排序结果以及与第二特征数据类型对应的第二排序结果;根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,基于不同特征类型的综合排序结果来筛选得到的目标通道,能够避免重要的通道被滤除,提高目标通道筛选结果的有效性,对目标通道进行剪枝处理,对目标模型进行有效可靠的压缩处理,避免神经网络模型无法适用于内存和计算资源受限的设备的情况出现。
关于模型通道剪枝装置的具体限定可以参见上文中对于模型通道剪枝方法的限定,在此不再赘述。上述模型通道剪枝装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储模型通道剪枝数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种模型通道剪枝方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取模型剪枝任务,确定目标模型中待剪枝的目标层;根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据;根据特征数据类型以及特征数据数值大小,对目标层中的通道进行排序,得到与第一特征数据类型对应的第一排序结果以及与第二特征数据类型对应的第二排序结果;根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,对目标通道进行剪枝处理。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据目标层的通道数量和预设的剪枝比例参数,确定待剪枝的目标通道的目标数量;按照排序顺序,同步遍历第一排序结果和第二排序结果,筛选出在第一排序结果和第二排序结果中均出现的目标通道,直至筛选得到的目标通道的数量达到目标数量;对筛选得到的目标通道进行剪枝处理。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:
响应目标模型的重写操作,获取针对重写的目标模型配置的待剪枝的目标层、剪枝比例参数以及剪枝方式,剪枝方式包括第一特征数据类型和第二特征数据类型;根据待剪枝的目标层、剪枝比例参数以及剪枝方式,构建目标模型对应的模型剪枝任务。
在其中一个实施例中,待剪枝的目标层包括多个;模型剪枝任务还包括配置的模型训练与剪枝的组合方式,其中,组合方式包括单个目标层剪枝与模型训练的循环组合方式、以及全目标层剪枝与模型训练的组合方式中的任意一种;处理器执行计算机程序时还实现以下步骤:据组合方式,对目标模型的各目标层进行剪枝和模型训练,得到更新的目标模型。
在其中一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据模型剪枝任务中的剪枝方式,确定第一特征数据类型和第二特征数据类型;获取目标层中通道对应的特征参数;根据第一特征数据类型对特征参数进行处理,得到与通道对应的第一特征数据;根据第二特征数据类型对特征参数进行处理,得到与通道对应的第二特征数据。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取模型剪枝任务,确定目标模型中待剪枝的目标层;根据模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到目标层中通道的第一特征数据和第二特征数据;根据特征数据类型以及特征数据数值大小,对目标层中的通道进行排序,得到与第一特征数据类型对应的第一排序结果以及与第二特征数据类型对应的第二排序结果;根据第一排序结果、第二排序结果以及预设的剪枝比例参数,筛选出目标层中待剪枝的目标通道,对目标通道进行剪枝处理。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据目标层的通道数量和预设的剪枝比例参数,确定待剪枝的目标通道的目标数量;按照排序顺序,同步遍历第一排序结果和第二排序结果,筛选出在第一排序结果和第二排序结果中均出现的目标通道,直至筛选得到的目标通道的数量达到目标数量;对筛选得到的目标通道进行剪枝处理。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:
响应目标模型的重写操作,获取针对重写的目标模型配置的待剪枝的目标层、剪枝比例参数以及剪枝方式,剪枝方式包括第一特征数据类型和第二特征数据类型;根据待剪枝的目标层、剪枝比例参数以及剪枝方式,构建目标模型对应的模型剪枝任务。
在其中一个实施例中,待剪枝的目标层包括多个;模型剪枝任务还包括配置的模型训练与剪枝的组合方式,其中,组合方式包括单个目标层剪枝与模型训练的循环组合方式、以及全目标层剪枝与模型训练的组合方式中的任意一种;计算机程序被处理器执行时还实现以下步骤:据组合方式,对目标模型的各目标层进行剪枝和模型训练,得到更新的目标模型。
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据模型剪枝任务中的剪枝方式,确定第一特征数据类型和第二特征数据类型;获取目标层中通道对应的特征参数;根据第一特征数据类型对特征参数进行处理,得到与通道对应的第一特征数据;根据第二特征数据类型对特征参数进行处理,得到与通道对应的第二特征数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,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.根据权利要求5所述的方法,其特征在于,所述剪枝方式包括以通道对应激活层的权重百分比和通道对应BN层的gamma参数与零之间的距离作为第一特征数据类型和所述第二特征数据类型的剪枝方式。
8.一种模型通道剪枝装置,其特征在于,所述装置包括:
任务获取模块,用于获取模型剪枝任务,确定目标模型中待剪枝的目标层;
特征数据确定模块,用于根据所述模型剪枝任务中的第一特征数据类型和第二特征数据类型,得到所述目标层中通道的第一特征数据和第二特征数据;
排序模块,用于根据特征数据类型以及特征数据数值大小,对所述目标层中的通道进行排序,得到与所述第一特征数据类型对应的第一排序结果以及与所述第二特征数据类型对应的第二排序结果;
筛选模块,用于根据所述第一排序结果、所述第二排序结果以及预设的剪枝比例参数,筛选出所述目标层中待剪枝的目标通道,对所述目标通道进行剪枝处理。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011214048.4A CN114444676A (zh) | 2020-11-04 | 2020-11-04 | 模型通道剪枝方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011214048.4A CN114444676A (zh) | 2020-11-04 | 2020-11-04 | 模型通道剪枝方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114444676A true CN114444676A (zh) | 2022-05-06 |
Family
ID=81361444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011214048.4A Pending CN114444676A (zh) | 2020-11-04 | 2020-11-04 | 模型通道剪枝方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114444676A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115577765A (zh) * | 2022-09-09 | 2023-01-06 | 美的集团(上海)有限公司 | 网络模型剪枝方法、电子设备及存储介质 |
CN116306884A (zh) * | 2023-03-03 | 2023-06-23 | 北京泰尔英福科技有限公司 | 联邦学习模型剪枝方法、装置及非易失性存储介质 |
-
2020
- 2020-11-04 CN CN202011214048.4A patent/CN114444676A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115577765A (zh) * | 2022-09-09 | 2023-01-06 | 美的集团(上海)有限公司 | 网络模型剪枝方法、电子设备及存储介质 |
CN116306884A (zh) * | 2023-03-03 | 2023-06-23 | 北京泰尔英福科技有限公司 | 联邦学习模型剪枝方法、装置及非易失性存储介质 |
CN116306884B (zh) * | 2023-03-03 | 2024-02-06 | 北京泰尔英福科技有限公司 | 联邦学习模型剪枝方法、装置及非易失性存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200311552A1 (en) | Device and method for compressing machine learning model | |
CN111340237B (zh) | 数据处理和模型运行方法、装置和计算机设备 | |
CN111950656B (zh) | 图像识别模型生成方法、装置、计算机设备和存储介质 | |
CN113705775B (zh) | 一种神经网络的剪枝方法、装置、设备及存储介质 | |
KR20210032140A (ko) | 뉴럴 네트워크에 대한 프루닝을 수행하는 방법 및 장치 | |
CN110232436A (zh) | 卷积神经网络的修剪方法、装置及存储介质 | |
CN114444676A (zh) | 模型通道剪枝方法、装置、计算机设备和存储介质 | |
CN114861910B (zh) | 神经网络模型的压缩方法及装置、设备和介质 | |
CN115828011B (zh) | 基于大数据的数据分析方法和平台 | |
CN110689124A (zh) | 一种构建神经网络模型的方法及系统 | |
CN111783997A (zh) | 一种数据处理方法、装置及设备 | |
CN114168318A (zh) | 存储释放模型的训练方法、存储释放方法及设备 | |
CN115344692A (zh) | 聚类方法、装置、计算机设备和存储介质 | |
CN112966054A (zh) | 基于企业图谱节点间关系的族群划分方法和计算机设备 | |
CN117992197A (zh) | 神经网络模型映射调度运行方法、装置、电子设备及介质 | |
CN114238707B (zh) | 一种基于类脑技术的数据处理系统 | |
CN115883172A (zh) | 异常监测方法、装置、计算机设备和存储介质 | |
CN113821656A (zh) | 基于人工智能的图像处理方法、装置及电子设备 | |
CN111598390A (zh) | 服务器高可用性评估方法、装置、设备和可读存储介质 | |
CN114706687B (zh) | 计算任务的分配方法、装置、计算机设备和存储介质 | |
CN111105144A (zh) | 数据处理方法、装置和目标对象风险监控方法 | |
CN110750661B (zh) | 检索图像的方法、装置、计算机设备和存储介质 | |
CN112215354A (zh) | 神经网络模型剪枝方法、装置、计算机设备和存储介质 | |
CN116796164A (zh) | 特征选择方法、装置、电子设备及存储介质 | |
CN118764397A (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 |