CN112001483A - 一种剪枝神经网络模型的方法和装置 - Google Patents
一种剪枝神经网络模型的方法和装置 Download PDFInfo
- Publication number
- CN112001483A CN112001483A CN202010820874.7A CN202010820874A CN112001483A CN 112001483 A CN112001483 A CN 112001483A CN 202010820874 A CN202010820874 A CN 202010820874A CN 112001483 A CN112001483 A CN 112001483A
- Authority
- CN
- China
- Prior art keywords
- node
- pruning
- information
- neural network
- pruned
- 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 166
- 238000003062 neural network model Methods 0.000 title claims abstract description 87
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000000547 structure data Methods 0.000 claims abstract description 55
- 230000006870 function Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 239000004744 fabric Substances 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 4
- 230000004913 activation Effects 0.000 description 5
- 238000013135 deep learning Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000011176 pooling Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction 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/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
- 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
技术领域
本申请实施例涉及深度学习技术,尤其涉及一种剪枝神经网络模型的方法和装置。
背景技术
在计算机视觉领域中随着深度学习技术的不断发展,网络表达能力虽然逐渐增强,然而需要的资源消耗也越来越大,过大的资源消耗在边缘移动设备等资源受限的环境下是无法满足的,模型大小和推理速度成为了深度学习落地的重要影响因素。因此,能够加速网络推理速度,减少模型大小的网络剪枝技术成为了热点。
通常,神经网络的剪枝技术可以包括如下四个阶段:
1.找到可以被裁减的通道。
2.根据上层剪枝算法,求取剪枝结果。
3.得到裁剪后的模型。
4.对裁剪后的模型进行微调或重训练。
鉴于深度学习的前端框架高度封装的特性,以及不同网络拓扑结构的限制,现有剪枝工具往往需要人工参与上述阶段1和阶段3的处理,比如通过超参控制模型初始化;又或者通过将被裁剪的权重置为0的方式达到模拟剪枝的效果。这样的剪枝方式以及高度封装的神经网络前端框架,使得模型训练逻辑之间有非常大的耦合,不利于剪枝方案的推广。
发明内容
本申请提供一种剪枝神经网络模型的方法和装置,以解决现有的剪枝技术中高度封装的神经网络前端框架,使得模型训练逻辑之间有非常大的耦合,不利于剪枝方案的推广的问题。
第一方面,本申请实施例提供了一种剪枝神经网络模型的方法,所述方法包括:
获取目标神经网络模型的模型结构数据,所述模型结构数据包括多个节点的节点信息;
根据所述多个节点的节点信息确定所述目标神经网络模型中可被剪枝的卷积层信息;
将所述可被剪枝的卷积层信息提供给上层的剪枝算法,以由所述剪枝算法根据所述可被剪枝的卷积层信息确定所述目标神经网络模型中的对应卷积层的剪枝结果;
获取所述剪枝算法确定的所述剪枝结果,并根据所述剪枝结果对所述模型结构数据进行修改,以构建剪枝后的目标神经网络模型。
第二方面,本申请实施例还提供了一种剪枝神经网络模型的装置,所述装置包括:
模型结构数据获取模块,用于获取目标神经网络模型的模型结构数据,所述模型结构数据包括多个节点的节点信息;
可剪枝卷积层信息确定模块,用于根据所述多个节点的节点信息确定所述目标神经网络模型中可被剪枝的卷积层信息;
可剪枝卷积层信息发送模块,用于将所述可被剪枝的卷积层信息提供给上层的剪枝算法,以由所述剪枝算法根据所述可被剪枝的卷积层信息确定所述目标神经网络模型中的对应卷积层的剪枝结果;
模型剪枝模块,用于获取所述剪枝算法确定的所述剪枝结果,并根据所述剪枝结果对所述模型结构数据进行修改,以构建剪枝后的目标神经网络模型。
第三方面,本申请实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的方法。
本申请具有如下有益效果:
在本实施例中,在不需要目标神经网络模型的前端框架提供API的基础上,从目标神经网络模型的模型结构数据入手,对该模型结构数据中包含的多个节点的节点信息进行分析,从而可以确定目标神经网络模型中可被剪枝的卷积层信息,然后将该可被剪枝的卷积层信息提供给上层的剪枝算法,并通过获取剪枝算法确定的剪枝结果,直接对模型结构数据进行修改,以构建剪枝后的目标神经网络模型,从而实现剪枝过程的全自动化。并且本实施例可以将上层的剪枝算法和下层的物理网络模型分离,能够适配不同网络结构和不同的上层剪枝算法,消除算法和工程上的隔阂,达到工程化通用、简便的要求。
附图说明
图1是本申请实施例一提供的一种剪枝神经网络模型的方法实施例的流程图;
图2是本申请实施例一提供的一个完整的模型剪枝流程示例示意图;
图3是本申请实施例二提供的另一种剪枝神经网络模型的方法实施例的流程图;
图4是本申请实施例三提供的一种剪枝神经网络模型的装置实施例的结构框图;
图5是本申请实施例四提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
实施例一
图1为本申请实施例一提供的一种剪枝神经网络模型的方法实施例的流程图。通常,神经网络的剪枝技术可以包括如下四个阶段:1.找到可以被裁减的通道。2.根据上层剪枝算法,求取剪枝结果。3.得到裁剪后的模型。4.对裁剪后的模型进行微调或重训练。在该实施例中,对剪枝技术的阶段1“找到可以被裁减的通道”和阶段3“得到裁剪后的模型”进行了优化,以消除算法和工程之间的隔阂,实现全自动剪枝。
本申请实施例的剪枝神经网络模型的方法可以由剪枝工具或者剪枝装置执行,具体可以包括如下步骤:
步骤110,获取目标神经网络模型的模型结构数据,所述模型结构数据包括多个节点的节点信息。
在该实施例中,模型结构数据可以为目标神经网络模型底层的基础模型定义数据,用于定义目标神经网络模型的模型结构。
在一种实施例中,目标神经网络模型的前端框架可以为MXNet框架,MXNet是一款开源的、轻量级、可移植的、灵活的深度学习库,它让用户可以混合使用符号编程模式和指令式编程模式来最大化效率和灵活性,对于GPU(Graphics Processing Unit,图形处理器)上的计算速度和资源利用的优化十分出色。
在一种实施例中,模型结构数据可以为模型结构的json数据,则步骤110进一步可以包括如下步骤:
调用所述MXNet框架的模型结构函数,以获得所述目标神经网络模型的模型结构的json数据。
在该实施例中,通过调用MXNet框架的模型结构函数,可以自动生成目标神经网络模型的模型结构的json数据。
作为一种示例,目标神经网络模型的模型结构数据可以包括多个节点的节点信息,通过读取该模型结构数据可以获得节点列表。其中,节点信息可以包括但不限于:节点所在的卷积层名称、操作属性信息、父节点索引信息、通道数据等。
例如,一种基于MXNet框架的模型结构的json数据中的部分数据可以如下所示:
在上述json数据中,nodes表示节点列表或多个节点,大括号范围内代表一个节点的节点信息。其中,“op”表示操作属性信息,如果其值为零值,表示当前节点是参数节点,没有运算操作;如果其值为非零值,则表示当前节点是运算节点(又称运算子),有运算操作。“name”表示节点所在的卷积层名称。“inputs”表示父节点索引信息,例如,"inputs":[[0,0,0]]表示当前节点的父节点索引为第0号节点。“shape”表示通道数据,通道数据又可以包括输入通道数据以及输出通道数据,例如,shape__":"(64,64,3,3)"中前面两个64分别代表输入通道数据以及输出通道数据。
步骤120,根据所述多个节点的节点信息确定所述目标神经网络模型中可被剪枝的卷积层信息。
在该步骤中,基于目标神经网络模型底层的模型结构数据,可以对该模型结构数据中各节点的节点信息进行分析,从而确定符合条件的卷积节点,并将该卷积节点所在的卷积层名称确定为可被剪枝的卷积层信息。
步骤130,将所述可被剪枝的卷积层信息提供给上层的剪枝算法,以由所述剪枝算法根据所述可被剪枝的卷积层信息确定所述目标神经网络模型中的对应卷积层的剪枝结果。
在该步骤中,当确定可被剪枝的卷积层信息以后,可以将该可被剪枝的卷积层信息提供给上层的剪枝算法,以供剪枝算法决策出该可被剪枝的卷积层信息对应的卷积层的卷积结果。
需要说明的是,本实施例并不限于具体的剪枝算法,可以根据实际需要选定剪枝算法即可。
步骤140,获取所述剪枝算法确定的所述剪枝结果,并根据所述剪枝结果对所述模型结构数据进行修改,以构建剪枝后的目标神经网络模型。
在该步骤中,可以从剪枝算法中获得剪枝结果,然后根据该剪枝结果对模型结构数据进行修改,从而实现对物理上的目标神经网络模型的剪枝和重建剪枝后的模型。
在一种实施例中,剪枝结果可以包括但不限于:可被剪枝的卷积层剪枝后的通道数。上述根据剪枝结果对模型结构数据进行修改的步骤,可以包括如下步骤:
将所述可被剪枝的卷积层对应的节点的输出通道数量修改为所述剪枝后的通道数;将所述可被剪枝的卷积层对应的节点的所有子节点的输入通道数量修改为所述剪枝后的通道数。
例如,针对步骤110中的json数据示例,"__shape__":"(64,64,3,3)"被剪枝前的输入通道数和输出通道数均为64,假设可被剪枝的卷积层(即父节点对应的卷积层)剪枝后的通道数为33,即"num_filter":"64"变成了"num_filter":"33",那么,该卷积层的输出通道数就变成33,即由"__shape__":"(64,64,3,3)"变成"__shape__":"(64,33,3,3)",该父节点的所有子节点的输入通道数变成33,即所有子节点变成"__shape__":"(33,64,3,3)"。
参考图2示例性地示出了一个完整的模型剪枝流程示意图,在图2中,本实施例的剪枝工具或剪枝装置作为连接上层剪枝算法和下层的物理网络模型的中间层(可以称为“剪枝工具层”),使得剪枝算法和物理网络模型分离。
如图2所示,使用方(例如使用本实施例的剪枝工具的算法人员)向剪枝工具发出“获取可剪卷积层”的请求,收到该请求后,剪枝工具从网络模型中读取对应的模型结构数据(即图2的“读取模型”和“返回模型”),然后剪枝工具对该模型结构数据中多个节点的节点信息进行分析,以确定网络模型中可被剪枝的卷积层信息(即图2中的模型结构检测处理),并向使用方返回可被剪枝的卷积层信息。然后使用方调用剪枝算法,以由剪枝算法根据该可被剪枝的卷积层信息确定网络模型中的对应卷积层的剪枝结果,并将剪枝结果发送给剪枝工具,以促使剪枝工具根据该剪枝结果对网络模型进行重建,并向使用方返回重建后的网络模型。
在本实施例中,在不需要目标神经网络模型的前端框架提供API的基础上,从目标神经网络模型的模型结构数据入手,对该模型结构数据中包含的多个节点的节点信息进行分析,从而可以确定目标神经网络模型中可被剪枝的卷积层信息,然后将该可被剪枝的卷积层信息提供给上层的剪枝算法,并通过获取剪枝算法确定的剪枝结果,直接对模型结构数据进行修改,以构建剪枝后的目标神经网络模型,从而实现剪枝过程的全自动化。并且本实施例可以将上层的剪枝算法和下层的物理网络模型分离,能够适配不同网络结构和不同的上层剪枝算法,消除算法和工程上的隔阂,达到工程化通用、简便的要求。
实施例二
图3为本申请实施例二提供的另一种剪枝神经网络模型的方法实施例的流程图。
步骤310,获取目标神经网络模型的模型结构数据,所述模型结构数据包括多个节点的节点信息。
作为一种示例,目标神经网络模型的模型结构数据可以包括多个节点的节点信息。其中,节点信息可以包括但不限于:节点所在的卷积层名称、操作属性信息、父节点索引信息、通道数据等。
在一种实施例中,目标神经网络模型的前端框架可以为MXNet框架,模型结构数据可以为模型结构的json数据,可以调用MXNet框架的模型结构函数,来获得目标神经网络模型的模型结构的json数据。
步骤320,根据所述多个节点的节点信息构建所述目标神经网络模型的网络结构拓扑图。
在该步骤中,在不需要目标神经网络模型的前端框架提供API的基础上,从底层的模型结构数据提供的节点信息入手,构建目标神经网络模型的网络结构拓扑图。
在一种实施方式中,步骤320进一步可以包括如下步骤:
步骤320-1,遍历各节点,针对当前遍历到的节点,判断该节点的操作属性信息是否零值;若否,则执行步骤320-2。
例如,针对实施例一中步骤110所示的json数据示例,如果节点的操作属性信息即“op”的值为“null”,则可以判定该节点的操作属性信息为零值,即该节点为“参数节点”。如果节点的操作属性信息即“op”的值不为“null”,则可以判定该节点的操作属性信息不为零值,即该节点为“运算节点”。在步骤110所示的json数据示例中,节点列表中包含五个节点,对应的操作属性信息op的值分别是“null”、“Pooling”、“null”、“Convolution”和“Activation”。
步骤320-2,将该节点加入到网络结构拓扑图中,并根据该节点的父节点索引信息确定该节点的父节点是否在所述网络结构拓扑图中。
在该步骤中,如果判断节点的操作属性信息不为零值,即op不为null,则判定该节点为运算节点,并将该运算节点加入到网络结构拓扑图中。在一种实施方式中,可以在预先生成的字典中获取各运算节点的地址信息,然后将该地址信息加入网络结构拓扑图中,即该网络结构拓扑图中记录的是节点的地址信息。当然,本实施例也不限于用地址信息来表达网络结构拓扑图中的节点,也可以根据实际需要采用其他数据来表达。
当将节点加入到网络结构拓扑图中以后,则可以读取该节点的父节点索引信息,即读取json数据中的该节点的inputs属性,并判断该父节点索引信息所指向的父节点是否在网络结构拓扑图中。
在一种实施方式中,上述根据该节点的父节点索引信息确定该节点的父节点是否在所述网络结构拓扑图中的步骤,进一步可以包括如下步骤:
根据该节点的父节点索引信息定位到所述父节点的节点信息;从所述父节点的节点信息中读取该父节点的操作属性信息;若该父节点的操作属性信息为零值,则判定该父节点不在所述网络结构拓扑图中;若该父节点的操作属性信息不为零值,则判定该父节点在所述网络结构拓扑图中。
例如,针对实施例一中步骤110所示的json数据示例,共有五个节点,op的值分别是“null”、“Pooling”、“null”、“Convolution”和“Activation”,其索引分别是0,1,2,3,4。那么先遍历josn文件得到这五个节点,如果op的值不是null,则将该节点加入到网络结构拓扑图,并且查看该节点的input属性,比如对于op是Activation的节点,其input属性是[[3,0,0]],代表其父节点的索引是3,即op值为Convolution的节点,该op值不为null,所以op值为Convolution的节点在网络结构拓扑图中。而针对Convolution节点,其input属性是[[0,0,0],[2,0,0]],即上一级节点的索引是0,2,而由于索引是0和2的节点的op值都是null,都没有在网络结构拓扑图中,所以Convolution节点没有父亲节点。
步骤320-3,若该节点的父节点在所述网络结构拓扑图中,则在所述网络结构拓扑图中建立该节点与所述父节点的拓扑关系。
例如,针对上例,比如针对op值为Activation的节点,其父节点Convolution节点在网络结构拓扑图中,则可以建立Activation的节点与Convolution节点的拓扑关系。
当遍历完所有节点以后,则网络结构拓扑图构建完成。
步骤330,从所述网络结构拓扑图的起始节点开始进行广度优先遍历,判断各节点及其子节点是否均为卷积节点。
在该步骤中,对于网络结构拓扑图,从起始节点开始进行广度优先遍历。广度遍历第一层关联节点,对于遍历到的每个节点,判断该节点及其所有的子节点是否均为卷积节点,卷积节点即op的值为Convolution的节点。
步骤340,若当前遍历的节点及其子节点均为卷积节点,则记录该节点对应的卷积层名称,作为可被剪枝的卷积层信息。
在该步骤中,如果判定当前遍历的节点及其所有的子节点均为卷积节点,则表示当前遍历的节点可用于被剪枝,此时可以记录该节点及所有子节点,并获取该节点对应的卷积层名称,作为可被剪枝的卷积层信息。例如,针对步骤110中的json数据示例,如果op为Convolution的节点及其子节点都是卷积节点,则可以获取该节点信息中的“name”属性的值“conv_downsample_1”作为可被剪枝的卷积层信息。
另一方面,如果判定当前遍历的节点及其所有的子节点不只有卷积节点,即还包含其他类型的节点,则表示当前遍历的节点不可用于被剪枝。
步骤350,将所述可被剪枝的卷积层信息提供给上层的剪枝算法,以由所述剪枝算法根据所述可被剪枝的卷积层信息确定所述目标神经网络模型中的对应卷积层的剪枝结果。
在该步骤中,当对网络结构拓扑图遍历完毕以后,可以将记录下来的所有可被剪枝的卷积层信息提供给上层的剪枝算法,剪枝算法可以根据可被剪枝的卷积层信息进行决策,确定每个可被剪枝的卷积层剪枝后的剪枝结果。
需要说明的是,本实施例对具体的剪枝算法并不作限定,可以根据实际需要确定所使用的上层剪枝算法。
步骤360,获取所述剪枝算法确定的剪枝结果,并根据所述剪枝结果对所述模型结构数据进行修改,以构建剪枝后的目标神经网络模型。
在该步骤中,可以从剪枝算法中获得剪枝结果,然后根据该剪枝结果对模型结构数据进行修改,从而实现对物理上的目标神经网络模型的剪枝和重建剪枝后的模型,被剪枝后的模型依然能够正常使用。
在一种实施例中,剪枝结果可以包括但不限于:可被剪枝的卷积层剪枝后的通道数。上述根据剪枝结果对模型结构数据进行修改的步骤,可以包括如下步骤:
将所述可被剪枝的卷积层对应的节点的输出通道数量修改为所述剪枝后的通道数;将所述可被剪枝的卷积层对应的节点的所有子节点的输入通道数量修改为所述剪枝后的通道数。
例如,针对步骤110中的json数据示例,"__shape__":"(64,64,3,3)"被剪枝前的输入通道数和输出通道数均为64,假设可被剪枝的卷积层(即父节点对应的卷积层)剪枝后的通道数为33,即"num_filter":"64"变成了"num_filter":"33",那么,该卷积层的输出通道数就变成33,即由"__shape__":"(64,64,3,3)"变成"__shape__":"(64,33,3,3)",该父节点的所有子节点的输入通道数变成33,即所有子节点变成"__shape__":"(33,64,3,3)"。
在本实施例中,对底层的模型结构数据进行读取分析,建立网络结构拓扑图,然后通过对网络结构拓扑图进行分析,输出可剪枝的卷积层信息供上层剪枝算法决策,并根据上层剪枝算法所得到的剪枝结果,修改模型结构数据,实现物理上模型结构的剪枝并重建剪枝后的模型。本实施例不涉及具体的剪枝算法,而是为剪枝算法提供一个工程化的剪枝工具,最终消除算法和工程之间的隔阂,打通剪枝算法与产品落地之间的壁障,可适配不同剪枝算法和网络模型,实现端到端的全自动剪枝。
实施例三
图4为本申请实施例三提供的一种剪枝神经网络模型的装置实施例的结构框图,该剪枝神经网络模型的装置又可以称为剪枝装置,该装置可以包括:
模型结构数据获取模块410,用于获取目标神经网络模型的模型结构数据,所述模型结构数据包括多个节点的节点信息;
可剪枝卷积层信息确定模块420,用于根据所述多个节点的节点信息确定所述目标神经网络模型中可被剪枝的卷积层信息;
可剪枝卷积层信息发送模块430,用于将所述可被剪枝的卷积层信息提供给上层的剪枝算法,以由所述剪枝算法根据所述可被剪枝的卷积层信息确定所述目标神经网络模型中的对应卷积层的剪枝结果;
模型剪枝模块440,用于获取所述剪枝算法确定的所述剪枝结果,并根据所述剪枝结果对所述模型结构数据进行修改,以构建剪枝后的目标神经网络模型。
在一种实施方式中,所述节点信息包括节点所在的卷积层名称;所述可剪枝卷积层信息确定模块420进一步可以包括如下子模块:
网络结构拓扑图构建子模块,用于根据所述多个节点的节点信息构建所述目标神经网络模型的网络结构拓扑图;
广度优先遍历子模块,用于从所述网络结构拓扑图的起始节点开始进行广度优先遍历,判断各节点及其子节点是否均为卷积节点;
可剪枝卷积层确定子模块,用于若当前遍历的节点及其子节点均为卷积节点,则记录该节点对应的卷积层名称,作为可被剪枝的卷积层信息。
在一种实施方式中,所述节点信息还包括操作属性信息以及父节点索引信息;
所述网络结构拓扑图构建子模块还用于:
遍历各节点,针对当前遍历到的节点,判断该节点的操作属性信息是否零值;
若否,则将该节点加入到网络结构拓扑图中,并根据该节点的父节点索引信息确定该节点的父节点是否在所述网络结构拓扑图中;
若该节点的父节点在所述网络结构拓扑图中,则在所述网络结构拓扑图中建立该节点与所述父节点的拓扑关系。
在一种实施方式中,所述网络结构拓扑图构建子模块还用于:
在预先生成的地址字典中查找该节点的地址信息;
将所述地址信息加入所述网络结构拓扑图中。
在一种实施方式中,所述网络结构拓扑图构建子模块还用于:
根据该节点的父节点索引信息定位到所述父节点的节点信息;
从所述父节点的节点信息中读取该父节点的操作属性信息;
若该父节点的操作属性信息为零值,则判定该父节点不在所述网络结构拓扑图中;
若该父节点的操作属性信息不为零值,则判定该父节点在所述网络结构拓扑图中。
在一种实施方式中,所述节点信息还包括通道数据,所述通道数据包括输入通道数据以及输出通道数据;所述剪枝结果包括所述可被剪枝的卷积层剪枝后的通道数;
所述模型修改模块440还用于:
将所述可被剪枝的卷积层对应的节点的输出通道数量修改为所述剪枝后的通道数;
将所述可被剪枝的卷积层对应的节点的所有子节点的输入通道数量修改为所述剪枝后的通道数。
在一种实施方式中,所述目标神经网络模型的前端框架为MXNet框架,所述模型结构数据为模型结构的json数据,所述模型结构数据获取模块410还用于:
调用所述MXNet框架的模型结构函数,以获得所述目标神经网络模型的模型结构的json数据。
需要说明的是,本申请实施例所提供的剪枝装置可执行本申请任意实施例所提供的剪枝神经网络模型的方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5为本申请实施例四提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括处理器510、存储器520、输入装置530和输出装置540;计算机设备中处理器510的数量可以是一个或多个,图5中以一个处理器510为例;计算机设备中的处理器510、存储器520、输入装置530和输出装置540可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器520作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的方法对应的程序指令/模块。处理器510通过运行存储在存储器520中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的方法。
存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器520可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置540可包括显示屏等显示设备。
实施例五
本申请实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行实施例一至实施例二中任一实施例中的方法。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (10)
1.一种剪枝神经网络模型的方法,其特征在于,所述方法包括:
获取目标神经网络模型的模型结构数据,所述模型结构数据包括多个节点的节点信息;
根据所述多个节点的节点信息确定所述目标神经网络模型中可被剪枝的卷积层信息;
将所述可被剪枝的卷积层信息提供给上层的剪枝算法,以由所述剪枝算法根据所述可被剪枝的卷积层信息确定所述目标神经网络模型中的对应卷积层的剪枝结果;
获取所述剪枝算法确定的所述剪枝结果,并根据所述剪枝结果对所述模型结构数据进行修改,以构建剪枝后的目标神经网络模型。
2.根据权利要求1所述的剪枝神经网络模型的方法,其特征在于,所述节点信息包括节点所在的卷积层名称;所述根据所述多个节点的节点信息确定所述目标神经网络模型中可被剪枝的卷积层信息包括:
根据所述多个节点的节点信息构建所述目标神经网络模型的网络结构拓扑图;
从所述网络结构拓扑图的起始节点开始进行广度优先遍历,判断各节点及其子节点是否均为卷积节点;
若当前遍历的节点及其子节点均为卷积节点,则记录该节点对应的卷积层名称,作为可被剪枝的卷积层信息。
3.根据权利要求2所述的剪枝神经网络模型的方法,其特征在于,所述节点信息还包括操作属性信息以及父节点索引信息;
所述根据所述多个节点的节点信息构建所述目标神经网络模型的网络结构拓扑图包括:
遍历各节点,针对当前遍历到的节点,判断该节点的操作属性信息是否零值;
若否,则将该节点加入到网络结构拓扑图中,并根据该节点的父节点索引信息确定该节点的父节点是否在所述网络结构拓扑图中;
若该节点的父节点在所述网络结构拓扑图中,则在所述网络结构拓扑图中建立该节点与所述父节点的拓扑关系。
4.根据权利要求3所述的剪枝神经网络模型的方法,其特征在于,所述将该节点加入到网络结构拓扑图中包括:
在预先生成的地址字典中查找该节点的地址信息;
将所述地址信息加入所述网络结构拓扑图中。
5.根据权利要求3所述的剪枝神经网络模型的方法,其特征在于,所述根据该节点的父节点索引信息确定该节点的父节点是否在所述网络结构拓扑图中包括:
根据该节点的父节点索引信息定位到所述父节点的节点信息;
从所述父节点的节点信息中读取该父节点的操作属性信息;
若该父节点的操作属性信息为零值,则判定该父节点不在所述网络结构拓扑图中;
若该父节点的操作属性信息不为零值,则判定该父节点在所述网络结构拓扑图中。
6.根据权利要求1-5任一项所述的剪枝神经网络模型的方法,其特征在于,所述节点信息还包括通道数据,所述通道数据包括输入通道数据以及输出通道数据;所述剪枝结果包括可被剪枝的卷积层剪枝后的通道数;
所述根据所述剪枝结果对所述模型结构数据进行修改包括:
将所述可被剪枝的卷积层对应的节点的输出通道数量修改为所述剪枝后的通道数;
将所述可被剪枝的卷积层对应的节点的所有子节点的输入通道数量修改为所述剪枝后的通道数。
7.根据权利要求1所述的剪枝神经网络模型的方法,其特征在于,所述目标神经网络模型的前端框架为MXNet框架,所述模型结构数据为模型结构的json数据,所述获取目标神经网络模型的模型结构数据包括:
调用所述MXNet框架的模型结构函数,以获得所述目标神经网络模型的模型结构的json数据。
8.一种剪枝神经网络模型的装置,其特征在于,所述装置包括:
模型结构数据获取模块,用于获取目标神经网络模型的模型结构数据,所述模型结构数据包括多个节点的节点信息;
可剪枝卷积层信息确定模块,用于根据所述多个节点的节点信息确定所述目标神经网络模型中可被剪枝的卷积层信息;
可剪枝卷积层信息发送模块,用于将所述可被剪枝的卷积层信息提供给上层的剪枝算法,以由所述剪枝算法根据所述可被剪枝的卷积层信息确定所述目标神经网络模型中的对应卷积层的剪枝结果;
模型剪枝模块,用于获取所述剪枝算法确定的所述剪枝结果,并根据所述剪枝结果对所述模型结构数据进行修改,以构建剪枝后的目标神经网络模型。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010820874.7A CN112001483A (zh) | 2020-08-14 | 2020-08-14 | 一种剪枝神经网络模型的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010820874.7A CN112001483A (zh) | 2020-08-14 | 2020-08-14 | 一种剪枝神经网络模型的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112001483A true CN112001483A (zh) | 2020-11-27 |
Family
ID=73472408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010820874.7A Pending CN112001483A (zh) | 2020-08-14 | 2020-08-14 | 一种剪枝神经网络模型的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112001483A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116468100A (zh) * | 2023-03-06 | 2023-07-21 | 美的集团(上海)有限公司 | 残差剪枝方法、装置、电子设备和可读存储介质 |
CN117829242A (zh) * | 2024-03-04 | 2024-04-05 | 腾讯科技(深圳)有限公司 | 模型处理方法及相关设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109523017A (zh) * | 2018-11-27 | 2019-03-26 | 广州市百果园信息技术有限公司 | 深度神经网络的压缩方法、装置、设备及存储介质 |
CN109657780A (zh) * | 2018-06-15 | 2019-04-19 | 清华大学 | 一种基于剪枝顺序主动学习的模型压缩方法 |
US20190362235A1 (en) * | 2018-05-23 | 2019-11-28 | Xiaofan Xu | Hybrid neural network pruning |
WO2020042658A1 (zh) * | 2018-08-31 | 2020-03-05 | 华为技术有限公司 | 数据处理方法、装置、设备和系统 |
CN110874634A (zh) * | 2018-08-31 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 神经网络的优化方法及装置、设备和存储介质 |
CN110909861A (zh) * | 2018-09-17 | 2020-03-24 | 北京市商汤科技开发有限公司 | 神经网络优化方法及装置、电子设备和存储介质 |
CN111199282A (zh) * | 2019-12-31 | 2020-05-26 | 的卢技术有限公司 | 一种卷积神经网络模型的剪枝方法及装置 |
-
2020
- 2020-08-14 CN CN202010820874.7A patent/CN112001483A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190362235A1 (en) * | 2018-05-23 | 2019-11-28 | Xiaofan Xu | Hybrid neural network pruning |
CN109657780A (zh) * | 2018-06-15 | 2019-04-19 | 清华大学 | 一种基于剪枝顺序主动学习的模型压缩方法 |
WO2020042658A1 (zh) * | 2018-08-31 | 2020-03-05 | 华为技术有限公司 | 数据处理方法、装置、设备和系统 |
CN110874634A (zh) * | 2018-08-31 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 神经网络的优化方法及装置、设备和存储介质 |
CN110909861A (zh) * | 2018-09-17 | 2020-03-24 | 北京市商汤科技开发有限公司 | 神经网络优化方法及装置、电子设备和存储介质 |
CN109523017A (zh) * | 2018-11-27 | 2019-03-26 | 广州市百果园信息技术有限公司 | 深度神经网络的压缩方法、装置、设备及存储介质 |
CN111199282A (zh) * | 2019-12-31 | 2020-05-26 | 的卢技术有限公司 | 一种卷积神经网络模型的剪枝方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116468100A (zh) * | 2023-03-06 | 2023-07-21 | 美的集团(上海)有限公司 | 残差剪枝方法、装置、电子设备和可读存储介质 |
CN116468100B (zh) * | 2023-03-06 | 2024-05-10 | 美的集团(上海)有限公司 | 残差剪枝方法、装置、电子设备和可读存储介质 |
CN117829242A (zh) * | 2024-03-04 | 2024-04-05 | 腾讯科技(深圳)有限公司 | 模型处理方法及相关设备 |
CN117829242B (zh) * | 2024-03-04 | 2024-05-03 | 腾讯科技(深圳)有限公司 | 模型处理方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110134659B (zh) | 运行程序的日志监控系统、方法、介质及设备 | |
US8605092B2 (en) | Method and apparatus of animation planning for a dynamic graph | |
US10088974B2 (en) | Summarization and communication of large data sets | |
CN112001483A (zh) | 一种剪枝神经网络模型的方法和装置 | |
CN104613976A (zh) | 确定路径的方法及装置 | |
CN110428046A (zh) | 神经网络结构的获取方法及装置、存储介质 | |
CN109388557A (zh) | 一种控件遍历方法、计算机可读存储介质及终端设备 | |
CN112000763A (zh) | 兴趣点竞争关系确定方法、装置、设备和介质 | |
CN112148926A (zh) | 一种图数据流的处理方法、处理装置和存储介质 | |
CN111177342A (zh) | 基于双向转换的知识图谱交互式可视化查询语言 | |
CN112965710A (zh) | 计算图的处理方法、装置和系统 | |
CN112948608A (zh) | 图片查找方法、装置、电子设备及计算机可读存储介质 | |
US11949635B2 (en) | Proactive and reactive directing of conversational bot-human interactions | |
Price et al. | An Exploration of Data-Driven Hint Generation in an Open-Ended Programming Problem. | |
CN114462582A (zh) | 基于卷积神经网络模型的数据处理方法及装置、设备 | |
CN109189468B (zh) | 一种审批数据源配置化接入及xml映射配置化系统 | |
Carniel et al. | Handling fuzzy spatial data in R using the fsr package | |
CN112766505B (zh) | 非单调推理在逻辑动作语言系统刻画中的知识表示方法 | |
CN113553268A (zh) | 一种ai智能软件测试方法 | |
CN111209463B (zh) | 互联网数据采集方法及装置 | |
CN114356744A (zh) | 基于机器学习的应用程序界面遍历方法及设备 | |
CN112015382A (zh) | 一种处理器构架解析方法、装置、设备及储存介质 | |
CN112000327A (zh) | 一种可视化拖拽式的复合算子实现方法 | |
CN116909573A (zh) | 计算图的节点融合方法、装置、电子设备及存储介质 | |
US20210311843A1 (en) | System verification program generation device, system verification program generation method, and recording medium storing system verification program generation program |
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 |