CN110533156B - 提高卷积神经网络的处理速度的方法和设备 - Google Patents
提高卷积神经网络的处理速度的方法和设备 Download PDFInfo
- Publication number
- CN110533156B CN110533156B CN201810502432.0A CN201810502432A CN110533156B CN 110533156 B CN110533156 B CN 110533156B CN 201810502432 A CN201810502432 A CN 201810502432A CN 110533156 B CN110533156 B CN 110533156B
- Authority
- CN
- China
- Prior art keywords
- cnn
- new
- old
- loss
- output number
- 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
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种提高卷积神经网络的处理速度的方法和设备。该方法包括:根据待提高的旧卷积神经网络CNN的卷积层的旧输出数、旧CNN的测试集上的损失与训练集上的损失之比,计算经提高的新CNN的卷积层的新输出数;以及根据新CNN的卷积层的新输出数,对旧CNN的卷积层进行剪枝操作;其中,旧CNN的测试集上的损失与训练集上的损失之比越大,新CNN的卷积层的新输出数越小。
Description
技术领域
本发明一般地涉及信息处理技术领域。具体而言,本发明涉及一种不依赖于硬件和深度学习框架的能够提高卷积神经网络(Convolutional Neural Network,CNN)的处理速度的方法和设备。
背景技术
近年来,深度学习技术得到了迅猛的发展和广泛的关注,其广泛应用于机器视觉、数据挖掘、人工智能等领域。深度学习技术的代表包括卷积神经网络。
虽然卷积神经网络提高了计算结果的精度,但是也存在计算量大、耗时长、实时性不足的劣势。
因此,本发明旨在提高卷积神经网络的处理速度。
发明内容
在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
本发明的目的是提出一种能够提高卷积神经网络的处理速度的方法和设备。
为了实现上述目的,根据本发明的一个方面,提供了一种提高卷积神经网络CNN的处理速度的方法,该方法包括:根据待提高的旧CNN的卷积层的旧输出数、旧CNN的测试集上的损失与训练集上的损失之比,计算经提高的新CNN的卷积层的新输出数;以及根据新CNN的卷积层的新输出数,对旧CNN的卷积层进行剪枝操作;其中,旧CNN的测试集上的损失与训练集上的损失之比越大,新CNN的卷积层的新输出数越小。
根据本发明的另一个方面,提供了一种提高卷积神经网络CNN的处理速度的设备,该设备包括:计算装置,被配置为:根据待提高的旧CNN的卷积层的旧输出数、旧CNN的测试集上的损失与训练集上的损失之比,计算经提高的新CNN的卷积层的新输出数;以及剪枝装置,被配置为:根据新CNN的卷积层的新输出数,对旧CNN的卷积层进行剪枝操作;其中,旧CNN的测试集上的损失与训练集上的损失之比越大,新CNN的卷积层的新输出数越小。
另外,根据本发明的另一方面,还提供了一种存储介质。所述存储介质包括机器可读的程序代码,当在信息处理设备上执行所述程序代码时,所述程序代码使得所述信息处理设备执行根据本发明的上述方法。
此外,根据本发明的再一方面,还提供了一种程序产品。所述程序产品包括机器可执行的指令,当在信息处理设备上执行所述指令时,所述指令使得所述信息处理设备执行根据本发明的上述方法。
附图说明
参照下面结合附图对本发明的实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。附图中的部件只是为了示出本发明的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。附图中:
图1示出了根据本发明的实施例的提高卷积神经网络CNN的处理速度的方法的流程图;
图2示出了旧CNN的一个卷积层的示例;
图3示出了每个输出仅依赖于一个输入的卷积层的示例;
图4示出了剪枝方法;
图5示出了利用旧CNN对新CNN的训练进行监督的示例结构;
图6示出了根据本发明的实施例的提高卷积神经网络CNN的处理速度的设备的结构方框图;以及
图7示出了可用于实施根据本发明的实施例的方法和设备的计算机的示意性框图。
具体实施方式
在下文中将结合附图对本发明的示范性实施例进行详细描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施方式的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与***及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其他细节。另外,还需要指出的是,在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。
本发明所处理的对象是已经经过训练的CNN(在下文中称为旧CNN),并且可以访问用于训练旧CNN的训练数据(训练集)和相应的测试数据(测试集)。
本发明的目的是获得经提高的新CNN。新CNN的处理速度快于旧CNN,但精度几乎没有损失。
下面将参照图1描述根据本发明的实施例的提高卷积神经网络CNN的处理速度的方法的流程。
图1示出了根据本发明的实施例的提高卷积神经网络CNN的处理速度的方法的流程图。如图1所示,该方法包括如下步骤:根据待提高的旧CNN的卷积层的旧输出数、旧CNN的测试集上的损失与训练集上的损失之比,计算经提高的新CNN的卷积层的新输出数(步骤S1);以及根据新CNN的卷积层的新输出数,对旧CNN的卷积层进行剪枝操作(步骤S2);其中,旧CNN的测试集上的损失与训练集上的损失之比越大,新CNN的卷积层的新输出数越小。
具体地,在步骤S1中,根据待提高的旧CNN的卷积层的旧输出数、旧CNN的测试集上的损失与训练集上的损失之比,计算经提高的新CNN的卷积层的新输出数。
步骤S1的目的是为步骤S2的剪枝设定标准,求得新CNN的卷积层的输出数。该输出数相对于旧CNN的卷积层的输出数减少,相应地,新CNN的网络结构比旧CNN的网络结构简单。
应注意,要剪枝的可以是旧CNN的一个卷积层,也可以是旧CNN的多个卷积层,也可以是旧CNN的所有卷积层。针对每个要剪枝的旧CNN的卷积层,计算与之对应的新CNN中的卷积层的输出数。
每个卷积层都具有输入、输出、核(kernel,也称为过滤器filter)。图2示出了旧CNN的一个卷积层的示例。图2中的卷积层包括2个输入、8个核、4个输出。因此,该卷积层的输出数为4。一个输入对应于一个输入通道,一个输出对应于一个输出通道。在图2中,一个输出通道对应于两个核。
为了进一步简化CNN的卷积层的结构,可以设置为:在新CNN的卷积层中,每个输出仅依赖于一个输入。当然,也可以设置为:在新CNN的多个或所有卷积层中,每个输出仅依赖于一个输入。
图3示出了每个输出仅依赖于一个输入的卷积层的示例。应注意,此时还未进行剪枝。并且,图2、图3的卷积层均可采用本发明的方法剪枝。
在图3中,每个输出仅依赖于一个输入。卷积层包括2个输入、4个核、4个输出。因此,该卷积层的输出数为4。一个输入对应于一个输入通道,一个输出对应于一个输出通道。在图3中,一个输出通道对应于一个核。
无论是图2的卷积层还是图3的卷积层,都可以执行步骤S1,以减少输出通道数。即,根据待提高的旧CNN的卷积层的旧输出数、旧CNN的测试集上的损失与训练集上的损失之比,计算经提高的新CNN的卷积层的新输出数。
具体地,根据如下公式进行所述计算步骤:
Cni=floor(Coi/log2(test_loss/training_loss)*Δ)。
其中,Cni表示新CNN的第i个卷积层的新输出数,i大于或等于1且小于或等于旧CNN的卷积层总数,Coi表示旧CNN的第i个卷积层的旧输出数,floor()表示取整函数,log2()表示以2为底的对数函数,training_loss表示旧CNN的训练集上的损失,test_loss表示旧CNN的测试集上的损失,Δ表示修正因子。
training_loss和test_loss采样同样的损失函数计算,指整个CNN的损失。由于不同应用场景的test_loss/training_loss相差很大,所以引入根据经验指定的修正因子Δ来平衡这种差异。
这样,在步骤S1中,可以计算得到所有要剪枝的卷积层的期望输出通道数,即新输出数。
在步骤S2中,根据新CNN的卷积层的新输出数,对旧CNN的卷积层进行剪枝操作。
由于新输出数只限定了数量,即剪枝结果的数量因素,并未指明应剪去哪些输出通道,所以可以参照图4所示的方法,对输出通道进行筛选和剪枝。
具体地,如图4所示,在步骤S41中,针对旧CNN的卷积层,计算每个输出通道的强度、特征根、SVD奇异值中的一个值。
输出通道的强度、特征根、SVD奇异值都能表明输出通道的重要性。其中,输出通道的强度是输出通道对应的过滤器(核)权重的绝对值之和。
在步骤S42中,按照所计算的值从小到大的顺序,去除新输出数和旧输出数之差个对应输出通道。
即,在步骤S42中,进行剪枝,使得输出通道的强度/特征根/SVD奇异值表明重要性最低的(新输出数和旧输出数之差个)输出通道被删除,仅保留新输出数个输出通道。
剪枝后得到的其实是过滤器权重矩阵等数据,尚不是CNN。现有的多个CNN工具对于数据要求不同的格式。因此,还需将剪枝后得到的数据存为采用的CNN工具所要求的具体格式,将其输入到CNN工具中,构建新CNN。
由于利用剪枝后的卷积层的输出通道,构建新CNN,所以新CNN的卷积层的输出数减少,新CNN的结构更加简单。此后,还需利用训练数据对新CNN进行训练。训练好的新CNN可以代替旧CNN实现基本相同的性能,但具有更简单的结构,从而具有更快的处理速度。
为了进一步提高新CNN的性能,可以在对新CNN的训练中,针对新CNN的每个块,设置考量新CNN的块与旧CNN的对应块之间的损失的监督损失函数以及设置考量新CNN与旧CNN整体之间的损失的分布损失函数,以利用旧CNN来监督新CNN的学习;其中,块指输入特征图大小与输出特征图大小相同的连续多个层。
也就是说,利用旧CNN对新CNN的训练进行监督。而且,在此过程中,引入块的概念,以细化监督的粒度和强化监督的效果。
如果连续的几个层功能近似,就可以将这几个层组成一个块。具体的判断准则是如果连续的几个层中的每个层的输入特征图大小和输出特征图大小相同,则这些连续层构成一个块。特征图大小不变表明这些层没有降低维度,所以其功能近似。
设置考量新CNN与旧CNN整体之间的损失的分布损失函数,从整体上利用旧CNN监督新CNN。而且,针对新CNN的每个块,设置考量新CNN的块与旧CNN的对应块之间的损失的监督损失函数。用旧CNN的总输出和块输出来约束新CNN的总输出和块输出。
分布损失函数和监督损失函数可以选用本领域常用的损失函数,并且可以采用彼此不同的损失函数。例如,KL散度函数、交叉熵函数、softmax函数等。
图5示出了利用旧CNN对新CNN的训练进行监督的示例结构。其中,对块进行监督的监督损失函数从1到i-1,对应于从1到i-1的块,对神经网络整体进行监督的分布损失函数只有一个,布置在最后一个块i的输出处,使得新CNN和旧CNN学到相同的东西。每个监督损失函数约束新CNN和旧CNN的对应块的输出的差异,利用该监督损失函数去调整对应块的参数,使得差异最小化。
通过监督,可以确保新CNN的性能基本达到旧CNN的性能。
上述提高卷积神经网络CNN的处理速度的方法,采用了多种手段来提高加速率,同时降低了剪枝对性能的影响。由于其手段不依赖于硬件和深度学习结构,所以易于移植。
下面,将参照图6描述根据本发明的实施例的提高卷积神经网络CNN的处理速度的设备。
图6示出了根据本发明的实施例的提高卷积神经网络CNN的处理速度的设备的结构方框图。如图6所示,根据本发明的提速设备600包括:计算装置61,被配置为:根据待提高的旧CNN的卷积层的旧输出数、旧CNN的测试集上的损失与训练集上的损失之比,计算经提高的新CNN的卷积层的新输出数;以及剪枝装置62,被配置为:根据新CNN的卷积层的新输出数,对旧CNN的卷积层进行剪枝操作;其中,旧CNN的测试集上的损失与训练集上的损失之比越大,新CNN的卷积层的新输出数越小。
在一个实施例中,所述计算装置61和所述剪枝装置62针对旧CNN的所有卷积层执行计算和剪枝操作。
在一个实施例中,所述计算装置61根据如下公式进行所述计算操作:Cni=floor(Coi/log2(test_loss/training_loss)*Δ),其中,Cni表示新CNN的第i个卷积层的新输出数,Coi表示旧CNN的第i个卷积层的旧输出数,floor()表示取整函数,log2()表示以2为底的对数函数,training_loss表示旧CNN的训练集上的损失,test_loss表示旧CNN的测试集上的损失,Δ表示修正因子。
在一个实施例中,在新CNN的卷积层中,每个输出仅依赖于一个输入。
在一个实施例中,在新CNN的所有卷积层中,每个输出仅依赖于一个输入。
在一个实施例中,所述剪枝设备62被进一步配置为:针对旧CNN的卷积层,计算每个输出通道的强度、特征根、SVD奇异值中的一个值;按照所计算的值从小到大的顺序,去除新输出数和旧输出数之差个对应输出通道。
在一个实施例中,每个输出通道的强度是每个输出通道对应的过滤器权重的绝对值之和。
在一个实施例中,提速设备600还包括:构建装置,被配置为:利用剪枝后的卷积层的输出通道,构建新CNN;训练装置,被配置为:对新CNN进行训练。
在一个实施例中,所述训练装置,针对新CNN的每个块,设置考量新CNN的块与旧CNN的对应块之间的损失的监督损失函数以及设置考量新CNN与旧CNN整体之间的损失的分布损失函数,以利用旧CNN来监督新CNN的学习;其中,块指输入特征图大小与输出特征图大小相同的连续多个层。
由于在根据本发明的提速设备600中所包括的处理与上面描述的方法中所包括的各个步骤中的处理类似,因此为了简洁起见,在此省略这些处理的详细描述。
此外,这里尚需指出的是,上述设备中各个组成装置、单元可以通过软件、固件、硬件或其组合的方式进行配置。配置可使用的具体手段或方式为本领域技术人员所熟知,在此不再赘述。在通过软件或固件实现的情况下,从存储介质或网络向具有专用硬件结构的计算机(例如图7所示的通用计算机700)安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等。
图7示出了可用于实施根据本发明的实施例的方法和设备的计算机的示意性框图。
在图7中,中央处理单元(CPU)701根据只读存储器(ROM)702中存储的程序或从存储部分708加载到随机存取存储器(RAM)703的程序执行各种处理。在RAM 703中,还根据需要存储当CPU 701执行各种处理等等时所需的数据。CPU 701、ROM 702和RAM 703经由总线704彼此连接。输入/输出接口705也连接到总线704。
下述部件连接到输入/输出接口705:输入部分706(包括键盘、鼠标等等)、输出部分707(包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等)、存储部分708(包括硬盘等)、通信部分709(包括网络接口卡比如LAN卡、调制解调器等)。通信部分709经由网络比如因特网执行通信处理。根据需要,驱动器710也可连接到输入/输出接口705。可拆卸介质711比如磁盘、光盘、磁光盘、半导体存储器等等可以根据需要被安装在驱动器710上,使得从中读出的计算机程序根据需要被安装到存储部分708中。
在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质711安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图7所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质711。可拆卸介质711的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 702、存储部分708中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
本发明还提出一种存储有机器可读取的指令代码的程序产品。所述指令代码由机器读取并执行时,可执行上述根据本发明的实施例的方法。
相应地,用于承载上述存储有机器可读取的指令代码的程序产品的存储介质也包括在本发明的公开中。所述存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等等。
该存储介质上记录有程序,所述程序在被信息处理设备执行时,使得该信息处理设备执行提高卷积神经网络CNN的处理速度的方法,该方法包括:根据待提高的旧CNN的卷积层的旧输出数、旧CNN的测试集上的损失与训练集上的损失之比,计算经提高的新CNN的卷积层的新输出数;以及根据新CNN的卷积层的新输出数,对旧CNN的卷积层进行剪枝操作;其中,旧CNN的测试集上的损失与训练集上的损失之比越大,新CNN的卷积层的新输出数越小。
在上面对本发明具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
此外,本发明的方法不限于按照说明书中描述的时间顺序来执行,也可以按照其他的时间顺序地、并行地或独立地执行。因此,本说明书中描述的方法的执行顺序不对本发明的技术范围构成限制。
尽管上面已经通过对本发明的具体实施例的描述对本发明进行了披露,但是,应该理解,上述的所有实施例和示例均是示例性的,而非限制性的。本领域的技术人员可在所附权利要求的精神和范围内设计对本发明的各种修改、改进或者等同物。这些修改、改进或者等同物也应当被认为包括在本发明的保护范围内。
附记:
1.一种提高卷积神经网络CNN的处理速度的方法,包括:
根据待提高的旧CNN的卷积层的旧输出数、旧CNN的测试集上的损失与训练集上的损失之比,计算经提高的新CNN的卷积层的新输出数;
以及
根据新CNN的卷积层的新输出数,对旧CNN的卷积层进行剪枝操作;
其中,旧CNN的测试集上的损失与训练集上的损失之比越大,新CNN的卷积层的新输出数越小。
2.如附记1所述的方法,其中,对旧CNN的所有卷积层执行上述计算和剪枝操作。
3.如附记1所述的方法,其中,根据如下公式进行所述计算步骤:
Cni=floor(Coi/log2(test_loss/training_loss)*Δ),
其中,Cni表示新CNN的第i个卷积层的新输出数,Coi表示旧CNN的第i个卷积层的旧输出数,floor()表示取整函数,log2()表示以2为底的对数函数,training_loss表示旧CNN的训练集上的损失,test_loss表示旧CNN的测试集上的损失,Δ表示修正因子。
4.如附记1所述的方法,其中,在新CNN的至少一个卷积层中,每个输出仅依赖于一个输入。
5.如附记1所述的方法,其中,在新CNN的所有卷积层中,每个输出仅依赖于一个输入。
6.如附记1所述的方法,其中,所述剪枝操作包括:
针对旧CNN的卷积层,
计算每个输出通道的强度、特征根、SVD奇异值中的一个值;
按照所计算的值从小到大的顺序,去除新输出数和旧输出数之差个对应输出通道。
7.如附记6所述的方法,其中,每个输出通道的强度是每个输出通道对应的过滤器权重的绝对值之和。
8.如附记1所述的方法,还包括:
利用剪枝后的卷积层的输出通道,构建新CNN;
对新CNN进行训练。
9.如附记8所述的方法,其中,在对新CNN的训练中,针对新CNN的每个块,设置考量新CNN的块与旧CNN的对应块之间的损失的监督损失函数以及设置考量新CNN与旧CNN整体之间的损失的分布损失函数,以利用旧CNN来监督新CNN的学习;
其中,块指输入特征图大小与输出特征图大小相同的连续多个层。
10.一种提高卷积神经网络CNN的处理速度的设备,包括:
计算装置,被配置为:根据待提高的旧CNN的卷积层的旧输出数、旧CNN的测试集上的损失与训练集上的损失之比,计算经提高的新CNN的卷积层的新输出数;以及
剪枝装置,被配置为:根据新CNN的卷积层的新输出数,对旧CNN的卷积层进行剪枝操作;
其中,旧CNN的测试集上的损失与训练集上的损失之比越大,新CNN的卷积层的新输出数越小。
11.如附记10所述的设备,其中,所述计算装置和所述剪枝装置针对旧CNN的所有卷积层执行计算和剪枝操作。
12.如附记10所述的设备,其中,所述计算装置根据如下公式进行所述计算操作:
Cni=floor(Coi/log2(test_loss/training_loss)*Δ),
其中,Cni表示新CNN的第i个卷积层的新输出数,Coi表示旧CNN的第i个卷积层的旧输出数,floor()表示取整函数,log2()表示以2为底的对数函数,training_loss表示旧CNN的训练集上的损失,test_loss表示旧CNN的测试集上的损失,Δ表示修正因子。
13.如附记10所述的设备,其中,在新CNN的至少一个卷积层中,每个输出仅依赖于一个输入。
14.如附记10所述的设备,其中,在新CNN的所有卷积层中,每个输出仅依赖于一个输入。
15.如附记10所述的设备,其中,所述剪枝设备被进一步配置为:
针对旧CNN的卷积层,
计算每个输出通道的强度、特征根、SVD奇异值中的一个值;
按照所计算的值从小到大的顺序,去除新输出数和旧输出数之差个对应输出通道。
16.如附记15所述的设备,其中,每个输出通道的强度是每个输出通道对应的过滤器权重的绝对值之和。
17.如附记10所述的设备,还包括:
构建装置,被配置为:利用剪枝后的卷积层的输出通道,构建新CNN;
训练装置,被配置为:对新CNN进行训练。
18.如附记17所述的设备,其中,所述训练装置,针对新CNN的每个块,设置考量新CNN的块与旧CNN的对应块之间的损失的监督损失函数以及设置考量新CNN与旧CNN整体之间的损失的分布损失函数,以利用旧CNN来监督新CNN的学习;
其中,块指输入特征图大小与输出特征图大小相同的连续多个层。
19.一种计算机可读存储介质,其上记录有程序,所述程序在被信息处理设备执行时,使得该信息处理设备执行提高卷积神经网络CNN的处理速度的方法,该方法包括:
根据待提高的旧CNN的卷积层的旧输出数、旧CNN的测试集上的损失与训练集上的损失之比,计算经提高的新CNN的卷积层的新输出数;以及
根据新CNN的卷积层的新输出数,对旧CNN的卷积层进行剪枝操作;
其中,旧CNN的测试集上的损失与训练集上的损失之比越大,新CNN的卷积层的新输出数越小。
Claims (9)
1.一种提高卷积神经网络CNN的处理速度的方法,包括:
根据下式计算经提高的新CNN的卷积层的新输出数:
Cni=floor(Coi/log2(test_loss/training_loss)*Δ),其中,Cni表示新CNN的第i个卷积层的新输出数,Coi表示旧CNN的第i个卷积层的旧输出数,floor()表示取整函数,log2()表示以2为底的对数函数,training_loss表示旧CNN的训练集上的损失,test_loss表示旧CNN的测试集上的损失,Δ表示修正因子;以及
根据新CNN的卷积层的新输出数,对旧CNN的卷积层进行剪枝操作,
其中,旧CNN的测试集上的损失与训练集上的损失之比越大,新CNN的卷积层的新输出数越小。
2.如权利要求1所述的方法,其中,对旧CNN的所有卷积层执行上述计算和剪枝操作。
3.如权利要求1所述的方法,其中,在新CNN的至少一个卷积层中,每个输出仅依赖于一个输入。
4.如权利要求1所述的方法,其中,所述剪枝操作包括:
针对旧CNN的卷积层,
计算每个输出通道的强度、特征根、SVD奇异值中的一个值;
按照所计算的值从小到大的顺序,去除新输出数和旧输出数之差个对应输出通道。
5.如权利要求4所述的方法,其中,每个输出通道的强度是每个输出通道对应的过滤器权重的绝对值之和。
6.如权利要求1所述的方法,还包括:
利用剪枝后的卷积层的输出通道,构建新CNN;
对新CNN进行训练。
7.如权利要求6所述的方法,其中,在对新CNN的训练中,针对新CNN的每个块,设置考量新CNN的块与旧CNN的对应块之间的损失的监督损失函数以及设置考量新CNN与旧CNN整体之间的损失的分布损失函数,以利用旧CNN来监督新CNN的学习;
其中,块指输入特征图大小与输出特征图大小相同的连续多个层。
8.一种提高卷积神经网络CNN的处理速度的设备,包括:
计算装置,被配置为:根据下式计算经提高的新CNN的卷积层的新输出数:
Cni=floor(Coi/log2(test_loss/training_loss)*Δ),其中,Cni表示新CNN的第i个卷积层的新输出数,Coi表示旧CNN的第i个卷积层的旧输出数,floor()表示取整函数,log2()表示以2为底的对数函数,training_loss表示旧CNN的训练集上的损失,test_loss表示旧CNN的测试集上的损失,Δ表示修正因子;以及
剪枝装置,被配置为:根据新CNN的卷积层的新输出数,对旧CNN的卷积层进行剪枝操作,
其中,旧CNN的测试集上的损失与训练集上的损失之比越大,新CNN的卷积层的新输出数越小。
9.一种计算机可读存储介质,其上记录有程序,所述程序在被信息处理设备执行时,使得该信息处理设备执行提高卷积神经网络CNN的处理速度的方法,该方法包括:
根据下式计算经提高的新CNN的卷积层的新输出数:
Cni=floor(Coi/log2(test_loss/training_loss)*Δ),其中,Cni表示新CNN的第i个卷积层的新输出数,Coi表示旧CNN的第i个卷积层的旧输出数,floor()表示取整函数,log2()表示以2为底的对数函数,training_loss表示旧CNN的训练集上的损失,test_loss表示旧CNN的测试集上的损失,Δ表示修正因子;以及
根据新CNN的卷积层的新输出数,对旧CNN的卷积层进行剪枝操作,
其中,旧CNN的测试集上的损失与训练集上的损失之比越大,新CNN的卷积层的新输出数越小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810502432.0A CN110533156B (zh) | 2018-05-23 | 2018-05-23 | 提高卷积神经网络的处理速度的方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810502432.0A CN110533156B (zh) | 2018-05-23 | 2018-05-23 | 提高卷积神经网络的处理速度的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110533156A CN110533156A (zh) | 2019-12-03 |
CN110533156B true CN110533156B (zh) | 2023-06-23 |
Family
ID=68656454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810502432.0A Active CN110533156B (zh) | 2018-05-23 | 2018-05-23 | 提高卷积神经网络的处理速度的方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110533156B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886975A (zh) * | 2016-11-29 | 2017-06-23 | 华南理工大学 | 一种可实时运行的图像风格化方法 |
CN108009600A (zh) * | 2017-11-30 | 2018-05-08 | 北京小米移动软件有限公司 | 模型优化、质量检测方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102276339B1 (ko) * | 2014-12-09 | 2021-07-12 | 삼성전자주식회사 | Cnn의 근사화를 위한 학습 장치 및 방법 |
US10740676B2 (en) * | 2016-05-19 | 2020-08-11 | Nec Corporation | Passive pruning of filters in a convolutional neural network |
-
2018
- 2018-05-23 CN CN201810502432.0A patent/CN110533156B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886975A (zh) * | 2016-11-29 | 2017-06-23 | 华南理工大学 | 一种可实时运行的图像风格化方法 |
CN108009600A (zh) * | 2017-11-30 | 2018-05-08 | 北京小米移动软件有限公司 | 模型优化、质量检测方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
[DeeplearningAI笔记]第二章1.1-1.3偏差/方差/欠拟合/过拟合/训练集/验证集/测试集;WUST许志伟;《https://www.cnblogs.com/cloud-ken/p/7688889.html》;20171018;第1-5页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110533156A (zh) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108229508B (zh) | 用于训练图像处理装置的训练装置和训练方法 | |
CN111160533A (zh) | 一种基于跨分辨率知识蒸馏的神经网络加速方法 | |
CN111008693B (zh) | 一种基于数据压缩的网络模型构建方法、***和介质 | |
JP2018109947A (ja) | ニューラルネットワークの処理速度を向上させるための装置及び方法、並びにその応用 | |
CN111401788A (zh) | 业务时序指标的归因方法以及装置 | |
CN106384197A (zh) | 一种基于大数据的业务质量评估方法和装置 | |
CN110458247A (zh) | 图像识别模型的训练方法及装置、图像识别方法及装置 | |
CN107229966A (zh) | 一种模型数据更新方法、装置及*** | |
CN112819020A (zh) | 训练分类模型的方法和装置及分类方法 | |
CN106802888B (zh) | 词向量训练方法和装置 | |
CN109685805B (zh) | 一种图像分割方法及装置 | |
CN114781650B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN111161314A (zh) | 目标对象的位置区域确定方法、装置、电子设备及存储介质 | |
CN106709028A (zh) | 高通量测序数据统计方法和统计装置 | |
CN116401555A (zh) | 双胞识别模型的构建方法、***及存储介质 | |
CN113409898A (zh) | 分子结构获取方法、装置、电子设备及存储介质 | |
CN110533156B (zh) | 提高卷积神经网络的处理速度的方法和设备 | |
CN113827978A (zh) | 一种流失用户预测方法、装置及计算机可读存储介质 | |
Park et al. | Balanced column-wise block pruning for maximizing GPU parallelism | |
CN112598078B (zh) | 混合精度训练方法、装置、电子设备及存储介质 | |
CN112507107A (zh) | 术语匹配方法、装置、终端和计算机可读存储介质 | |
CN112819161B (zh) | 变长基因遗传算法的神经网络构建***、方法及存储介质 | |
CN115204381A (zh) | 弱监督模型训练方法及装置、电子设备 | |
CN113827980A (zh) | 一种流失用户预测方法、装置及计算机可读存储介质 | |
EP3764217A1 (en) | Arithmetic processing apparatus, control method, and control 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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |