CN114819045A - 训练和部署神经网络的方法、电子设备和计算机程序产品 - Google Patents
训练和部署神经网络的方法、电子设备和计算机程序产品 Download PDFInfo
- Publication number
- CN114819045A CN114819045A CN202110121131.5A CN202110121131A CN114819045A CN 114819045 A CN114819045 A CN 114819045A CN 202110121131 A CN202110121131 A CN 202110121131A CN 114819045 A CN114819045 A CN 114819045A
- Authority
- CN
- China
- Prior art keywords
- operand
- tailorable
- neural network
- training
- network structure
- 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/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开的实施例涉及用于训练和部署神经网络的方法、电子设备和计算机程序产品。根据本公开的示例性实现,一种用于训练神经网络的方法,包括:基于训练数据集,确定可裁剪神经网络在不同运算量下的一组优选网络结构;以及基于训练数据集和一组优选网络结构,训练可裁剪神经网络,使得经训练的可裁剪神经网络在给定运算量下具有对应于给定运算量的优选网络结构。以此方式,在训练过程中,可以确定不同运算量下的可裁剪神经网络,从而在部署过程中,可以基于运算量而将对应的可裁剪神经网络部署到不同设备中。
Description
技术领域
本公开的实施例总体涉及信息处理,具体涉及用于训练和部署神经网络的方法、电子设备和计算机程序产品。
背景技术
诸如深度学习网络的神经网络的复杂度可以通过诸如每秒浮点运算次数(FLOP)的运算量来度量。在给定了神经网络的运算量的情况下,运算量将决定神经网络在设备上进行推理所需的时间。对于用于许多不同异构设备的推理应用,为了满足响应时间要求(例如,5毫秒),可以以不同压缩率来压缩神经网络,从而降低神经网络的运算量。例如,图形处理单元(GPU)的响应时间要求较低,而中央处理单元(CPU)的响应时间要求较高。为此,对于GPU,可以使用较低的压缩率来压缩神经网络,以获得较高的推理准确性。对于CPU,可以使用较高的压缩率来压缩神经网络,以实现实时响应。然而,传统的神经网络压缩方式是低效的。
发明内容
本公开的实施例提供了用于训练和部署神经网络的方法、电子设备和计算机程序产品。
在本公开的第一方面,提供了一种用于训练神经网络的方法。该方法包括:基于训练数据集,确定可裁剪神经网络在不同运算量下的一组优选网络结构;以及基于训练数据集和一组优选网络结构,训练可裁剪神经网络,使得经训练的可裁剪神经网络在给定运算量下具有对应于给定运算量的优选网络结构。
在本公开的第二方面,提供了一种用于部署神经网络的方法。该方法包括:获取经训练的可裁剪神经网络,可裁剪神经网络被训练为在给定运算量下具有对应于给定运算量的优选网络结构;基于与目标设备有关的信息和预期性能,确定将向目标设备应用的目标运算量;以及基于目标运算量,向目标设备部署可裁剪神经网络,所部署的可裁剪神经网络具有对应于目标运算量的优选网络结构。
在本公开的第三方面,提供了一种电子设备。该设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得设备执行动作,该动作包括:基于训练数据集,确定可裁剪神经网络在不同运算量下的一组优选网络结构;以及基于训练数据集和一组优选网络结构,训练可裁剪神经网络,使得经训练的可裁剪神经网络在给定运算量下具有对应于给定运算量的优选网络结构。
在本公开的第四方面,提供了一种电子设备。该设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时使得设备执行动作,该动作包括:获取经训练的可裁剪神经网络,可裁剪神经网络被训练为在给定运算量下具有对应于给定运算量的优选网络结构;基于与目标设备有关的信息和预期性能,确定将向目标设备应用的目标运算量;以及基于目标运算量,向目标设备部署可裁剪神经网络,所部署的可裁剪神经网络具有对应于目标运算量的优选网络结构。
在本公开的第五方面,提供了一种计算机程序产品。计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器实现根据本公开的第一方面所描述的方法的任意步骤。
在本公开的第六方面,提供了一种计算机程序产品。计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器实现根据本公开的第二方面所描述的方法的任意步骤。
提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或必要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了本公开的一些实施例能够在其中实现的环境的示例的示意图;
图2示出了根据本公开的一些实施例的用于训练神经网络的方法的示例的流程图;
图3示出了根据本公开的一些实施例的可裁剪神经网络的压缩的示例的示意图;
图4示出了根据本公开的一些实施例的用于部署神经网络的方法的示例的流程图;以及
图5示出了可以用来实施本公开内容的实施例的示例设备的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上所述,对于用于许多不同异构设备的推理应用,为了满足响应时间要求,可以以不同压缩率来压缩神经网络,从而降低神经网络的运算量。然而,传统的神经网络压缩方式是低效的。
例如,不同平台的设备可以动态改变。传统上,需要为每个不同设备定制神经网络的压缩方式。显然,这种解决方案非常低效且耗时的。尤其是在遇到无法预见的设备的情况下,该解决方案将无法使用。
此外,传统上,在压缩神经网络时,通常对神经网络的每一层进行相同比例的压缩。例如,在需要将神经网络的运算量压缩50%的情况下,神经网络的每一层的通道被压缩50%。这种情况下,没有考虑不同层对神经网络的性能的不同影响。因此,无法在压缩之后,得到性能最优的神经网络。
作为示例,具有许多加速器的边缘计算环境是异构的。这些加速器对由神经网络定义的数学运算的支持可能有限,但是边缘推理应用又具有响应时间要求。例如,自动驾驶系统需要响应于检测到的信号来减速、转弯或变换车道。下限响应时间可以大致由神经网络的运算量决定。例如,假设诸如S-ResNet-50的神经网络的运算量为4.1G FLOP,某一GPU的运算能力为100T FLOP,并且某一CPU的运算能力为289G FLOP,则该神经网络在该GPU上进行推理将至少花费4.1×10-5秒,并且在该CPU上进行推理将至少花费1.4×10-2秒。因此,为了节省推理时间,可以在降低准确性的情况下,使用压缩的神经网络进行推理。
传统上,可以通过以下方式减少神经网络的运算量。例如,首先,可以定义可接受的推理的阈值准确性和阈值响应时间。其次,可以指定目标设备,并且从其硬件规格获取该目标设备的运算能力。然后,可以迭代地执行以下步骤:(a)压缩神经网络并且记录压缩后的神经网络的当前运算量和当前准确性;(b)如果当前准确性>阈值准确性,则进行下面的步骤c,否则返回错误,以指示目标设备无法满足要求;(c)通过以下方式计算当前响应时间:当前响应时间=神经网络的运算量/目标设备的运算能力;(d)如果当前响应时间<阈值响应时间,则返回成功,并且使用压缩后的神经网络进行推理,否则返回步骤a以重新压缩神经网络。显然,减少神经网络的运算量的传统解决方案非常耗时,并且需要针对每个不同设备执行该解决方案。
根据本公开的示例实施例,提出了一种用于训练和部署神经网络的改进方案。在该方案中,在训练过程中,可以基于训练数据集,确定可裁剪神经网络在不同运算量下的一组优选网络结构。由此,可以基于训练数据集和一组优选网络结构,训练可裁剪神经网络,使得经训练的可裁剪神经网络在给定运算量下具有对应于给定运算量的优选网络结构。
进一步地,在部署过程中,可以获取经训练的可裁剪神经网络。此外,可以基于与目标设备有关的信息和预期性能,确定将向目标设备应用的目标运算量。由此,可以基于目标运算量,向目标设备部署可裁剪神经网络。所部署的可裁剪神经网络具有对应于目标运算量的优选网络结构。
以此方式,在训练过程中,可以确定不同运算量下的可裁剪神经网络,从而在部署过程中,可以基于运算量而将对应的可裁剪神经网络部署到不同设备中。由此,可以在无需针对每个设备训练神经网络的情况下,对于任意设备实现快速的实时响应和较高的推理准确性。
图1示出了本公开的一些实施例能够在其中实现的环境100的示例的示意图。环境100包括训练设备110、部署设备120和目标设备130。这些设备110-130可以是具有计算能力的任何设备。作为示例,这些设备110-130可以是个人计算机、平板计算机、可穿戴设备、云服务器、大型机和分布式计算系统等。应理解,为了清楚起见,设备110-130被示出为不同的设备,但是在实现中,设备110-130中的至少部分设备(例如,设备110和120)可以是相同的设备。
训练设备110用于训练神经网络。神经网络可以是任何适当网络,例如诸如Mobilenet v1、Mobilenet v2等的深度学习网络。神经网络可以被压缩,以节省神经网络的参数占用的存储资源以及神经网络的运算量。例如,可以裁剪神经网络内的非关键通道,以减少其运算量。具体地,可以基于通道对最终训练结果的贡献来裁剪非关键通道。因此,在下文中,神经网络可以可互换地称为可裁剪神经网络。
鉴于此,训练设备110可以基于训练数据集140(例如,Cifar-10、Cifar-100等),确定可裁剪神经网络在不同运算量下的一组优选网络结构。由此,训练设备110可以基于训练数据集和一组优选网络结构,训练可裁剪神经网络,使得经训练的可裁剪神经网络150在给定运算量下具有对应于给定运算量的优选网络结构。应理解,这些优选网络结构与要部署经训练的可裁剪神经网络的目标设备130无关。换句话说,对于不同的目标设备,只要所需的运算量相同,则确定出的优选网络结构相同。以此方式,针对不同的目标设备,无需分别确定优选网络结构,从而无需分别训练可裁剪神经网络。
进一步地,部署设备120用于在目标设备130上部署可裁剪神经网络。具体地,部署设备120可以获取经训练的可裁剪神经网络150。进一步地,部署设备120可以基于与目标设备130有关的信息160和预期性能170,确定将向目标设备130应用的目标运算量。由此,部署设备120可以基于目标运算量,向目标设备130部署可裁剪神经网络,其中所部署的可裁剪神经网络180具有对应于目标运算量的优选网络结构。
以此方式,可以根据目标设备130所需的目标运算量,在目标设备130上部署具有对应于该目标运算量的优选网络结构的可裁剪神经网络。如上所述,在可裁剪神经网络的训练过程中,已经确定出具有针对不同运算量的优选网络结构的可裁剪神经网络。在这种情况下,在部署过程中,可以直接选择具有对应于该目标运算量的优选网络结构的可裁剪神经网络。因此,针对不同的目标设备,无需分别训练可裁剪神经网络。相反,经训练的可裁剪神经网络可以适用于各种不同目标设备,因此被高效和快速地部署到各种目标设备上。
图2示出了根据本公开的一些实施例的用于训练神经网络的方法200的流程图。方法200可以由如图1所示的训练设备110来实现。备选地,方法200也可以由除了训练设备110之外的其他主体实现。应当理解的是,方法200还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的范围在此方面不受限制。
在210,训练设备110基于训练数据集140,确定可裁剪神经网络在不同运算量下的一组优选网络结构。优选网络结构的确定可以通过可学习全局排名(Learnable GlobalRank,LeGR)方法来进行。LeGR方法是一种获得运算量与准确性的折衷曲线的有效方法。LeGR方法不是在每一层上搜索要裁剪的通道的百分比,而是在通道范式上搜索逐层仿射变换,使得变换后的通道范式可以对通道进行跨层地全局排名。全局排名结构为探索具有不同约束级别的卷积神经网络(Convolutional Neural Network,CNN)提供了一种有效的方法,其仅需对最低排名的通道设置阈值即可实现。
鉴于此,在某些实施例中,训练设备110可以确定可裁剪神经网络在第一运算量下的一组候选网络结构。进一步地,训练设备110可以从一组候选网络结构中选择性能最优的候选网络结构,以作为对应于第一运算量的优选网络结构。
在某些实施例中,为了确定一组候选网络结构,训练设备110可以确定可裁剪神经网络在最大运算量下的完整网络结构。训练设备110可以基于第一运算量和最大运算量,确定可用于完整网络结构的一组压缩方式。由此,训练设备110可以基于一组压缩方式来压缩完整网络结构,以确定一组候选网络结构。
图3示出了根据本公开的一些实施例的可裁剪神经网络的压缩300的示例的示意图。如图3所示,在一种压缩方式中,在最大运算量下的完整网络结构310可以被压缩为在第一运算量下的候选网络结构320。在该候选网络结构320中,可裁剪神经网络的第1层被裁剪掉3个通道,第2层被裁剪掉1个通道,并且第3层被裁剪掉2个通道。应理解,完整网络结构310和候选网络结构320仅是示例,可裁剪神经网络可以具有任何适当的完整网络结构,并且可以以任何适当的压缩方式被压缩。
可见,在压缩可裁剪神经网络时,并非对可裁剪神经网络的每一层进行相同比例的压缩,而是考虑了不同层对可裁剪神经网络的性能的不同影响。以此方式,对于不同的运算量,都可以确定出性能最优的优选网络结构。
返回参考图2,在220,训练设备110基于训练数据集和一组优选网络结构,训练可裁剪神经网络,使得经训练的可裁剪神经网络在给定运算量下具有对应于给定运算量的优选网络结构。
在某些实施例中,训练设备110可以迭代地训练可裁剪神经网络。在迭代过程中,训练设备110可以确定用于训练可裁剪神经网络的运算量集合。运算量集合可以包括最大运算量、最小运算量、以及在最大运算量和最小运算量之间选择的中间运算量。例如,最大运算量、最小运算量和中间运算量可以分别为总运算量的100%、30%和50%。
训练设备110可以从一组优选网络结构中确定与最大运算量、最小运算量和中间运算量分别对应的第一优选网络结构、第二优选网络结构和第三优选网络结构。例如,第一优选网络结构可以是完整网络结构。第二优选网络结构可以是相对于完整网络结构,第1层裁剪50%的通道,第2层裁剪80%的通道,并且第3层裁剪60%的通道的网络结构。而第三优选网络结构可以是相对于完整网络结构,第1层裁剪20%的通道,第2层裁剪60%的通道,并且第3层裁剪40%的通道的网络结构。
由此,训练设备110可以基于训练数据集和对应于最大运算量的第一优选网络结构,训练可裁剪神经网络。然后,训练设备110可以基于训练数据集、对应于最小运算量的第二优选网络结构和对应于中间运算量的第三优选网络结构,进一步训练可裁剪神经网络。这是因为,对应于最大运算量的第一优选网络结构更为复杂并且准确性更高,例如是完整网络结构。在这种情况下,可以将基于训练数据集和第一优选网络结构训练可裁剪神经网络的结果作为用于进一步训练的参考。
上面描述了可裁剪神经网络的训练过程,在下文中将结合图4描述经训练的可裁剪神经网络的部署过程。
图4示出了根据本公开的一些实施例的用于部署神经网络的方法400的示例的流程图。方法400可以由如图1所示的部署设备120来实现。备选地,方法400也可以由除了部署设备120之外的其他主体实现。应当理解的是,方法400还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的范围在此方面不受限制。
在410,部署设备120获取经训练的可裁剪神经网络150。该可裁剪神经网络被训练为在给定运算量下具有对应于给定运算量的优选网络结构。例如,在给定运算量为总运算量的100%的情况下,可裁剪神经网络具有第一优选网络结构,在给定运算量为总运算量的30%的情况下,可裁剪神经网络具有第二优选网络结构,并且在给定运算量为总运算量的50%的情况下,可裁剪神经网络具有第三优选网络结构。应理解,这些给定运算量及其对应的优选网络结构仅是示例。事实上,对于每个适当的运算量,都可能具有对应的优选网络结构。
在420,部署设备120基于与目标设备130有关的信息160和预期性能170,确定将向目标设备130应用的目标运算量,例如总运算量的50%。例如,与目标设备130有关的信息160可以是目标设备130的运算能力。预期性能可以包括预期准确性和/或预期响应时间。
在430,部署设备120基于目标运算量,向目标设备130部署可裁剪神经网络180。所部署的可裁剪神经网络180具有对应于目标运算量的优选网络结构。例如,目标运算量为总运算量的50%。为此,可以在目标设备130上部署具有第三优选网络结构的可裁剪神经网络。
以此方式,可以根据目标设备130所需的目标运算量,在目标设备130上部署具有对应于该目标运算量的优选网络结构的可裁剪神经网络。如上所述,在可裁剪神经网络的训练过程中,已经确定出具有针对不同运算量的优选网络结构的可裁剪神经网络。在这种情况下,在部署过程中,可以直接选择具有对应于该目标运算量的优选网络结构的可裁剪神经网络。因此,针对不同的目标设备,无需分别训练可裁剪神经网络。相反,经训练的可裁剪神经网络可以适用于各种不同目标设备,因此被高效和快速地部署到各种目标设备上。
图5示出了可以用来实施本公开内容的实施例的示例设备500的示意性框图。例如,如图1所示的训练设备110和部署设备120可以由设备500来实施。如图所示,设备500包括中央处理单元(CPU)510,其可以根据存储在只读存储器(ROM)520中的计算机程序指令或者从存储单元580加载到随机访问存储器(RAM)530中的计算机程序指令,来执行各种适当的动作和处理。在RAM 530中,还可存储设备500操作所需的各种程序和数据。CPU 510、ROM520以及RAM 530通过总线540彼此相连。输入/输出(I/O)接口550也连接至总线540。
设备500中的多个部件连接至I/O接口550,包括:输入单元560,例如键盘、鼠标等;输出单元570,例如各种类型的显示器、扬声器等;存储单元580,例如磁盘、光盘等;以及通信单元590,例如网卡、调制解调器、无线通信收发机等。通信单元590允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如过程200和400,可由处理单元510执行。例如,在一些实施例中,过程200和400可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元580。在一些实施例中,计算机程序的部分或者全部可以经由ROM 520和/或通信单元590而被载入和/或安装到设备500上。当计算机程序被加载到RAM 530并由CPU 510执行时,可以执行上文描述的过程200和400的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Java、Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (14)
1.一种训练神经网络的方法,包括:
基于训练数据集,确定可裁剪神经网络在不同运算量下的一组优选网络结构;以及
基于所述训练数据集和所述一组优选网络结构,训练所述可裁剪神经网络,使得经训练的所述可裁剪神经网络在给定运算量下具有对应于所述给定运算量的优选网络结构。
2.根据权利要求1所述的方法,其中确定所述一组优选网络结构包括:
确定所述可裁剪神经网络在第一运算量下的一组候选网络结构;
从所述一组候选网络结构中选择性能最优的候选网络结构,以作为对应于所述第一运算量的优选网络结构。
3.根据权利要求2所述的方法,其中确定所述一组候选网络结构包括:
确定所述可裁剪神经网络在最大运算量下的完整网络结构;
基于所述第一运算量和所述最大运算量,确定可用于所述完整网络结构的一组压缩方式;以及
基于所述一组压缩方式来压缩所述完整网络结构,以确定所述一组候选网络结构。
4.根据权利要求1所述的方法,其中训练所述可裁剪神经网络包括迭代地执行以下操作至少一次:
确定用于训练所述可裁剪神经网络的运算量集合,所述运算量集合包括最大运算量、最小运算量、以及在所述最大运算量和所述最小运算量之间选择的中间运算量;
从所述一组优选网络结构中确定与所述最大运算量、所述最小运算量和所述中间运算量分别对应的第一优选网络结构、第二优选网络结构和第三优选网络结构;
基于所述训练数据集和对应于所述最大运算量的所述第一优选网络结构,训练所述可裁剪神经网络;以及
基于所述训练数据集、对应于所述最小运算量的所述第二优选网络结构和对应于所述中间运算量的所述第三优选网络结构,进一步训练所述可裁剪神经网络。
5.一种部署神经网络的方法,包括:
获取经训练的可裁剪神经网络,所述可裁剪神经网络被训练为在给定运算量下具有对应于所述给定运算量的优选网络结构;
基于与目标设备有关的信息和预期性能,确定将向所述目标设备应用的目标运算量;以及
基于所述目标运算量,向所述目标设备部署所述可裁剪神经网络,所部署的所述可裁剪神经网络具有对应于所述目标运算量的优选网络结构。
6.根据权利要求5所述的方法,其中所述预期性能包括预期准确性和预期响应时间中的至少一项。
7.一种电子设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
基于训练数据集,确定可裁剪神经网络在不同运算量下的一组优选网络结构;以及
基于所述训练数据集和所述一组优选网络结构,训练所述可裁剪神经网络,使得经训练的所述可裁剪神经网络在给定运算量下具有对应于所述给定运算量的优选网络结构。
8.根据权利要求7所述的设备,其中确定所述一组优选网络结构包括:
确定所述可裁剪神经网络在第一运算量下的一组候选网络结构;
从所述一组候选网络结构中选择性能最优的候选网络结构,以作为对应于所述第一运算量的优选网络结构。
9.根据权利要求8所述的设备,其中确定所述一组候选网络结构包括:
确定所述可裁剪神经网络在最大运算量下的完整网络结构;
基于所述第一运算量和所述最大运算量,确定可用于所述完整网络结构的一组压缩方式;以及
基于所述一组压缩方式来压缩所述完整网络结构,以确定所述一组候选网络结构。
10.根据权利要求7所述的设备,其中训练所述可裁剪神经网络包括迭代地执行以下操作至少一次:
确定用于训练所述可裁剪神经网络的运算量集合,所述运算量集合包括最大运算量、最小运算量、以及在所述最大运算量和所述最小运算量之间选择的中间运算量;
从所述一组优选网络结构中确定与所述最大运算量、所述最小运算量和所述中间运算量分别对应的第一优选网络结构、第二优选网络结构和第三优选网络结构;
基于所述训练数据集和对应于所述最大运算量的所述第一优选网络结构,训练所述可裁剪神经网络;以及
基于所述训练数据集、对应于所述最小运算量的所述第二优选网络结构和对应于所述中间运算量的所述第三优选网络结构,进一步训练所述可裁剪神经网络。
11.一种电子设备,包括:
至少一个处理单元;
至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储用于由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述设备执行动作,所述动作包括:
获取经训练的可裁剪神经网络,所述可裁剪神经网络被训练为在给定运算量下具有对应于所述给定运算量的优选网络结构;
基于与目标设备有关的信息和预期性能,确定将向所述目标设备应用的目标运算量;以及
基于所述目标运算量,向所述目标设备部署所述可裁剪神经网络,所部署的所述可裁剪神经网络具有对应于所述目标运算量的优选网络结构。
12.根据权利要求11所述的设备,其中所述预期性能包括预期准确性和预期响应时间中的至少一项。
13.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至4任一项所述的方法的步骤。
14.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求5至6任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110121131.5A CN114819045A (zh) | 2021-01-28 | 2021-01-28 | 训练和部署神经网络的方法、电子设备和计算机程序产品 |
US17/190,557 US20220237464A1 (en) | 2021-01-28 | 2021-03-03 | Method, electronic device, and computer program product for training and deploying neural network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110121131.5A CN114819045A (zh) | 2021-01-28 | 2021-01-28 | 训练和部署神经网络的方法、电子设备和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114819045A true CN114819045A (zh) | 2022-07-29 |
Family
ID=82494663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110121131.5A Pending CN114819045A (zh) | 2021-01-28 | 2021-01-28 | 训练和部署神经网络的方法、电子设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220237464A1 (zh) |
CN (1) | CN114819045A (zh) |
-
2021
- 2021-01-28 CN CN202110121131.5A patent/CN114819045A/zh active Pending
- 2021-03-03 US US17/190,557 patent/US20220237464A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220237464A1 (en) | 2022-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11223644B2 (en) | Graphical structure model-based prevention and control of abnormal accounts | |
US11436129B2 (en) | System, method and recording medium for generating mobile test sequences | |
CN110807515A (zh) | 模型生成方法和装置 | |
CN113342345A (zh) | 深度学习框架的算子融合方法、装置 | |
CN109272348B (zh) | 活跃用户数量确定方法及装置、存储介质和电子设备 | |
CN111563593B (zh) | 神经网络模型的训练方法和装置 | |
US11461291B2 (en) | Method, electronic device and computer program product for processing machine learning model | |
EP4002216A1 (en) | Method for recommending object, neural network, computer program product and computer-readable storage medium | |
CN111340220A (zh) | 用于训练预测模型的方法和装置 | |
US11836538B2 (en) | Heterogeneous graph generation for application microservices | |
JP2012208924A (ja) | 適応的重み付けを用いた様々な文書間類似度計算方法に基づいた文書比較方法および文書比較システム | |
CN114841323A (zh) | 神经网络计算图的处理方法及处理装置 | |
US10268798B2 (en) | Condition analysis | |
US11853715B2 (en) | Floating-point computation with threshold prediction for artificial intelligence system | |
US20200279152A1 (en) | Lexicographic deep reinforcement learning using state constraints and conditional policies | |
US20210056457A1 (en) | Hyper-parameter management | |
CN114819045A (zh) | 训练和部署神经网络的方法、电子设备和计算机程序产品 | |
CN115391661A (zh) | 训练推荐模型的方法、推荐资源的方法及其装置 | |
US10439905B2 (en) | Quantifying and designing optimal connecting networks | |
US20210232891A1 (en) | Neural network model compression with structured weight unification | |
US10936297B2 (en) | Method, device, and computer program product for updating software | |
CN114548407A (zh) | 层级目标定向因果发现方法、装置及电子设备 | |
US10990995B2 (en) | System for cognitive assessment of transactions | |
CN113724115A (zh) | 基于在线教育的数据处理方法及服务器 | |
CN115427960A (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 |