CN114692816B - 神经网络模型的处理方法和设备 - Google Patents
神经网络模型的处理方法和设备 Download PDFInfo
- Publication number
- CN114692816B CN114692816B CN202011621646.3A CN202011621646A CN114692816B CN 114692816 B CN114692816 B CN 114692816B CN 202011621646 A CN202011621646 A CN 202011621646A CN 114692816 B CN114692816 B CN 114692816B
- Authority
- CN
- China
- Prior art keywords
- network layer
- model
- compressed
- neural network
- target
- 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
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
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
技术领域
本申请涉及神经网络技术领域,特别涉及一种神经网络模型的处理方法和设备。
背景技术
人工神经网络(artificial neural network,ANN)模型,简称神经网络(neuralnetwork, NN)模型,是一种模仿生物神经网络的结构和功能的数学模型或计算模型。
相关技术中,神经网络模型已经被广泛应用于语音识别(如语音信号的特征提取)、计算机视觉(如图像分类)、医学医疗(如医学影像的分析)以及智能博弈(如人机对战)等领域,均取得了优异的成果。
但是,随着待处理的数据规模和复杂度的增加,神经网络模型的规模与计算量都在成倍增长,对运行神经网络模型的设备的性能要求相应提高,使得神经网络模型的使用场景受限。
发明内容
本申请提供了一种神经网络模型的处理方法和设备,可以解决相关技术中神经网络模型的使用场景受限的问题。
第一方面,提供了一种神经网络模型的处理方法,预先确定好需要压缩处理的至少一类网络层,然后接收待处理的目标神经网络模型,之后根据预先确定好的至少一类网络层在目标神经网络模型中确定出属于至少一类网络层的至少一个待压缩网络层,最后对确定出的至少一个待压缩网络层进行压缩处理。
模型处理设备可以确定接收到的神经网络模型中的待压缩网络层,并对该待压缩网络层进行压缩处理,实现了对神经网络模型的压缩。压缩后的神经网络模型规模较小,可以适用于更多的应用场景。
可选地,至少一类网络层可以包括:全连接(fully convolution,FC)层、卷积(convolution) 层以及与卷积层连接的批归一化(batch normalization,BN)层。
全连接层和卷积层包括神经网络模型中的大部分参数,需要对全连接层和卷积层进行压缩才能实现神经网络模型的压缩,批归一化层受卷积层压缩的影响也需要进行压缩。
可选地,该方法还可以包括预先确定好禁止压缩处理的至少一类算子,然后在接收到的目标神经网络模型中确定出属于至少一类算子的目标算子,之后在对至少一个待压缩网络层进行压缩处理时,对至少一个待压缩网络层中除目标算子之外的算子进行压缩处理。
目标算子在神经网络模型中执行核心的运算,禁止压缩处理神经网络模型中的目标算子,可以确保压缩后的神经网络模型的可靠性。
可选地,该方法还可以包括:确定至少一个待压缩网络层中的第一网络层和第二网络层,该第一网络层与第二网络层采用相加或相乘的算子连接。在对至少一个待压缩网络层进行压缩处理时,采用相同的压缩比例,对该第一网络层和第二网络层进行压缩处理。
相加或相乘的算子要求采用相加或相乘的算子连接的两个网络层结构大小一致,确定至少一个待压缩网络层中的第一网络层和第二网络层并采用相同的压缩比例压缩,可以确保压缩后的第一网络层和第二网络层结构大小依然一致。
可选地,该方法还可以包括:在对至少一个待压缩网络层进行压缩处理之前,显示目标神经网络模型的结构图,并且在结构图中标注至少一个待压缩网络层。此外,在对至少一个待压缩网络层进行压缩处理时,也可以在结构图中标注待压缩网络层中被压缩处理掉的通道。
采用可视化显示神经网络模型的结构图,并显示被压缩处理掉的通道,使得用户可以实时了解神经网络模型的压缩过程。
可选地,该方法还可以包括:在对至少一个待压缩网络层进行压缩处理的过程中,显示目标神经网络模型的信息。
显示神经网络模型的信息,有助于用户了解压缩得到的神经网络模型的性能。
可选地,该方法还可以包括:在对至少一个待压缩网络层进行压缩处理之后,显示压缩处理得到的至少一个神经网络模型的信息。并可以接收针对至少一个神经网络模型中任一神经网络模型的选择指令,之后根据选择指令,输出任一神经网络模型。
对于压缩得到多个神经网络模型的情况,显示每个神经网络模型的信息,以便用户根据神经网络模型的信息选择需要的神经网络模型。模型处理设备根据接收到的选择指令导出选择指令所指示的神经网络模型,从而完成模型压缩工作。
可选地,在对至少一个待压缩网络层进行压缩处理之前,可以预先确定好用于压缩处理的多个算法,并在多个算法中筛选出用于对目标神经网络模型进行压缩处理的目标算法。之后,采用目标算法对至少一个待压缩网络层进行压缩处理。
预置多个算法可以针对不同的神经网络模型选择不同的算法,压缩的效果更好。
可选地,多个算法为基于增强学习或强化学习的算法。
增强学习或强化学习的算法可以学习神经网络模型的剪枝策略自动进行剪枝,更灵活。
可选地,该方法还可以包括接收处理信息,处理信息可以包括:目标神经网络模型用于执行的目标任务和压缩处理指标中的至少一种。其中,压缩处理指标包括:压缩处理的时长,压缩处理得到的神经网络模型的时延,压缩处理得到的神经网络模型的数据量,以及压缩处理得到的神经网络模型的个数中的至少一种。在多个算法中筛选目标算法时,可以根据处理信息和目标神经网络模型中的至少一种,在多个算法中筛选目标算法。
根据目标神经网络模型用于执行的目标任务和/或压缩指标来自动筛选目标算法,无需人为适配,更加灵活。
可选地,在采用目标算法对至少一个待压缩网络层进行压缩处理之前,方法还包括:先接收目标神经网络模型用于处理的目标数据集。之后根据目标数据集和目标神经网络模型,确定目标算法的超参数。最后根据目标算法的超参数,采用目标算法对至少一个待压缩网络层进行压缩处理。
根据目标数据集和目标神经网络模型自动确定目标算法的超参数,无需认为设置,灵活性更好。
可选地,在对至少一个待压缩网络层进行压缩处理之前,方法还包括:接收第一指令,第一指令用于指示目标神经网络模型中需要压缩处理的第三网络层。当至少一个待压缩网络层不包括第三网络层时,将第三网络层作为待压缩网络层加入至少一个待压缩网络层,以更新至少一个待压缩网络层。
可选地,第一指令还用于指示:第三网络层的压缩比例,或者,第三网络层的压缩比例的范围。在对至少一个待压缩网络层进行压缩处理时,根据第三网络层的压缩比例,或者,第三网络层的压缩比例的范围,对第三网络层进行压缩处理。
可以在确定好的至少一个待压缩网络层中根据需求增加待压缩网络层,或者修改至少一个待压缩网络层中的某个网络层的压缩比例,更加灵活。
可选地,在对至少一个待压缩网络层进行压缩处理之前,方法还包括:接收第二指令,第二指令用于指示目标神经网络模型中禁止压缩处理的第四网络层。当至少一个待压缩网络层包括第四网络层时,在至少一个待压缩网络层中删除第四网络层,以更新至少一个待压缩网络层。
可以在确定好的至少一个待压缩网络层中根据需求移除某个待压缩网络层,更加灵活。
第二方面,提供了一种模型处理设备,该模型处理设备包括用于执行第一方面提供的任一种模型处理方法的各个模块。
第三方面,提供了一种模型处理设备,该模型处理设备包括:处理器和存储器,该处理器用于执行该存储器中存储的程序,以实现第一方面提供的任一种神经网络模型的处理方法。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行如第一方面提供的任一种神经网络模型的处理方法。
第五方面,提供了一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行第一方面提供的任一种神经网络模型的处理方法。
上述第二方面至第五方面的有益效果可以参见上述第一方面中相应特征的有益效果,本申请实施例在此不做赘述。
附图说明
图1是本申请实施例提供的一种神经网络模型的结构图;
图2是本申请实施例提供的一种模型处理设备的结构示意图;
图3是本申请实施例提供的一种神经网络模型的处理方法的流程图;
图4是本申请实施例提供的另一种神经网络模型结构图;
图5是本申请实施例提供的又一种神经网络模型结构图;
图6是本申请实施例提供的一种神经网络模型信息的示意图;
图7是本申请实施例提供的另一种神经网络模型信息的示意图;
图8是本申请实施例提供的一种模型处理设备的显示界面的示意图;
图9是本申请实施例提供的另一种模型处理设备的结构示意图。
具体实施方式
下面结合附图详细介绍本申请实施例提供的神经网络模型的处理方法和设备。
神经网络模型是一种运算模型,通常都是对某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。神经网络模型包括以下至少一种网络层:批归一化层、卷积层、激活层、池化层、以及全连接层等,在神经网络模型中,每种网络层部署的数量可为一个或多个。每个网络层包括一个或多个神经元,不同网络层的至少部分神经元之间存在连接关系,至少部分连接关系都具有权重。
示例地,图1是本申请实施例提供的一种神经网络模型的结构图,如图1所示,该神经网络模型可以包括4个网络层:101、102、103以及104,每个网络层均可以包括至少一个神经元 N。该4个网络层可以均为全连接层,参考图1,每个网络层中的任意一个神经元N均与相邻网络层中的每个神经元N连接。
神经元,也称作“通道”。每个通道代表一种激活函数,也称为激励函数。在使用神经网络模型进行数据处理时,实质是利用神经网络模型中的通道进行数据处理,也即是利用该通道所代表的激活函数进行数据处理。
在本申请实施例中,神经网络模型包括但不限于卷积神经网络(convolutionalneural network,CNN)模型、循环神经网络(recurrent neural network,RNN)模型、深度神经网络(deep neural networks,DNN)模型、前馈神经网络(feedforward neural network,FNN)模型、深度信念网络(deep belief network,DBN)模型、生成式对抗网络(generativeadversarial networks,GAN)模型以及其他神经网络模型。
目前,神经网络模型已经被广泛应用于各个技术领域,均取得了不错的效果。但是,随着神经网络模型用于处理的数据的规模和复杂度的增加,神经网络模型的运算规模和对计算资源的消耗也相应增大,使得神经网络模型的部署场景受限。
为了解决上述问题,需要对神经网络模型进行压缩处理,以最大限度的减小神经网络模型对于计算资源的消耗。相关技术中,一般采用模型剪枝的方法对神经网络模型进行压缩处理,模型剪枝的主要思想就是将神经网络模型中相对“不重要”的权重剔除。
在一种模型剪枝的方法中,模型处理设备可以基于人工设定的剪枝规则对神经网络模型进行剪枝。比如,模型处理设备可以按照一定的规则对神经网络模型中的多个权重进行排序,修剪排序靠后的权重;模型处理设备可以在权重较少的第一层中剪掉更少的权重,而对全连接层剪掉更多的权重等。
但是,基于人工设定的剪枝规则的剪枝方法的剪枝效果较差,剪枝后的神经网络模型的精度损失较多。并且,对于一个神经网络模型所设定的剪枝规则不能应用到另一个神经网络模型,而且剪枝规则需要技术人员根据其经验来设定,灵活性较差。
在另一种模型剪枝的方法中,模型处理设备可以采用基于学习的剪枝算法(比如进化算法、自动增强算法、可微分方法等)对神经网络模型进行剪枝,此种方法可以实现模型处理设备自动地学习神经网络模型的剪枝策略,不需要预设剪枝规则。但是,此种方法需要技术人员理解待剪枝的神经网络模型和剪枝算法,以及剪枝算法的调参技巧,还需要根据待剪枝的神经网络模型对剪枝算法进行适配,灵活性也较差。
根据上述分析可知,目前神经网络模型的部署场景受限,而对于神经网络模型的压缩方法的灵活性较差,使得神经网络模型的应用灵活性较差。
为了解决该技术问题,本申请实施例提供了一种神经网络模型的处理方法,不仅可以实现对神经网络模型的压缩,而且灵活性较好。
本申请实施例提供的神经网络模型的处理方法可以用于模型处理设备,在讲述本申请实施例提供的神经网络模型的处理方法之前,本申请实施例首先对本申请实施例提供的模型处理设备进行介绍。示例地,图2是本申请实施例提供的一种模型处理设备的结构图,该模型处理设备可以包括:处理器201、存储器202、通信接口203和总线204。其中,总线204用于连接处理器201、存储器202和通信接口203。通过通信接口203(可以是有线或者无线)可以实现与其他设备之间的通信连接。存储器202中存储有计算机程序2021,该计算机程序2021用于实现各种应用功能。当本申请实施例提供的模型处理设备中的各个模块采取软件模块的方式实现时,这些软件模块对应的程序可以存储在模型处理设备的存储器202中。
应理解的是,在本申请实施例中,处理器201可以是CPU,该处理器201还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、GPU或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
处理器201还可以进一步包括硬件芯片,上述硬件芯片可以是专用集成电路(ASIC),可编程逻辑器件(PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(CPLD),现场可编程逻辑门阵列(FPGA),通用阵列逻辑(GAL)或其任意组合。
存储器202可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、便携式只读存储器(compactdisc read-only memory,CD-ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。存储器202还可以包括上述种类存储器的任意组合。
总线204除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线204。
接下来,将介绍本申请实施例提供的神经网络模型的处理方法,该方法应用于图2所示的模型处理设备。示例地,图3是本申请实施例提供的一种神经网络模型的处理方法的流程图,该方法可以包括以下步骤。
步骤301、确定需要压缩处理的至少一类网络层,禁止压缩处理的至少一类算子,以及用于压缩处理的多个算法。
模型处理设备中可以预先配置好对神经网络模型进行压缩处理的规则,该规则可以包括神经网络模型中需要压缩处理的至少一类网络层,禁止压缩处理的至少一类算子,以及用于对神经网络模型压缩处理可以采用的多个算法。其中。算子是指神经网络模型中的运算单元,算子的大小在此不做限制,算子可以为网络层、通道或是通道所代表的激活函数内的运算符。
示例地,模型处理设备中可以配置有网络层列表、算子列表和算法列表。网络层列表包括需要压缩处理的网络层的类型,算子列表包括禁止压缩处理的算子的类型,算法列表包括用于对神经网络模型压缩处理可以采用的算法。
其中,需要压缩处理的至少一类网络层可以包括神经网络模型中的:全连接层、卷积层以及与卷积层连接的BN层。以卷积神经网络模型为例,由于全连接层和卷积层是卷积神经网络模型的主要组成部分,全连接层和卷积层包括了卷积神经网络模型中的绝大部分权重,因此需要对全连接层和卷积层进行压缩来实现对卷积神经网络模型的压缩。又由于BN层是与卷积层连接的网络层,且卷积层的压缩会影响BN层,BN层可以称作剪枝影响层,因此,BN层也需要相应地进行压缩。
禁止压缩处理的至少一类算子可以包括:执行相加、相乘、拼接和均分等操作的算子,以及单操作算子,该单操作算子只有一个输入,且该算子与该输入的连接关系的权值为1。
用于对神经网络模型进行压缩处理多个算法可以包括:基于增强学习或强化学习的算法等。模型处理设备可以通过模型剪枝的方法对神经网络模型进行压缩处理,而基于增强学习或强化学习的算法可以学习神经网络模型的剪枝策略自动进行剪枝,因此一般选择基于增强学习或强化学习的算法。此外,该多个算法还可以包括其他算法,比如采用的多个算法还可以包括进化算法。
示例地,该多个算法可以包括:用于模型压缩的自动机器学习(auto machinelearning for model compression,AMC)算法、自动可瘦身神经网络(auto slimmablenetwork,AutoSlim) 模型、神经网络适配(neural network adaptation,NetAdapt)算法。其中,NetAdapt算法可以适用于移动应用程序平台,相应地,模型处理设备可以为移动设备,灵活性较好。
步骤302、接收目标神经网络模型、目标数据集以及处理信息。
模型处理设备可以接收外部输入的目标神经网络模型、目标数据集以及处理信息。
目标神经网络模型是指待压缩处理的神经网络模型,其中,目标神经网络模型可以为预先训练好的神经网络模型(已有权重等参数),也可以为没有经过训练的神经网络模型结构文件(不具有权重等参数)。一般情况下,卷积神经网络模型的应用较多,因此目标神经网络模型多为卷积神经网络模型,例如,目标神经网络模型可以为:mobilenet v1、mobilenet v2、 resnet、vgg16、或者洗牌网络(shufflenet)这几种卷积神经网络模型。
目标数据集是指需要使用目标神经网络模型处理的数据集,也是压缩后的神经网络模型所要处理的数据集。神经网络模型一般被用于语音识别、计算机视觉或者医学医疗等领域,从而目标数据集一般为语音数据或者图像数据。示例地,以图像数据为例,目标数据集可以为一组图片。
处理信息可以包括:目标神经网络模型用于执行的目标任务和压缩处理指标中的至少一种。其中,目标神经网络模型用于执行的目标任务是指目标神经网络模型对目标数据集所要执行的处理操作,也是压缩后的神经网络模型对目标数据集所要执行的处理操作。示例地,以目标数据集为一组图片为例,目标任务可以为图像分类、图像聚类、图像分割、目标检测或目标追踪等。压缩处理指标包括:压缩处理的时长,压缩处理得到的神经网络模型的时延,压缩处理得到的神经网络模型的数据量,以及压缩处理得到的神经网络模型的个数中的至少一种。其中,神经网络模型的时延是指神经网络模型处理数据集所花费的时长;神经网络模型的数据量是指神经网络模型包含各类参数的量,可以理解为神经网络模型的规模。
可选地,模型处理设备中可以预先存储有一些神经网络模型,该目标神经网络模型可以为模型处理设备中预先存储的任一模型。此时,在步骤302中,无需接收目标神经网络模型,而是可以根据用户的指示在预先存储的多个神经网络模型中确定目标神经网络模型,或者随机选择任意一个神经网络模型,本申请实施例对此不做限定。
步骤303、显示目标神经网络模型的结构图。
模型处理设备在获取到待处理的目标神经网络模型之后,可以通过网络推理得到目标神经网络模型所包括的网络层、通道以及各个通道之间的连接情况,进而可以绘制神经网络模型的结构图。模型处理设备可以具有显示界面,可以显示神经网络模型的结构图。
示例地,图4为一种模型处理设备的显示界面的示意图,图4示出了一个神经网络模型的结构图,如图4所示,该神经网络模型中的输入与输出之间包括6个网络层,其中,从输入到输出依次连接的前五个网络层均包括9个通道(C1~C9),最后一个网络层包括7个通道 (C1~C7)。并且,该神经网络模型还包括:执行相加运算的算子,该算子的输入为神经网络模型的输入和第四个网络层的输出,该算子的输出为第五个网络层的输入。
可选地,在显示结构图时,还可以在结构图中标注每个网络层的类型。例如,如图4所示,在每个网络层的右边相应地标注出了该网络层的类型,参考图4,从输入到输出依次为:卷积层、BN层、卷积层、BN层、逐通道卷积(depthwise convolution)层以及FC层。
可选地,在显示结构图时,还可以标注神经网络模型中的结构块。例如,图4中标注出了从输入至输出依次连接的第一个卷积层、第一个BN层、第二个卷积层和第二个BN层所组成的残差块(residual block)。由此可知,该第一个卷积层、第一个BN层、第二个卷积层和第二个BN层之间是残差连接的。
将神经网络模型的结构可视化显示,可以使用户更容易理解神经网络模型的结构。
步骤304、确定目标神经网络模型中属于至少一类网络层的至少一个待压缩网络层,以及目标神经网络模型中属于至少一类算子的目标算子。
模型处理设备在识别出目标神经网络模型所包括的网络层、通道以及各个通道之间的连接情况之后,可以查询模型处理设备中预先配置好的压缩处理的规则。例如,查询网络层列表,根据网络层列表中记载的待压缩网络层的类型,在目标神经网络模型的多个网络层中确定出需要压缩处理的网络层;查询算子列表,根据算子列表中记载的禁止压缩处理的算子类型,在目标神经网络模型中的多个算子中确定出禁止压缩处理的算子。
可选地,模型处理设备还可以确定至少一个待压缩网络层中的第一网络层和第二网络层,第一网络层与第二网络层采用相加或相乘的算子连接。由于相加或相乘的算子要求通过该算子连接在一起的两个网络层结构大小一致,因此需要确保压缩处理后的目标神经网络模型中的网络层依然满足相加或相乘的算子的要求。从而,需要在压缩处理之前确定出采用相加或相乘的算子连接的第一网络层与第二网络层,使得模型处理设备在压缩处理时能够对确定出的该第一网络层与第二网络层采用相同的压缩比例进行压缩,确保压缩后的第一网络层与第二网络层满足算子的要求。
示例地,如图4所示,由输入至输出起第二个BN层和逐通道卷积层通过加法算子连接,模型处理设备可以在模型剪枝之前确定出该第二个BN层和逐通道卷积层,并在确定第二个 BN层与逐通道卷积层的剪枝比例时,需要确保第二个BN层与逐通道卷积层的剪枝比例相同,使得进行模型剪枝后的第二个BN层与逐通道卷积层的结构一致。
步骤305、在结构图中标注至少一个待压缩网络层。
模型处理设备在确定出需要压缩处理的网络层后,可以在神经网络模型的结构图中示出的多个网络层中,标注出需要压缩处理的网络层。
示例地,如图4所示,两个卷积层和一个FC层可以为待压缩网络层,该两个卷积层和一个FC层所包括的每个通道可以用蓝色标注。两个BN层为剪枝影响层,也属于待压缩网络层,BN层所包括的每个通道可以用绿色标注。
可选地,对于不可压缩的网络也可以进行标注。例如,图4中的逐通道卷积层为不可压缩网络层,逐通道卷积层中的每个通道可以用橘色标注。
步骤306、根据目标神经网络模型和处理信息中的至少一种,在多个算法中筛选目标算法。
一方面,模型处理设备可以根据处理信息在多个算法中筛选目标算法。比如,当处理信息包括目标神经网络模型用于执行的目标任务时,模型处理设备可以根据目标神经网络模型用于执行的目标任务的不同来选择不同的算法。示例地,以处理图像数据为例,若执行图像分类任务则采用AMC算法为目标算法,若执行目标检测任务则采用NetAdapt算法为目标算法。又比如,当处理信息包括压缩处理指标时,若压缩处理指标中的压缩处理的时长较短,则采用AMC算法。又比如,当处理信息包括压缩处理指标时,若压缩处理指标中包括对神经网络模型的时延要求,则采用NetAdapt算法为目标算法。又比如,当处理信息包括压缩处理指标时,若压缩处理指标中要求压缩处理得到的神经网络模型的个数为多个,则采用AutoSlim算法为目标算法。
另一方面,模型处理设备可以根据目标神经网络模型在多个算法中筛选目标算法。比如,接收到的神经网络模型只有模型结构,而没有训练好的参数,则采用AutoSlim算法为目标算法。
当然,模型处理设备也可以根据目标神经网络模型和处理信息,在多个算法中筛选用于对目标神经网络进行压缩处理的目标算法,本申请实施例对此不作限定。
步骤307、根据目标数据集和目标神经网络模型,确定目标算法的超参数。
目标算法的超参数可以包括剪枝比例和迭代次数等。
一方面,模型处理设备可以根据目标数据集确定目标算法的剪枝比例。比如,模型处理设备可以计算目标神经网络模型所包含的参数量和/或计算量,并根据目标数据集的参数量和 /或计算量,确定目标神经网络模型的规模值(用于表征神经网络模型的规模的数值)。之后,模型处理设备再根据该规模值确定目标算法的剪枝比例,其中,剪枝比例与目标神经网络模型的规模值负相关。示例地,对于规模值小于或等于第一规模阈值的目标神经网络模型归类为小模型,对于规模值大于第一规模阈值的目标神经网络模型归类为大模型。对于小模型,设置剪枝比例为a,对于大模型,设置剪枝比例为b,其中,a>b。示例地,a可以为70%,b 可以为50%。
另一方面,模型处理设备可以根据目标神经网络模型用于执行的目标任务和目标数据集确定目标算法的迭代次数。以目标数据集为一组图片,目标神经网络模型用于执行图片分类任务为例,若图片数量小于或等于第一数量阈值,则将目标数据集归类为小数据集;若图片数量大于第一数量阈值小于或等于第二数量阈值,则将目标数据集归类为中等数据集;若图片数量大于第二数量阈值,则将目标数据集归类为大数据集。假设目标数据集包括多类图片,若目标数据集中平均每类图片的数量小于或等于第三数量阈值,则将目标数据集归类为困难数据集;若目标数据集中平均每类图片的数量大于第四数量阈值,则将目标数据集归类为容易数据集。目标数据集数量越大、分类难度越低,设置的迭代次数就越小;目标数据集数量越小,分类难度越高,设置的迭代次数就越大。
示例地,第一数量阈值可以为5万个,第二数量阈值可以为30万个,第三数量阈值可以为 1000个。对于大数据集和容易数据集,设置的迭代次数可以为800次,对于小数据集和困难数据集,设置的迭代次数可以为1200次。
步骤308、根据目标算法的超参数,采用目标算法对至少一个待压缩网络层中除目标算子之外的算子进行压缩处理。
以通过模型剪枝实现压缩处理为例,根据设置好的超参数执行该目标算法对目标神经网络模型的待压缩网络层中除目标算子之外的算子进行剪枝。
可选地,对于至少一个待压缩网络层中的第一网络层和第二网络层,采用相同的压缩比例进行压缩处理。
在步骤308中,模型处理设备可以执行多次对目标神经网络模型的压缩处理,本申请实施例对此不作限定。
步骤309、在压缩处理过程中,在结构图中标注待压缩网络层中被压缩处理掉的通道。
以通过模型剪枝实现压缩处理为例,在对目标神经网络模型进行剪枝的过程中,在模型处理设备所显示的目标神经网络模型的结构图中,实时标注出待压缩网络层中被剪枝掉的通道。
示例地,假设图4中第一个卷积层和第一个BN层中从左往右数的第3个通道、第6个通道和第8个通道被剪枝掉,第二个卷积层和第二个BN层中从左往右数的第1个通道、第8个通道和第9个通道被剪枝掉,则如图5所示,上述被剪枝掉的通道可标记为灰色。
可选地,在对至少一个待压缩网络层进行压缩处理过程中,模型处理设备还可以显示目标神经网络模型的信息。
其中,该神经网络模型的信息可以包括参数量、计算量、精度和时延等。在对目标神经网络模型进行剪枝的过程中,实时显示出当前所得到的神经网络模型的参数,有助于用户了解模型剪枝的进程和效果。
可选地,神经网络模型的信息还可以包括:神经网络模型参数中的精度结合时延的反馈信息,或者精度结合计算量的反馈信息。
示例地,神经网络模型的精度为a,时延为l,计算量为f。则神经网络模型的精度结合时延的反馈可以表示为:a_l=-(1-a)×log(l×s)g,精度结合计算量的反馈可以表示为a_f=-(1-a)×log(f×s)g。其中,s和g为系数,用户可以根据自己的需求定义。模型处理设备可以在对至少一个待压缩网络层进行压缩处理过程中,显示神经网络模型的a_l和a_f。
步骤310、在对至少一个待压缩网络层进行压缩处理后,显示压缩处理得到的至少一个神经网络模型的信息。
在对目标神经网络模型进行压缩处理完成后,可以得到至少一个神经网络模型,模型处理设备可以在显示界面显示所得到的每个神经网络模型对应的信息。为得到的神经网络模型显示其信息,可以方便用户了解得到的神经网络模型的性能。
示例地,若压缩处理采用的目标算法为AutoSlim算法,则模型处理设备对目标神经网络模型进行压缩处理后可以得到多个不同的神经网络模型,对于每个神经网络模型均可以显示其对应的信息。又示例地,以采用进化算法对目标神经网络模型进行剪枝为例,模型处理设备可以显示进化算法生成的每一代模型在验证数据集上的精度与时延的散点图。如图6所示,图中的每一个点代表进化算法生成的一个神经网络模型,该散点图中每个点对应的横坐标表示该点所代表的神经网络模型的时延,每个点对应的纵坐标表示该点所代表的神经网络模型的精度。
可选地,模型处理设备可以标注多个不同的神经网络模型中,在不同条件下性能最优的神经网络模型。示例地,图7中的每个点表示一个神经网络模型,黑色的点表示在该点对应的时延下性能最优的神经网络模型。
可选地,模型处理设备还可以显示多个不同的神经网络模型在验证数据集上的精度与时延的帕累托前沿曲线,如图7所示,该帕累托前沿曲线上的点表示:多个不同的神经网络模型中,各个时延下精度最优的至少部分神经网络模型。
需要说明的是,在用户选中图6或图7中的任意一个点时,模型处理设备可以显示该点代表的神经网络模型的精度和时延的值。比如,图7中所示的点P所代表的神经网络模型的精度为:61.78%,时延为:44.74毫秒(ms)。
还需要说明的是,压缩处理得到的至少一个神经网络模型可以是对目标神经网络模型经过一次压缩处理之后得到的,也可以是对目标神经网络模型经过多次压缩处理之后得到的。
步骤311、接收针对至少一个神经网络模型中任一神经网络模型的选择指令。
示例地,如图7所示,用户在选择图中的任意一个点时,模型处理设备可以显示该点表示的神经网络模型的导出按钮B。进一步的,若用户点击了该导出按钮B,则模型处理设备就会收到选择指令,该选择指令用于指示将用户选中的神经网络模型导出。
步骤312、根据选择指令,输出任一神经网络模型。
模型处理设备根据选择指令,从得到多个不同的神经网络模型中确定选择指令所指示的神经网络模型,并将其导出。
以上实施例中以目标神经网络中的待压缩网络层由模型处理设备自动确定为例,需要说明的是,模型处理设备也可以根据接收到的指令,确定待压缩网络层。还需要说明的是,在步骤308中,模型处理设备可以执行多次对目标神经网络模型的压缩处理,此时,模型处理设备在每次对目标神经网络模型进行一次压缩处理前,均可以根据接收到的指令,确定目标神经网络模型中的待压缩网络层。
可选地,在对至少一个待压缩网络层进行压缩处理之前,模型处理设备可以接收第一指令,该第一指令用于指示目标神经网络模型中需要压缩处理的第三网络层。当至少一个待压缩网络层不包括第三网络层时,模型处理设备根据第一指令的指示将第三网络层确定为待压缩网络层,以更新至少一个待压缩网络层。第一指令还可以用于指示第三网络层的压缩比例,或者,第三网络层的压缩比例的范围。模型处理设备可以根据第三网络层的压缩比例,或者,第三网络层的压缩比例的范围,对第三网络层进行压缩处理。可选地,若至少一个待压缩网络层包括第三网络层,模型处理设备可以判断第一指令是否用于指示第三网络层的压缩比例,当第一指令是否用于指示第三网络层的压缩比例时,模型处理设备可以根据第一指令的指示设置第三网络层的压缩比例。比如将剪枝比例由当前的75%设置为50%,其中,该当前的剪枝比例75%为步骤307中确定的。可以看出,模型处理设备可以根据用户输入的第一指令增加待压缩网络层,或者设置待压缩网络层的压缩比例,提高了模型处理设备的灵活性。
可选地,在对至少一个待压缩网络层进行压缩处理之前,模型处理设备还可以接收第二指令,该第二指令用于指示目标神经网络模型中禁止压缩处理的第四网络层。当至少一个待压缩网络层包括第四网络层时,在至少一个待压缩网络层中删除第四网络层,以更新至少一个待压缩网络层。可以看出,步骤304中确定好的待压缩网络层可以通过第二指令删除,提高了灵活性。
应理解的是,模型处理设备在接收第一指令或第二指令之前,还可以接收到显示指令,该显示指令可以用于指示模型处理设备显示指令接收入口,该指令接收入口用于接收第一指令或第二指令。可选地,该显示指令还可以用于指示模型处理设备显示第三网络层或第四网络层的属性信息,其中,该属性信息可以包括:网络层的类型、原始通道数、目前通道数以及剪枝比例等信息。进一步的,第一指令或第二指令所指示的信息可以是对该属性信息的修改。
示例地,图8为模型处理设备的一种显示界面的示意图,图8中示出了模型处理设备的显示界面F,该显示界面F包括一个神经网络模型的结构图,该神经网络模型的结构图仅示出了神经网络模型的网络层以及连接关系,并未示出网络层所包括的通道。继续参考图8,显示指令所指示的网络层(也即是图8中被选中的网络层)为从输入至输出依次连接的第五个网络层(卷积层),用标注框M标注。模型处理设备根据该显示指令在结构图的右上角显示了指令接收框,该指令接收框内显示有:剪枝状态指令入口X1、剪枝比例指令入口X2、剪枝比例范围下限指令入口X3和剪枝比例范围上限指令入口X4。其中,该剪枝状态指令入口X1用于接收设置网络层是否进行剪枝的指令,剪枝比例指令入口X2用于接收设置网络层剪枝比例的指令,剪枝比例范围下限指令入口X3用于接收设置网络层剪枝比例范围下限的指令,剪枝比例范围上限入口X4用于接收设置网络层剪枝比例范围上限的指令。例如,用户可以在剪枝状态指令入口X1输入:是,或者true(真),用于指示被选中的网络层为可剪枝的网络层;用户可以在剪枝比例指令入口X2输入剪枝比例的值:50%,用于指示被选中的网络层的剪枝比例设置为50%;用户还可以在剪枝比例范围下限指令入口X3输入剪枝比例范围下限:20%,以及在剪枝比例范围上限入口X4输入剪枝比例范围上限:100%,用于指示被选中的网络层的剪枝比例范围为20%~100%。此外,模型处理设备在指令接收框上方还可以显示上述显示指令所指示的网络层的属性信息框,该属性信息框内可以显示有该网络层的属性信息,比如类型:卷积层,原始通道数:64,目前通道数:48,剪枝比例:75%。需要说明的是,模型处理设备在显示图8所示的界面图之前,对图8所显示的结构图对应的神经网络模型已经进行过至少一次压缩处理。图8中的属性信息中的原始通道数(64)表示网络层未被压缩处理之前的通道数;图8中的属性信息中的目标通道数(48)表示在神经网络模型上一次被压缩处理后该网络层中的通道数;图8中的属性信息中的剪枝比例(75%)表示在神经网络模型上一次被压缩处理过程中该网络层的剪枝比例。
综上所述,本申请实施例提供了一种神经网络模型的处理方法,模型处理设备可以确定接收到的神经网络模型中的待压缩网络层,并对该待压缩网络层进行压缩处理,实现了对神经网络模型的压缩处理。压缩处理后的神经网络模型规模较小,可以适用于更多的应用场景。
其次,本申请实施例提供的方法采用了基于学习的算法,可以自动学习剪枝策略进行剪枝,无需技术人员根据其经验来设定剪枝规则,而且剪枝效果也比基于人工设定的剪枝规则的剪枝方法好。又由于采用了基于学习的算法,因此该方法可以适用于不同的神经网络模型,灵活性较高。
再者,模型处理设备可以根据预设的规则自动确定神经网络模型中的待压缩网络层和禁止压缩处理的算子,还可以根据接收到的神经网络模型和处理信息自动筛选算法,无需技术人员来编程适配,技术人员也无需理解待剪枝的神经网络模型和剪枝算法,以及剪枝算法的调参技巧。因此,神经网络模型的处理方法的灵活性更高。
此外,本申请实施例提供的方法可以将整个模型压缩过程均可视化显示,并且还可以实时显示神经网络模型的信息。还可以根据接收到的指令调整待压缩网络层,以及根据指令选择需要导出的神经网络模型,也提高了灵活性。
图9是本申请实施例提供的一种模型处理设备,该模型处理设备可以用于执行本申请实施例提供的神经网络模型的处理方法,如图9所示,该模型处理设备可以包括:
第一确定模块901,用于确定需要压缩处理的至少一类网络层。该第一确定模块901的功能实现可以参考上述步骤301的相关描述。
第一接收模块902,用于接收待处理的目标神经网络模型。该第一接收模块902的功能实现可以参考上述步骤302的相关描述。
第二确定模块903,用于确定目标神经网络模型中属于至少一类网络层的至少一个待压缩网络层。该第二确定模块903功能实现可以参考上述步骤304的相关描述。
处理模块904,用于对至少一个待压缩网络层进行压缩处理。该处理模块904的功能实现可以参考上述步骤308的相关描述。
可选地,至少一类网络层可以包括:全连接层、卷积层以及与卷积层连接的BN层。
可选地,模型处理设备还可以包括:第三确定模块(图9中未示出),用于确定禁止压缩处理的至少一类算子。第四确定模块(图9中未示出),用于确定目标神经网络模型中属于至少一类算子的目标算子。处理模块904,用于对至少一个待压缩网络层中除目标算子之外的算子进行压缩处理。
可选地,模型处理设备还可以包括:第五确定模块(图9中未示出),用于确定至少一个待压缩网络层中的第一网络层和第二网络层,第一网络层与第二网络层采用相加或相乘的算子连接。处理模块904,用于采用相同的压缩比例,对第一网络层和第二网络层进行压缩处理。
可选地,模型处理设备还可以包括:第一显示模块(图9中未示出),用于在对至少一个待压缩网络层进行压缩处理之前,显示目标神经网络模型的结构图。第一标注模块(图9中未示出),用于在结构图中标注至少一个待压缩网络层。第二标注模块,用于在对至少一个待压缩网络层进行压缩处理时,在结构图中标注待压缩网络层中被压缩处理掉的通道。
可选地,模型处理设备还可以包括:第二显示模块(图9中未示出),用于在对至少一个待压缩网络层进行压缩处理的过程中,显示目标神经网络模型的信息。
可选地,模型处理设备还可以包括:第二显示模块(图9中未示出),用于在对至少一个待压缩网络层进行压缩处理之后,显示压缩处理得到的至少一个神经网络模型的信息。第二接收模块(图9中未示出),用于接收针对至少一个神经网络模型中任一神经网络模型的选择指令。输出模块(图9中未示出),用于根据选择指令,输出任一神经网络模型。
可选地,模型处理设备还可以包括:第六确定模块(图9中未示出),用于确定用于压缩处理的多个算法。筛选模块(图9中未示出),用于在多个算法中筛选目标算法。处理模块904,用于采用目标算法对至少一个待压缩网络层进行压缩处理。
可选地,多个算法为:基于增强学习或强化学习的算法。
可选地,模型处理设备还可以包括:第三接收模块(图9中未示出),用于接收处理信息,处理信息包括:目标神经网络模型用于执行的目标任务和压缩处理指标中的至少一种。其中,压缩处理指标包括:压缩处理的时长,压缩处理得到的神经网络模型的时延,压缩处理得到的神经网络模型的数据量,以及压缩处理得到的神经网络模型的个数中的至少一种。筛选模块(图9中未示出),用于根据处理信息和目标神经网络模型中的至少一种,在多个算法中筛选目标算法。
可选地,模型处理设备还可以包括:第四接收模块(图9中未示出),用于接收目标神经网络模型用于处理的目标数据集。第七确定模块(图9中未示出),用于根据目标数据集和目标神经网络模型,确定目标算法的超参数。处理模块904,用于根据目标算法的超参数,采用目标算法对至少一个待压缩网络层进行压缩处理。
可选地,模型处理设备还可以包括:第五接收模块(图9中未示出),用于接收第一指令,第一指令用于指示目标神经网络模型中需要压缩处理的第三网络层。第一更新模块(图9中未示出),用于当至少一个待压缩网络层不包括第三网络层时,将第三网络层作为待压缩网络层加入至少一个待压缩网络层,以更新至少一个待压缩网络层。
可选地,第一指令还用于指示:第三网络层的压缩比例,或者,第三网络层的压缩比例的范围。处理模块904,用于根据第三网络层的压缩比例,或者,第三网络层的压缩比例的范围,对第三网络层进行压缩处理。
可选地,模型处理设备还可以包括:第六接收模块(图9中未示出),用于接收第二指令,第二指令用于指示目标神经网络模型中禁止压缩处理的第四网络层。第二更新模块(图9中未示出),用于当至少一个待压缩网络层包括第四网络层时,在至少一个待压缩网络层中删除第四网络层,以更新至少一个待压缩网络层。
综上所述,本申请实施例提供了一种模型处理设备,该模型处理设备可以确定接收到的神经网络模型中的待压缩网络层,并对该待压缩网络层进行压缩处理,实现了对神经网络模型的压缩处理。压缩处理后的神经网络模型规模较小,可以适用于更多的应用场景。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的模型处理设备以及各模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质在计算机上运行时,使得计算机执行如上述方法实施例提供的神经网络模型的处理方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例提供的神经网络模型的处理方法。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(SSD)。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的一些具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可对这些实施例做出另外的变更和修改。因此,所附权利要求意欲解释为包括上述实施例以及落入本申请范围的说是有变更和修改。因此,本申请保护范围应以所述权利要求的保护范围为准。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一设备可以被称为第二设备,并且类似地,第二设备可以被称为第一设备。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个通信设备是指两个或两个以上的通信设备。本申请中术语“和/ 或”的含义是指“和”与“或”两种情况中的任意一种。
以上所述,仅为本申请的可选实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (28)
1.一种神经网络模型的处理方法,其特征在于,所述方法包括:
确定需要压缩处理的至少一类网络层;
接收待处理的目标神经网络模型;
确定所述目标神经网络模型中属于所述至少一类网络层的至少一个待压缩网络层;
对所述至少一个待压缩网络层进行压缩处理;
在对所述至少一个待压缩网络层进行压缩处理之前,显示所述目标神经网络模型的结构图;
在所述结构图中标注所述至少一个待压缩网络层;
在对所述至少一个待压缩网络层进行压缩处理时,在所述结构图中标注所述待压缩网络层中被压缩处理掉的通道。
2.根据权利要求1所述的方法,其特征在于,所述至少一类网络层包括:全连接层、卷积层以及与所述卷积层连接的批归一化BN层。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
确定禁止压缩处理的至少一类算子;
确定所述目标神经网络模型中属于所述至少一类算子的目标算子;
对所述至少一个待压缩网络层进行压缩处理,包括:
对所述至少一个待压缩网络层中除所述目标算子之外的算子进行压缩处理。
4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
确定所述至少一个待压缩网络层中的第一网络层和第二网络层,所述第一网络层与所述第二网络层采用相加或相乘的算子连接;
对所述至少一个待压缩网络层进行压缩处理,包括:
采用相同的压缩比例,对所述第一网络层和所述第二网络层进行压缩处理。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在对所述至少一个待压缩网络层进行压缩处理的过程中,显示所述目标神经网络模型的信息。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在对所述至少一个待压缩网络层进行压缩处理之后,显示所述压缩处理得到的至少一个神经网络模型的信息;
接收针对所述至少一个神经网络模型中任一神经网络模型的选择指令;
根据所述选择指令,输出所述任一神经网络模型。
7.根据权利要求1或2所述的方法,其特征在于,在对所述至少一个待压缩网络层进行压缩处理之前,所述方法还包括:
确定用于压缩处理的多个算法;
在所述多个算法中筛选目标算法;
对所述至少一个待压缩网络层进行压缩处理,包括:
采用所述目标算法对所述至少一个待压缩网络层进行压缩处理。
8.根据权利要求7所述的方法,其特征在于,所述多个算法为:基于增强学习或强化学习的算法。
9.根据权利要求7所述的方法,其特征在于,
接收处理信息,所述处理信息包括:所述目标神经网络模型用于执行的目标任务和压缩处理指标中的至少一种;其中,所述压缩处理指标包括:压缩处理的时长,压缩处理得到的神经网络模型的时延,压缩处理得到的神经网络模型的数据量,以及压缩处理得到的神经网络模型的个数中的至少一种;
在所述多个算法中筛选目标算法,包括:
根据所述处理信息和所述目标神经网络模型中的至少一种,在所述多个算法中筛选所述目标算法。
10.根据权利要求7所述的方法,其特征在于,在采用所述目标算法对所述至少一个待压缩网络层进行压缩处理之前,所述方法还包括:
接收所述目标神经网络模型用于处理的目标数据集;
根据所述目标数据集和所述目标神经网络模型,确定所述目标算法的超参数;
所述采用所述目标算法对所述至少一个待压缩网络层进行压缩处理,包括:
根据所述目标算法的超参数,采用所述目标算法对所述至少一个待压缩网络层进行压缩处理。
11.根据权利要求1或2所述的方法,其特征在于,在对所述至少一个待压缩网络层进行压缩处理之前,所述方法还包括:
接收第一指令,所述第一指令用于指示所述目标神经网络模型中需要压缩处理的第三网络层;
当所述至少一个待压缩网络层不包括所述第三网络层时,将所述第三网络层作为待压缩网络层加入所述至少一个待压缩网络层,以更新所述至少一个待压缩网络层。
12.根据权利要求11所述的方法,其特征在于,所述第一指令还用于指示:所述第三网络层的压缩比例,或者,所述第三网络层的压缩比例的范围,对所述至少一个待压缩网络层进行压缩处理,包括:
根据所述第三网络层的压缩比例,或者,所述第三网络层的压缩比例的范围,对所述第三网络层进行压缩处理。
13.根据权利要求1或2所述的方法,其特征在于,在对所述至少一个待压缩网络层进行压缩处理之前,所述方法还包括:
接收第二指令,所述第二指令用于指示所述目标神经网络模型中禁止压缩处理的第四网络层;
当所述至少一个待压缩网络层包括所述第四网络层时,在所述至少一个待压缩网络层中删除所述第四网络层,以更新所述至少一个待压缩网络层。
14.一种模型处理设备,其特征在于,所述模型处理设备包括:
第一确定模块,用于确定需要压缩处理的至少一类网络层;
第一接收模块,用于接收待处理的目标神经网络模型;
第二确定模块,用于确定所述目标神经网络模型中属于所述至少一类网络层的至少一个待压缩网络层;
处理模块,用于对所述至少一个待压缩网络层进行压缩处理;
第一显示模块,用于在所述处理模块对所述至少一个待压缩网络层进行压缩处理之前,显示所述目标神经网络模型的结构图;
第一标注模块,用于在所述结构图中标注所述至少一个待压缩网络层;
第二标注模块,用于在对所述至少一个待压缩网络层进行压缩处理时,在所述结构图中标注所述待压缩网络层中被压缩处理掉的通道。
15.根据权利要求14所述的模型处理设备,其特征在于,所述至少一类网络层包括:全连接层、卷积层以及与所述卷积层连接的BN层。
16.根据权利要求14或15所述的模型处理设备,其特征在于,所述模型处理设备还包括:
第三确定模块,用于确定禁止压缩处理的至少一类算子;
第四确定模块,用于确定所述目标神经网络模型中属于所述至少一类算子的目标算子;
所述处理模块,用于对所述至少一个待压缩网络层中除所述目标算子之外的算子进行压缩处理。
17.根据权利要求14或15所述的模型处理设备,其特征在于,所述模型处理设备还包括:
第五确定模块,用于确定所述至少一个待压缩网络层中的第一网络层和第二网络层,所述第一网络层与所述第二网络层采用相加或相乘的算子连接;
所述处理模块,用于采用相同的压缩比例,对所述第一网络层和所述第二网络层进行压缩处理。
18.根据权利要求14或15所述的模型处理设备,其特征在于,所述模型处理设备还包括:
第二显示模块,用于在对所述至少一个待压缩网络层进行压缩处理的过程中,显示所述目标神经网络模型的信息。
19.根据权利要求14或15所述的模型处理设备,其特征在于,所述模型处理设备还包括:
第二显示模块,用于在对所述至少一个待压缩网络层进行压缩处理之后,显示所述压缩处理得到的至少一个神经网络模型的信息;
第二接收模块,用于接收针对所述至少一个神经网络模型中任一神经网络模型的选择指令;
输出模块,用于根据所述选择指令,输出所述任一神经网络模型。
20.根据权利要求14或15所述的模型处理设备,其特征在于,所述模型处理设备还包括:
第六确定模块,用于确定用于压缩处理的多个算法;
筛选模块,用于在所述多个算法中筛选目标算法;
所述处理模块,用于采用所述目标算法对所述至少一个待压缩网络层进行压缩处理。
21.根据权利要求20所述的模型处理设备,其特征在于,所述多个算法为:基于增强学习或强化学习的算法。
22.根据权利要求20所述的模型处理设备,其特征在于,所述模型处理设备还包括:
第三接收模块,用于接收处理信息,所述处理信息包括:所述目标神经网络模型用于执行的目标任务和压缩处理指标中的至少一种;其中,所述压缩处理指标包括:压缩处理的时长,压缩处理得到的神经网络模型的时延,压缩处理得到的神经网络模型的数据量,以及压缩处理得到的神经网络模型的个数中的至少一种;
所述筛选模块,用于根据所述处理信息和所述目标神经网络模型中的至少一种,在所述多个算法中筛选所述目标算法。
23.根据权利要求20所述的模型处理设备,其特征在于,所述模型处理设备还包括:
第四接收模块,用于接收所述目标神经网络模型用于处理的目标数据集;
第七确定模块,用于根据所述目标数据集和所述目标神经网络模型,确定所述目标算法的超参数;
所述处理模块,用于根据所述目标算法的超参数,采用所述目标算法对所述至少一个待压缩网络层进行压缩处理。
24.根据权利要求14或15所述的模型处理设备,其特征在于,所述模型处理设备还包括:
第五接收模块,用于接收第一指令,所述第一指令用于指示所述目标神经网络模型中需要压缩处理的第三网络层;
第一更新模块,用于当所述至少一个待压缩网络层不包括所述第三网络层时,将所述第三网络层作为待压缩网络层加入所述至少一个待压缩网络层,以更新所述至少一个待压缩网络层。
25.根据权利要求24所述的模型处理设备,其特征在于,所述第一指令还用于指示:所述第三网络层的压缩比例,或者,所述第三网络层的压缩比例的范围;
所述处理模块,用于根据所述第三网络层的压缩比例,或者,所述第三网络层的压缩比例的范围,对所述第三网络层进行压缩处理。
26.根据权利要求14或15所述的模型处理设备,其特征在于,所述模型处理设备还包括:
第六接收模块,用于接收第二指令,所述第二指令用于指示所述目标神经网络模型中禁止压缩处理的第四网络层;
第二更新模块,用于当所述至少一个待压缩网络层包括所述第四网络层时,在所述至少一个待压缩网络层中删除所述第四网络层,以更新所述至少一个待压缩网络层。
27.一种模型处理设备,其特征在于,所述模型处理设备包括:处理器和存储器,所述处理器用于执行所述存储器中存储的程序,以实现权利要求1至13任一所述的信息同步方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1至13任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011621646.3A CN114692816B (zh) | 2020-12-31 | 2020-12-31 | 神经网络模型的处理方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011621646.3A CN114692816B (zh) | 2020-12-31 | 2020-12-31 | 神经网络模型的处理方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114692816A CN114692816A (zh) | 2022-07-01 |
CN114692816B true CN114692816B (zh) | 2023-08-25 |
Family
ID=82134779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011621646.3A Active CN114692816B (zh) | 2020-12-31 | 2020-12-31 | 神经网络模型的处理方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114692816B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372721A (zh) * | 2016-08-29 | 2017-02-01 | 中国传媒大学 | 大规模神经网络的3d可视化方法 |
CN109754077A (zh) * | 2017-11-08 | 2019-05-14 | 杭州海康威视数字技术股份有限公司 | 深度神经网络的网络模型压缩方法、装置及计算机设备 |
CN110033083A (zh) * | 2019-03-29 | 2019-07-19 | 腾讯科技(深圳)有限公司 | 卷积神经网络模型压缩方法和装置、存储介质及电子装置 |
CN110263913A (zh) * | 2019-05-23 | 2019-09-20 | 深圳先进技术研究院 | 一种深度神经网络压缩方法及相关设备 |
CN110490323A (zh) * | 2019-08-20 | 2019-11-22 | 腾讯科技(深圳)有限公司 | 网络模型压缩方法、装置、存储介质和计算机设备 |
CN110874550A (zh) * | 2018-08-31 | 2020-03-10 | 华为技术有限公司 | 数据处理方法、装置、设备和系统 |
CN110874635A (zh) * | 2018-08-31 | 2020-03-10 | 杭州海康威视数字技术股份有限公司 | 一种深度神经网络模型压缩方法及装置 |
CN111160530A (zh) * | 2019-12-30 | 2020-05-15 | 联想(北京)有限公司 | 模型的压缩处理方法、装置及计算机设备 |
CN111431539A (zh) * | 2020-03-04 | 2020-07-17 | 杭州嘉楠耘智信息科技有限公司 | 一种神经网络数据的压缩方法、装置及计算机可读存储介质 |
CN111488986A (zh) * | 2020-04-13 | 2020-08-04 | 商汤集团有限公司 | 一种模型压缩方法、图像处理方法以及装置 |
CN111709516A (zh) * | 2020-06-09 | 2020-09-25 | 深圳先进技术研究院 | 神经网络模型的压缩方法及压缩装置、存储介质、设备 |
CN111898742A (zh) * | 2020-08-05 | 2020-11-06 | 上海眼控科技股份有限公司 | 一种用于监控神经网络模型训练状态的方法与设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109993298B (zh) * | 2017-12-29 | 2023-08-08 | 百度在线网络技术(北京)有限公司 | 用于压缩神经网络的方法和装置 |
CN108038546B (zh) * | 2017-12-29 | 2021-02-09 | 百度在线网络技术(北京)有限公司 | 用于压缩神经网络的方法和装置 |
-
2020
- 2020-12-31 CN CN202011621646.3A patent/CN114692816B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372721A (zh) * | 2016-08-29 | 2017-02-01 | 中国传媒大学 | 大规模神经网络的3d可视化方法 |
CN109754077A (zh) * | 2017-11-08 | 2019-05-14 | 杭州海康威视数字技术股份有限公司 | 深度神经网络的网络模型压缩方法、装置及计算机设备 |
CN110874550A (zh) * | 2018-08-31 | 2020-03-10 | 华为技术有限公司 | 数据处理方法、装置、设备和系统 |
CN110874635A (zh) * | 2018-08-31 | 2020-03-10 | 杭州海康威视数字技术股份有限公司 | 一种深度神经网络模型压缩方法及装置 |
CN110033083A (zh) * | 2019-03-29 | 2019-07-19 | 腾讯科技(深圳)有限公司 | 卷积神经网络模型压缩方法和装置、存储介质及电子装置 |
CN110263913A (zh) * | 2019-05-23 | 2019-09-20 | 深圳先进技术研究院 | 一种深度神经网络压缩方法及相关设备 |
CN110490323A (zh) * | 2019-08-20 | 2019-11-22 | 腾讯科技(深圳)有限公司 | 网络模型压缩方法、装置、存储介质和计算机设备 |
CN111160530A (zh) * | 2019-12-30 | 2020-05-15 | 联想(北京)有限公司 | 模型的压缩处理方法、装置及计算机设备 |
CN111431539A (zh) * | 2020-03-04 | 2020-07-17 | 杭州嘉楠耘智信息科技有限公司 | 一种神经网络数据的压缩方法、装置及计算机可读存储介质 |
CN111488986A (zh) * | 2020-04-13 | 2020-08-04 | 商汤集团有限公司 | 一种模型压缩方法、图像处理方法以及装置 |
CN111709516A (zh) * | 2020-06-09 | 2020-09-25 | 深圳先进技术研究院 | 神经网络模型的压缩方法及压缩装置、存储介质、设备 |
CN111898742A (zh) * | 2020-08-05 | 2020-11-06 | 上海眼控科技股份有限公司 | 一种用于监控神经网络模型训练状态的方法与设备 |
Non-Patent Citations (1)
Title |
---|
深度神经网络模型压缩综述;李江昀 等;《工程科学学报》;第41卷(第10期);第1229-1239页 * |
Also Published As
Publication number | Publication date |
---|---|
CN114692816A (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200311552A1 (en) | Device and method for compressing machine learning model | |
CN109740657B (zh) | 一种用于图像数据分类的神经网络模型的训练方法与设备 | |
CN108615071B (zh) | 模型测试的方法及装置 | |
CN112396179A (zh) | 一种基于通道梯度剪枝的柔性深度学习网络模型压缩方法 | |
KR20170091716A (ko) | 샘플링 및 특징 선택 없는 자동 결함 분류 | |
KR20210032140A (ko) | 뉴럴 네트워크에 대한 프루닝을 수행하는 방법 및 장치 | |
JP2023523029A (ja) | 画像認識モデル生成方法、装置、コンピュータ機器及び記憶媒体 | |
CN109635939B (zh) | 一种基于裁剪的卷积神经网络的确定方法及装置 | |
CN112052951A (zh) | 一种剪枝神经网络方法、系统、设备及可读存储介质 | |
CN112381763A (zh) | 一种表面缺陷检测方法 | |
CN113608916A (zh) | 故障诊断的方法、装置、电子设备及存储介质 | |
CN112308825A (zh) | 一种基于SqueezeNet的农作物叶片病害识别方法 | |
CN114692816B (zh) | 神经网络模型的处理方法和设备 | |
WO2024078112A1 (zh) | 一种舾装件智能识别方法、计算机设备 | |
CN116579409A (zh) | 基于重参数化的智能相机模型剪枝加速方法及加速系统 | |
CN111814813A (zh) | 神经网络训练和图像分类方法与装置 | |
CN114742221A (zh) | 深度神经网络模型剪枝方法、系统、设备及介质 | |
CN115063374A (zh) | 模型训练、人脸图像质量评分方法、电子设备及存储介质 | |
CN108268899A (zh) | 一种电子元件的检测方法、装置和设备 | |
CN113807541A (zh) | 决策系统的公平性修复方法、系统、设备及存储介质 | |
Draganova et al. | Model of Software System for automatic corn kernels Fusarium (spp.) disease diagnostics | |
CN112580781A (zh) | 深度学习模型的处理方法、装置、设备和存储介质 | |
Hawari et al. | The automatic focus segmentation of multi-focus image fusion | |
CN110717578A (zh) | 神经网络压缩方法、图像处理方法及装置 | |
CN112418168B (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 |