CN113128678A - 神经网络的自适应搜索方法及装置 - Google Patents
神经网络的自适应搜索方法及装置 Download PDFInfo
- Publication number
- CN113128678A CN113128678A CN202010044288.8A CN202010044288A CN113128678A CN 113128678 A CN113128678 A CN 113128678A CN 202010044288 A CN202010044288 A CN 202010044288A CN 113128678 A CN113128678 A CN 113128678A
- Authority
- CN
- China
- Prior art keywords
- neural network
- target
- network
- evaluation
- networks
- 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
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 577
- 238000000034 method Methods 0.000 title claims abstract description 225
- 238000011156 evaluation Methods 0.000 claims abstract description 423
- 238000012549 training Methods 0.000 claims abstract description 125
- 230000008569 process Effects 0.000 claims abstract description 110
- 238000003062 neural network model Methods 0.000 claims description 102
- 230000015654 memory Effects 0.000 claims description 70
- 238000004364 calculation method Methods 0.000 claims description 41
- 230000003044 adaptive effect Effects 0.000 claims description 40
- 238000001514 detection method Methods 0.000 claims description 17
- 230000035772 mutation Effects 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 13
- 238000009396 hybridization Methods 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims description 9
- 238000012216 screening Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 description 51
- 230000006870 function Effects 0.000 description 44
- 238000010586 diagram Methods 0.000 description 21
- 239000013598 vector Substances 0.000 description 21
- 238000011176 pooling Methods 0.000 description 18
- 230000004913 activation Effects 0.000 description 15
- 239000011159 matrix material Substances 0.000 description 14
- 230000001537 neural effect Effects 0.000 description 11
- 230000000694 effects Effects 0.000 description 10
- 238000005070 sampling Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000013527 convolutional neural network Methods 0.000 description 7
- 210000002569 neuron Anatomy 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000010606 normalization Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000036961 partial effect Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000003709 image segmentation Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000004576 sand Substances 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 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/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/042—Knowledge-based neural networks; Logical representations of neural 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/04—Architecture, e.g. interconnection topology
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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/086—Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- 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/0985—Hyperparameter optimisation; Meta-learning; Learning-to-learn
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Feedback Control In General (AREA)
- Measurement Of Resistance Or Impedance (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供神经网络的自适应搜索方法及装置,涉及神经网络领域,能够实现针对硬件平台的自适应神经网络搜索。该方法包括:接收搜索条件集,包括目标硬件平台信息,源神经网络的网络结构信息和一个或多个评估指标。源神经网络的网络结构信息用于表征源神经网络。基于训练数据集对待训练的超级网络执行训练过程,得到经过训练的超级网络。待训练的超级网络是基于源神经网络的网络结构而扩展得到的。基于一个或多个评估指标对经过训练的超级网络执行子网络搜索过程,以得到目标神经网络的网络结构信息,目标神经网络的网络结构信息用于表征目标神经网络,目标神经网络运行在目标硬件平台上的评估结果优于源神经网络运行在目标硬件平台上的评估结果。
Description
技术领域
本申请涉及神经网络领域,尤其涉及一种神经网络的自适应搜索方法及装置。
背景技术
近年来,神经网络在计算机视觉应用中取得了快速发展。随着神经网络正确率的逐步提高,神经网络的网络结构也越来越复杂,对设备的计算资源要求提升,造成设备的运行速率低,时间开销大。
目前,现有技术中的神经网络搜索方法,一般会基于每秒浮点运算次数(floating-point operations per second,FLOPs)进行神经网络模型搜索。其中,FLOPs常用于估算硬件平台的运行效率(亦称为模型开销)。那么基于FLOPs进行神经网络模型搜索,可能为不同的硬件平台搜索到同一个目标神经网络,该同一个目标神经网络在不同硬件平台上FLOPS(例如目标神经网络在不同硬件平台上的加法和乘法的计算量)相同。然而,并不是说FLOPS越低,神经网络模型的推理时间就一定越短。例如,现有三个硬件平台,硬件平台1(CPU1),硬件平台2(CPU2),硬件平台3(GPU),采用现有技术,基于FLOPs进行神经网络搜索,可能搜索得到同一个目标神经网络,该目标神经网络在三个硬件平台上的FLOPs较低。但在实际运行过程中,由于三个硬件平台结构的不同,可能该目标神经网络,在硬件平台1运行效果较好,在硬件平台2运行效果一般,而在硬件平台3运行效果较差。
又或者,基于FLOPs进行神经网络模型搜索,可能为某个硬件平台搜索到某个目标神经网络,该目标神经网络在该硬件平台上的FLOPs较低(比如该目标神经网络的加法和乘法的计算量较小),然而实际上该目标神经网络在该硬件平台上的运行效率较差(亦称为模型开销较大)。
可见,如何针对特定的硬件平台,搜索到在该硬件平台上高效运行的目标神经网络,已成为亟待解决的问题。
发明内容
本申请提供的神经网络的自适应搜索方法,能在较高的搜索灵活性的前提下,搜索得到适应于目标硬件平台的目标神经网络。
为达到上述目的,本申请采用如下技术方案:
第一方面,本申请提供一种神经网络的自适应搜索方法,该方法可以包括:接收搜索条件集,搜索条件集包括:目标硬件平台信息,源神经网络的网络结构信息和一个或多个评估指标,源神经网络的网络结构信息用于表征源神经网络。基于训练数据集对待训练的超级网络执行训练过程,得到经过训练的超级网络,其中待训练的超级网络是基于源神经网络的网络结构而扩展得到的。基于一个或多个评估指标对经过训练的超级网络执行子网络搜索过程,以得到目标神经网络的网络结构信息,其中目标神经网络的网络结构信息用于表征目标神经网络,目标神经网络运行在目标硬件平台上的评估结果优于源神经网络运行在目标硬件平台上的评估结果。
其中,在经过训练的超级网络中搜索到的目标神经网络的数量可以是一个或多个,比如基于目标硬件平台信息以及一个或多个评估指标,将评估结果最优的一个神经网络作为目标神经网络。或者,将按照评估结果排序,得到排序在先的较优的多个神经网络作为目标神经网络。
其中,目标硬件平台包括用于搭载神经网络的平台。获得的目标硬件平台信息例如可以包括硬件平台的属性信息(例如图形处理器(graphics processing unit,GPU)、主中央处理器(central processing unit,CPU)、数字信号处理器(digital signalprocessor,DSP)等),型号,厂家等。如此,可以得到不同的硬件平台对不同的算子和/或算子集合不同的实现及优化情况,进而实现自适应的神经网络搜索。
其中,评估指标,也可以称之为搜索条件,约束条件等。评估指标用于确保最终搜索到的神经网络满足需求。例如需要搜索到的神经网络的精度以及时间开销满足要求。
其中,神经网络的网络结构信息例如可以包括神经网络包含的算子和/或算子集合信息,算子和/或算子集合的排布方式(例如构成树状结构的神经网络,网状结构的神经网络等),层级信息,算子和/或算子集合的参数等。
如此,相较于现有的基于FLOPs进行神经网络搜索的方法,本申请提供的神经网络的自适应搜索方法,是基于搜索条件集在经过训练的超级网络中进行神经网络搜索的,其中超级网络是基于所述源神经网络的网络结构而扩展得到的,因此所述超级网络能覆盖或支持不同的硬件平台对算子/通道的不同的实现。由于搜索条件集可以是灵活设置,且搜索条件集中至少包括目标硬件平台信息,因此,采用本申请提供的方法,能在较高搜索灵活性的前提下,考虑不同的硬件平台对算子/通道的不同的实现所带来的算子/通道开销的不同,自适应的搜索得到针对目标硬件平台的目标申请网络,其中所述目标神经网络在目标硬件平台上的运行效果优于源神经网络在目标硬件平台上的运行效果。例如,假设源神经网络中的算子A为1×1的卷积算法需要1千万次乘法,算子B为3×3的卷积算法需要1.5千万次运算,源神经网络运行在目标硬件平台上,算子A需要2μs,算子B需要3μs,而目标神经网络中的算子A运行在目标硬件平台上需要2μs,算子B’(例如对算子B做了优化)仅仅需要1.5μs。
在一种可能的实现方式中,一个或多个评估指标包括如下任一项或几项:神经网络模型的精度评估指标,神经网络模型的时间开销评估指标,神经网络模型的存储空间评估指标,神经网络模型的功耗评估指标,神经网络模型的张量计算单元的利用率评估指标,神经网络模型的内存读写速率评估指标。其中,神经网络模型的精度评估指标包括目标神经网络的精度不低于精度阈值。神经网络模型的时间开销评估指标包括目标神经网络的时间开销不大于时间开销阈值。神经网络模型的存储空间评估指标包括目标神经网络占用的存储空间不大于存储空间阈值。神经网络模型的功耗评估指标包括目标神经网络的功耗不大于功耗阈值。神经网络模型的张量计算单元的利用率评估指标包括目标神经网络的张量计算单元的利用率不小于张量计算单元的利用率阈值。神经网络模型的内存读写速率评估指标包括目标神经网络的内存读写速率不小于内存读写速率阈值。
如此,可以根据不同的用户需求,或不同的应用场景,或不同的任务等因素设置一个或多个评估指标的组合方式。例如根据硬件平台本身的硬件指标,神经网络的任务不同等,确定评估指标的组合方式。示例性的,可以配置两个评估指标,精度评估指标以及时间开销评估指标,则需要同时设置精度阈值和时间开销阈值。举个例子,某些场景下,需要短时间内获得大量图像的识别结果,但对图像识别的精度要求不高。那么,可以设置较小的精度阈值,以及较小的时间开销阈值,使得搜索到的目标神经网络相较于源神经网络,识别速度更快。
在一种可能的实现方式中,基于一个或多个评估指标对经过训练的超级网络执行子网络搜索过程,以得到目标神经网络的网络结构信息,包括:利用第一知识库,从经过训练的超级网络中确定目标搜索范围内的待评估的一个或多个候选子网络。基于一个或多个评估指标对目标搜索范围内的待评估的一个或多个候选子网络执行子网络搜索过程,以得到目标神经网络的网络结构信息。
其中,第一知识库中例如可以包括专家先验知识。其中,第一知识库包括基于专家经验确定的神经网络的网络感受野限制约束,以及针对特定硬件平台的算子和/或算子集合的优化情况等。其中,优化情况例如可以包括,针对某特定硬件平台输入的(7×7卷积算子+pooling)进行优化,使其虽然计算量大于(3×3卷积算子+pooling)或(5×5卷积算子+pooling)的计算量,但在当前硬件平台的时间开销小于(3×3卷积算子+pooling)或(5×5卷积算子+pooling)的时间开销。如此,基于第一知识库可以直接确定选择包括时间开销更低(7×7卷积算子+pooling)的神经网络作为候选子网络,缩小目标搜索范围,提高神经网络的搜索效率。
如此,可以利用第一知识库,基于目标硬件平台信息,在超级网络中确定目标搜索范围,在目标搜索范围内执行子网络搜索过程,有利于缩小搜索子网络的搜索范围,减少搜索时间,提高神经网络搜索效率。
在一种可能的实现方式中,基于一个或多个评估指标对经过训练的超级网络执行子网络搜索过程,以得到目标神经网络的网络结构信息,包括:获取目标硬件平台信息、M个神经网络的网络结构、N个评估指标、以及P个评估结果之间的对应关系信息,其中,M,N和P都是正整数;M个神经网络的网络结构包括于经过训练的超级网络的网络结构。基于一个或多个评估指标和对应关系信息,确定经过训练的超级网络中包括的待评估的一个或多个候选子网络的评估结果。基于待评估的一个或多个候选子网络的评估结果对所述经过训练的超级网络执行搜索过程,以得到目标神经网络的网络结构信息。
其中,M个神经网络为从经过训练的超级网络中抽取的子网络,即待评估的候选子网络。显然,M个神经网络的网络结构包括于经过训练的超级网络的网络结构。一个候选子网络在目标硬件平台上运行时,基于N个评估指标对应N个评估结果。M个候选子网络在目标硬件平台上运行时,基于N个评估指标对应M*N个评估结果,即P个评估结果。然后,基于该P个评估结果确定一个或多个候选子网络为目标神经网络。
如此,在搜索过程中,选择一个或多个评估指标中的任一个或多个评估指标,都可以根据对应关系确定候选子网络的评估结果,进而可以确定目标神经网络的网络结构信息。
举例来说,在目标硬件平台1上,评估指标为精度,候选子网络1的评估结果A,候选子网络2的评估结果B,A优于B。则若目标神经网络的数量为1,则基于一个或多个评估指标和对应关系信息,确定候选子网络1为目标神经网络。
在一种可能的实现方式中,一个或多个评估指标包括神经网络模型的时间开销评估指标,神经网络模型的时间开销评估指标包括目标神经网络的时间开销不大于时间开销阈值,相应的,基于一个或多个评估指标对经训练的超级网络执行子网络搜索过程,包括:基于神经网络模型的时间开销评估指标对经过训练的超级网络中包括的一个或多个候选子网络进行子网络评估,以得到神经网络模型的时间开销小于时间开销阈值的一个或多个目标神经网络。
举例来说,某神经网络在某硬件平台上运行,该硬件平台用于处理图像,原处理速度为每秒处理100张图像。现需要提高该硬件平台处理图像的速度,例如使得优化后的神经网络在该硬件平台处理图像的速度达到每秒处理150张图像,则可以设置时间开销评估指标,利用时间开销阈值,保证搜索到的目标神经网络处理图像的速度可以满足需求。
在一种可能的实现方式中,该方法还包括:根据源神经网络的网络结构、第二知识库中的扩展规则以及目标硬件平台信息,采用横向和/或纵向的扩展方式构建待训练的超级网络。
其中,第二知识库可以与上述第一知识库相同或不同,第二知识库中扩展规则包括基于不同的硬件平台,源神经网络中的算子集合(即下文中的第一算子集合)和与该算子集合对应的可以替换的算子集合(即下文中的衍生的第二算子集合)具有不同的对应关系。可以理解的是,源神经网络中的算子集合和对应的可以替换的算子集合具有相同或相似的功能。其中,对应关系包括基于目标硬件平台的源神经网络中的算子集合和可以替换的算子集合的对应关系。并且,该对应关系为基于实验数据、专家先验知识以及目标硬件平台的设计情况建立的,如此,扩展规则可以用于限定超级网络的网络规模。比如,源神经网络中某算子集合在目标硬件平台的运行效果不佳,则可以基于第二知识库替换(不保留)该算子集合,进而减少生成的超级网络的网络规模。
其中,横向的扩展方式包括基于源神经网络的网络结构信息,将源神经网络中一个层级包含的算子集合扩展为超级网络中一个层级中包含的一个或多个算子集合。纵向的扩展方式包括基于源神经网络的网络结构信息,将源神经网络中一个层级纵向扩展为多个层级,再根据纵向扩展后的多个层级中包含的算子集合对应获得超级网络中多个层级中包含的多个算子集合。
其中,获得的待训练的超级网络中包含的算子集合与源神经网络中对应的算子集合的功能相同,进而在超级网络中搜索得到的目标神经网络可以执行与源神经网络的任务,如图像识别中的图像分类任务等。
在一种可能的实现方式中,待训练的超级网络中第三算子集合包括:第一算子集合和/或衍生的第二算子集合,其中第一算子集合包括于源神经网络中。
其中,超级网络中的每一第三算子集合可以对应于源神经网络的一个层级,每一层级中的第一算子集合可以基于知识库衍生出第二算子集合,则第三算子集合中包括第一算子集合和衍生的第二算子集合。或者,基于知识库确定某层级中衍生的第二算子集合可以替换第一算子集合,则使得对应的第三算子集合中仅包括衍生的第二算子集合。当然也可以基于知识库确定某层级不存在衍生的第二算子集合,则对应的第三算子集合中仅包括第一算子集合。
在一种可能的实现方式中,基于一个或多个评估指标和对应关系信息,确定经过训练的超级网络中包括的待评估的一个或多个候选子网络的评估结果,包括:基于一个或多个评估指标和对应关系信息,确定经过训练的超级网络中各个第三算子集合中的各个第一算子集合和/或各个衍生的第二算子集合对应的评估结果,其中第一算子集合包括于源神经网络中。基于N个评估指标的比例关系以及各个第三算子集合中的各个第一算子集合和/或各个衍生的第二算子集合对应的评估结果,获得待评估的一个或多个候选子网络的评估结果。
其中,比例关系可以基于目标硬件平台执行的目标任务或目标硬件平台的属性等确定。可以理解的是,N个评估指标的比例关系,体现了N个评估指标之间的相对重要程度。显然,比例越高的评估指标,搜索得到的目标神经网络在目标硬件平台上基于该评估指标的评估效果越好。比如评估指标中包括精度和时间开销,目标硬件平台为用于处理郊外的视频监控图像的硬件平台,在单位时间内采集到的监控图像中包含的信息量较少,需要保证较高的图像处理精度,但对于处理速度要求较低,则可以在比例关系中将精度占比设置的较高。如此,基于比例关系,以及评估结果,可以获得在目标硬件平台运行性能更优的候选子网络,进而可以搜索到更优的目标神经网络。
在一种可能的实现方式中,基于N个评估指标的比例关系以及各个第三算子集合中的各个第一算子集合和/或各个衍生的第二算子集合对应的评估结果,获得待评估的一个或多个候选子网络的评估结果,包括:接收r个N个评估指标的比例关系,针对每一个N个评估指标的比例关系进行一次预搜索;其中,r为正整数。在一次预搜索过程中,设置各个第一算子集合和/或各个衍生的第二算子集合的评估结果的权重,并基于N个评估指标以及N个评估指标的比例关系,对经过训练的超级网络再次训练,在训练过程中,调整各个第一算子集合和各个衍生的第二算子集合的评估结果对应的权重。根据调整后的各个第一算子集合和各个衍生的第二算子集合的评估结果对应的权重确定待评估的候选子网络,以及待评估的候选子网络的评估结果。根据r次预搜索过程确定待评估的一个或多个候选子网络的评估结果。
其中,预搜索过程是为了缩小目标搜索范围,先基于不同的比例关系确定部分候选子网络,再利用一个或多个评估指标对确定的部分候选子网络进行评估,进而确定目标神经网络的网络结构信息。
其中,在预搜索过程中,通过调整权重比例用于确定每一第三算子集合中较为适用于目标硬件平台的第一算子集合或衍生的第二算子集合。如此,每次预搜索过程中,都可以确定当前比例关系下性能最优的一个候选子网络以及其评估结果。进而在多个比例关系下,可以获得多个候选子网络。如此,可以从多个候选子网络中确定目标神经网络,进而确定目标神经网络的网络结构信息。
在一种可能的实现方式中,N个评估指标包括神经网络模型的精度评估指标以及神经网络模型的时间开销评估指标;相应的,N个评估指标的比例关系包括:精度评估指标以及时间开销评估指标之间的比例关系。
例如:用户输入了精度评估指标和时间开销评估指标的第一比例和第二比例。如此,可以保证目标神经网络的精度不低于源神经网络的精度,或与源目标神经网络的精度相差不大。并且,在保证目标神经网络的精度的同时减少时间开销,即加快目标神经网络在目标硬件平台的运行速度,提高工作效率。
在一种可能的实现方式中,基于待评估的一个或多个候选子网络的评估结果对所述经过训练的超级网络执行搜索过程,以得到目标神经网络的网络结构信息,还包括:将待评估的一个或多个候选子网络的评估结果排序,得到排序在先的K个评估结果对应的K个第一目标候选子网络。根据经过训练的超级网络以及K个第一目标候选子网络,获得第n轮杂交和/或变异后的S个第二目标候选子网络;其中,n为预设筛选次数,n≥1;K和S为正整数,S>K。基于一个或多个评估指标和对应关系信息,获得S个第二目标候选子网络的评估结果并进行排序,得到排序在先的K个评估结果对应的K个第二目标候选子网络。从K*(n+1)个目标候选子网络中获得一个或多个目标神经网络的网络结构信息。
在本申请中,杂交是指将K个第一目标候选子网络中部分第一目标候选子网络中对应层级包含的部分算子集合进行交换,得到第二目标候选子网络。变异是指将K个第一目标候选子网络中部分第一目标候选子网络中包含的部分算子集合替换为经过训练的超级网络中对应层级的部分算子集合,得到第二目标候选子网络。
举例来说,经过(n+1)轮迭代训练,也即经过n轮杂交和/或变异后,得到K*(n+1)个目标候选子网络。可以将K*(n+1)个目标候选子网络根据一个或多个评估指标再次排序,获得一个或多个目标神经网络的网络结构信息。
如此,先将待评估的一个或多个候选子网络的评估结果排序,获取较优的部分候选子网络,缩小目标搜索范围。之后,通过杂交和/或变异的方法,基于较优的部分候选子网络生成更多的候选子网络,在迭代的过程中,得到每次迭代过程中较优的部分候选子网络,在从中确定满足一个或多个评估指标且性能较优的一个或多个目标子网络。
在一种可能的实现方式中,源神经网络为运行在源硬件平台上的神经网络,或者,目标神经网络为运行在目标硬件平台上的神经网络,源硬件平台不同于目标硬件平台。
其中,源硬件平台为不同于目标硬件平台的硬件平台,源硬件平台和目标硬件平台包括不同属性的处理器,或不同型号的处理器,或相同属性不同型号的处理器。源硬件平台将被替换为目标硬件平台。基于运行在源硬件平台的源神经网络搜索需要用于目标硬件平台的目标神经网络。
举例来说,源神经网络为运行在GPU上的神经网络1,现在需要将GPU切换为芯片A,则需要基于神经网络1以及芯片A搜索目标神经网络,目标神经网络在芯片A上的运行效果优于神经网络1在芯片A上的运行效果。
在一种可能的实现方式中,源神经网络和目标神经网络为在不同时域上运行在目标硬件平台上的神经网络。
举例来说,源神经网络为运行在GPU上的神经网络1,现需要提升GPU处理图像速度,则需要优化神经网络1,搜索到的目标神经网络即为优化后的神经网络1。神经网络1和目标神经网络在时间上先后运行或者说是搭载在GPU(目标硬件平台)上。
在一种可能的实现方式中,上述方法还包括:基于目标神经网络的网络结构信息,构建目标神经网络。基于第二训练数据集对目标神经网络执行训练过程,得到经过训练的目标神经网络。
其中,第二训练数据集可以为与第一训练数据集相同或不同的训练数据集,用于参与神经网络的训练过程。通过上述方法搜索到目标神经网络的网络结构信息,可以构建出目标神经网络,利用训练数据集对目标神经网络进行训练,调整目标神经网络中的参数信息,进而获得可以运行于目标硬件平台执行目标任务的神经网络。
在一种可能的实现方式中,经过训练的目标神经网络运行于目标硬件平台,执行目标检测任务和图像分类任务。
如此,得到的经过训练的目标神经网络可以在目标硬件平台执行目标任务。例如,可以执行红绿灯识别任务,行人车辆检测任务等。并且,其在目标硬件平台的运行效果更优,例如,源神经网络在目标硬件平台执行红绿灯识别任务的时间开销为0.2ms,经过训练的目标神经网络在目标硬件平台执行红绿灯识别任务的时间开销为0.1ms。在保证精度基本不变的前提下,时间开销降低50%。
第二方面,本申请提供一种神经网络的自适应搜索装置,该装置可以包括:接收单元,训练单元以及搜索单元。接收单元,用于接收搜索条件集,搜索条件集包括:目标硬件平台信息,源神经网络的网络结构信息和一个或多个评估指标,源神经网络的网络结构信息用于表征源神经网络。训练单元,用于基于训练数据集对待训练的超级网络执行训练过程,得到经过训练的超级网络,其中待训练的超级网络是基于源神经网络的网络结构而扩展得到的。搜索单元,用于基于一个或多个评估指标对经过训练的超级网络执行子网络搜索过程,以得到目标神经网络的网络结构信息,其中目标神经网络的网络结构信息用于表征目标神经网络,目标神经网络运行在目标硬件平台上的评估结果优于源神经网络运行在源硬件平台上的评估结果。
在一种可能的实现方式中,一个或多个评估指标包括如下任一项或几项:神经网络模型的精度评估指标,神经网络模型的时间开销评估指标,神经网络模型的存储空间评估指标,神经网络模型的功耗评估指标,神经网络模型的张量计算单元的利用率评估指标,神经网络模型的内存读写速率评估指标。其中,神经网络模型的精度评估指标包括目标神经网络的精度不低于精度阈值。神经网络模型的时间开销评估指标包括目标神经网络的时间开销不大于时间开销阈值。神经网络模型的存储空间评估指标包括目标神经网络占用的存储空间不大于存储空间阈值。神经网络模型的功耗评估指标包括目标神经网络的功耗不大于功耗阈值。神经网络模型的张量计算单元的利用率评估指标包括目标神经网络的张量计算单元的利用率不小于张量计算单元的利用率阈值。神经网络模型的内存读写速率评估指标包括目标神经网络的内存读写速率不小于内存读写速率阈值。
在一种可能的实现方式中,搜索单元,具体用于利用第一知识库,从经过训练的超级网络中确定目标搜索范围内的待评估的一个或多个候选子网络;基于一个或多个评估指标对目标搜索范围内的待评估的一个或多个候选子网络执行子网络搜索过程,以得到目标神经网络的网络结构信息。
在一种可能的实现方式中,搜索单元,具体用于获取目标硬件平台、M个神经网络的网络结构、N个评估指标、以及P个评估结果之间的对应关系信息,其中,M,N和P都是正整数;M个神经网络的网络结构包括于经过训练的超级网络的网络结构;基于一个或多个评估指标和对应关系信息,确定经过训练的超级网络中包括的待评估的一个或多个候选子网络的评估结果;基于待评估的一个或多个候选子网络的评估结果对所述经过训练的超级网络执行搜索过程,以得到目标神经网络的网络结构信息。
在一种可能的实现方式中,一个或多个评估指标包括神经网络模型的时间开销评估指标,神经网络模型的时间开销评估指标包括目标神经网络的时间开销不大于时间开销阈值,相应的,搜索单元,具体用于基于神经网络模型的时间开销评估指标对经过训练的超级网络中包括的一个或多个候选子网络进行子网络评估,以得到神经网络模型的时间开销小于时间开销阈值的一个或多个目标神经网络。
在一种可能的实现方式中,装置还包括:构建单元,用于根据源神经网络的网络结构、第二知识库中的扩展规则以及目标硬件平台信息,采用横向和/或纵向的扩展方式构建待训练的超级网络。
在一种可能的实现方式中,待训练的超级网络中第三算子集合包括:第一算子集合和/或衍生的第二算子集合,其中第一算子集合包括于源神经网络中。
在一种可能的实现方式中,搜索单元,具体用于基于一个或多个评估指标和对应关系信息,确定经过训练的超级网络中各个第三算子集合中的各个第一算子集合和/或各个衍生的第二算子集合对应的评估结果,其中第一算子集合包括于源神经网络中;基于N个评估指标的比例关系以及各个第三算子集合中的各个第一算子集合和/或各个衍生的第二算子集合对应的评估结果,获得待评估的一个或多个候选子网络的评估结果;基于一个或多个待评估的候选子网络的评估结果对所述经过训练的超级网络执行搜索过程,以得到目标神经网络的网络结构信息。
在一种可能的实现方式中,搜索单元,具体用于接收r个N个评估指标的比例关系,针对每一个N个评估指标的比例关系进行一次预搜索;其中,r为正整数;在一次预搜索过程中,设置各个第一算子集合和/或各个衍生的第二算子集合的评估结果的权重,并基于N个评估指标以及N个评估指标的比例关系,对经过训练的超级网络再次训练,在训练过程中,调整各个第一算子集合和各个衍生的第二算子集合的评估结果对应的权重;根据调整后的各个第一算子集合和各个衍生的第二算子集合的评估结果对应的权重确定待评估的候选子网络,以及待评估的候选子网络的评估结果;根据r次预搜索过程确定待评估的一个或多个候选子网络的评估结果。
在一种可能的实现方式中,N个评估指标包括神经网络模型的精度评估指标以及神经网络模型的时间开销评估指标;相应的,N个评估指标的比例关系包括:精度评估指标以及时间开销评估指标之间的比例关系。
在一种可能的实现方式中,搜索单元,具体用于将待评估的一个或多个候选子网络的评估结果排序,得到排序在先的K个评估结果对应的K个第一目标候选子网络;根据经过训练的超级网络以及K个第一目标候选子网络,获得第n轮杂交和/或变异后的S个第二目标候选子网络;其中,n为预设筛选次数,n≥1;K和S为正整数,S>K;基于一个或多个评估指标和对应关系信息,获得S个第二目标候选子网络的评估结果并进行排序,得到排序在先的K个评估结果对应的K个第二目标候选子网络;从K*(n+1)个目标候选子网络中获得一个或多个目标神经网络的网络结构信息。
在一种可能的实现方式中,源神经网络为运行在源硬件平台上的神经网络,或者,目标神经网络为运行在目标硬件平台上的神经网络,源硬件平台不同于目标硬件平台。
在一种可能的实现方式中,源神经网络和目标神经网络为在不同时域上运行在目标硬件平台上的神经网络。
在一种可能的实现方式中,构建单元还用于基于目标神经网络的网络结构信息,构建目标神经网络。训练单元还用于基于第二训练数据集对目标神经网络执行训练过程,得到经过训练的目标神经网络。
在一种可能的实现方式中,经过训练的目标神经网络运行于目标硬件平台,执行目标检测任务和图像分类任务。
第三方面,本申请提供一种服务器,该服务器可以包括:一个或多个处理器,存储器,以及一个或多个计算机程序。其中一个或多个计算机程序被存储在存储器中,一个或多个计算机程序包括指令。当指令被服务器执行时,使得服务器执行如上述第一方面及其中任一种可能的实现方式中所述的神经网络的自适应搜索方法。
第四方面,本申请提供一种装置,该装置具有实现如上述第一方面及其中任一种可能的实现方式中所述的神经网络的自适应搜索方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第五方面,本申请提供一种计算机可读存储介质,包括计算机指令,当计算机指令在服务器上运行时,使得服务器执行如上述第一方面及其中任一种可能的实现方式中所述的神经网络的自适应搜索方法。
第六方面,本申请提供一种计算机程序产品,当计算机程序产品在服务器上运行时,使得服务器执行如上述第一方面及其中任一种可能的实现方式中所述的神经网络的自适应搜索方法。
第七方面,提供一种电路系统,电路系统包括处理电路,处理电路被配置为执行如上述第一方面及其中任一种可能的实现方式中所述的神经网络的自适应搜索方法。
第八方面,本申请实施例提供一种通信系统,包括至少一个服务器和至少一个终端设备,至少一个服务器执行如上述第一方面及其中任一种可能的实现方式中所述的神经网络的自适应搜索方法,至少一个终端设备向至少一个服务器发送搜索条件集,该搜索条件集包括:目标硬件平台信息,源神经网络的网络结构信息和一个或多个评估指标,源神经网络的网络结构信息用于表征源神经网络;至少一个终端设备接收至少一个服务器发送的经过训练的目标神经网络。
在一种可能的实现方式中,至少一个终端设备还用于确认是否将经过训练的目标神经网络发送至包含目标硬件平台的用户设备。
附图说明
图1是本申请实施例提供的一种神经网络的自适应搜索方法的应用场景示意图;
图2是本申请实施例提供的一种系统架构的示意图;
图3是本申请实施例提供的一种芯片的硬件结构的示意图;
图4是本申请实施例提供的一种神经网络的自适应搜索方法的流程示意图一;
图5是本申请实施例提供的源神经网络的网络结构的示意图一;
图6为本申请实施例提供的源神经网络的网络结构的示意图二;
图7为本申请实施例提供的超级网络的构建过程的示意图一;
图8为本申请实施例提供的超级网络的构建过程的示意图二;
图9为本申请实施例提供的超级网络的网络结构的示意图;
图10是本申请实施例提供的一种神经网络的自适应搜索方法的流程示意图二;
图11为本申请实施例提供的待评估的候选子网络的获取过程的示意图;
图12为本申请实施例提供的目标候选子网络的获取过程的示意图;
图13是本申请实施例提供的一种神经网络的自适应搜索方法的流程示意图三;
图14为本申请实施例提供的装置的结构示意图;
图15为本申请实施例提供的装置的硬件结构示意图。
具体实施方式
下面结合附图对本申请实施例提供的神经网络的自适应搜索方法及装置进行详细地描述。
图1示出了一种神经网络的自适应搜索系统,该神经网络的自适应搜索系统包括数据处理设备和终端设备。数据处理设备与终端设备之间可以通过有线网络或者无线网络连接。本申请实施例对设备之间的连接方式不做具体限定。
上述终端设备指的是客户端设备,可以为开发人员操作的终端设备,提供相关的人机交互界面,以便用户输入神经网络的自适应搜索过程中所需要的相关参数,例如搜索条件集。示例性的,搜索条件集可以包括目标硬件平台信息(例如目标硬件平台的厂家,属性,型号,执行的目标任务类型等),源神经网络的网络结构信息,一个或多个评估指标(例如精度阈值,时间开销阈值,存储空间阈值等)等。示例性的,终端设备可以是桌面型、膝上型、手持计算机、笔记本电脑等的终端设备。本申请实施例对终端设备的具体形态不作特殊限制。
其中,硬件平台例如可以包括以下其中一种或几种:图形处理器(graphicsprocessing unit,GPU)、主中央处理器(central processing unit,CPU)、图像信号处理器(image signal processor,ISP)、神经网络处理器(neural-network processing units,NPU)、数字信号处理器(digital signal processor,DSP)等。运行或搭载的神经网络可实现的应用包括但不限于:图像识别(image classification)、物体识别(objectrecognition)、行为认知(action recognition)、姿态估计(pose estimation)、神经风格转换(neural style transfer)等计算机视觉方面的应用,也可以是自然语言处理(natural language processing,NLP)方面的应用等。
在一种场景中,当终端设备中的某个神经网络(即源神经网络)需要优化时,终端设备可以将源神经网络的网络结构信息,以及该源神经网络搭载的具体硬件平台(即目标硬件平台)信息等,输入到数据处理设备进行处理,得到优化后的神经网络(即目标神经网络)。即源神经网络和目标神经网络为在不同时域上运行在同一硬件平台上的神经网络。
在另一种场景中,终端设备中源神经网络的硬件平台将被替换为其他硬件平台(包括不同属性的硬件平台(例如GPU,CPU,NPU或DSP等),或者同一属性的不同型号的硬件平台,或者同一属性的不同厂家的硬件平台)时,可以将源神经网络的网络结构信息以及替换后的硬件平台(即目标硬件平台)信息等,输入到数据处理设备进行处理,得到自适应搜索后的神经网络(即目标神经网络)。这是因为,替换后的硬件平台(即目标硬件平台)与源硬件平台的设计可能不同,会影响源神经网络的运行效果。或者,替换后的硬件平台中的某些设计可能并不能被源神经网络充分应用,进而导致网络性能下降,造成硬件平台的设计浪费。
可以理解的是,在另一些示例中,神经网络的自适应搜索系统还可以包括用户设备。终端设备还可以确认是否将得到目标神经网络的网络结构信息发送至包含目标硬件平台的用户设备,使得目标神经网络运行或搭载在用户设备中对应的目标硬件平台,执行任务。示例性的,用户设备可以是手机(mobile phone)、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)终端等终端设备,本公开实施例对用户设备的具体形态不作特殊限制。
上述数据处理设备可以是云服务器或者网络服务器等具有神经网络搜索功能的设备或服务器。数据处理设备通过交互接口接收来自终端设备发送的搜索条件集,包括目标硬件平台信息,源神经网络的网络结构信息,一个或多个评估指标等,再基于存储器中存储的知识库,通过处理器进行超网络的构建及训练,以及目标神经网络的搜索。并且会将搜索结果即目标神经网络发送至对应的终端设备。数据处理设备中的存储器可以是一个统称,包括本地存储以及存储历史数据的数据库,数据库可以在数据处理设备上,也可以在其它云服务器上。
需要说明的是,数据处理设备可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。
例如,在图1中数据处理设备可以执行本申请实施例的神经网络的自适应搜索方法。
图2示例性的给出了本申请实施例提供的一种系统架构。
如图2中的系统架构所示,数据处理设备210配置输入/输出(input/output,I/O)接口211,用于与外部设备进行数据交互,用户可以通过终端设备220向I/O接口211输入数据,该输入数据在本申请实施例中可以包括:搜索条件集。搜索条件集例如可以包括:目标硬件平台信息(例如目标硬件平台的厂家,属性,型号,执行的目标任务类型等),源神经网络的网络结构信息,一个或多个评估指标(例如精度阈值,时间开销阈值,存储空间阈值等)等。
数据采集设备240,用于采集训练数据。例如,本申请实施例中训练数据可以是训练神经网络的训练数据集。在采集到训练数据之后,数据采集设备240将这些训练数据存入数据库230。数据库230中还存储有数据采集模块240采集到的知识库231,知识库231可用于根据源神经网络构建超级网络。知识库231中可以包括神经网络中的算子和/或算子集合与硬件平台的匹配信息。例如,知识库231包括第一算子集合基于不同硬件平台,与第三算子集合的对应关系。其中,第三算子集合包括第一算子集合和/或一个或多个衍生的第二算子集合。其中,每一个衍生的第二算子集合与其对应的第一算子集合具有相同的功能。也就是说,第一算子集合可以替换为一个衍生的第二算子集合。那么,在利用知识库231将源神经网络扩展为超级网络时,将源神经网络中包含的每个第一算子集合替换为与该第一算子集合对应的第三算子集合。如下表一所示,给出了知识库231的一个示例。
表一
由此可见,第一算子集合可以包括一个或多个算子。每一个第一算子集合可以对应一个或多个衍生的第二算子集合。由该一个或多个衍生的第二算子集合和/或第一算子集合构成第一算子集合对应的第三算子集合。
比如上表一中,源神经网络包含的一个第一算子集合为3×3卷积算子,基于知识库231获知在型号为A的GPU(目标硬件平台)上,1×1卷积算子和5×5卷积算子都具有与3×3卷积算子相同或相似的功能,则衍生的第二算子集合包括1×1卷积算子和5×5卷积算子。超级网络中对应的第三算子集合包括第一算子集合(3×3卷积算子)和衍生的第二算子集合(1×1卷积算子和5×5卷积算子)。
又比如上表一中,源神经网络包含的一个第一算子集合包括步幅(stride)=1时的7×7卷积算子+池化层算子,基于知识库231获知在型号为B的CPU(目标硬件平台)上,stride=2时的7×7卷积算子与stride=1时的7×7卷积算子+池化层算子具有相同或相似的功能,则衍生的第二算子集合包括stride=2时的7×7卷积算子,且衍生的第二算子集合的评估结果优于第一算子集合,可以将第一算子集合替换为衍生的第二算子集合。超级网络中对应的第三算子集合包括衍生的第二算子集合(7×7卷积算子)。
又比如上表一中,源神经网络包含的一个第一算子集合包括7×7卷积算子,基于知识库231获知在型号为C的NPU(目标硬件平台)上,3个3×3卷积算子可以与一个7×7卷积算子具有相同或相似的功能,则衍生的第二算子集合包括3×3卷积算子+3×3卷积算子+3×3卷积算子,且衍生的第二算子集合的结果优于第一算子集合。超级网络中对应的第三算子集合包括衍生的第二算子集合(3×3卷积算子+3×3卷积算子+3×3卷积算子)。
需要说明的是,上表一中算子之间的“+”用于表示将相邻层级的算子集合联合,即联合纵向分布的算子集合。
需要说明的是,在建立知识库231时,可以根据不同硬件平台上实际运行各个算子集合的数据,或者基于专家的先验知识预测的各个算子集合的运行情况确定第一算子集合和衍生的第二算子集合的对应关系。当然,也可以根据不同硬件平台的升级情况等对知识库进行更新。本申请实施例对建立知识库231的方法不做具体限定。
需要说明的是,在实际的应用中,所述数据库230中维护的训练数据不一定都来自于数据采集设备240的采集,也有可能是从其他设备接收得到的。例如接收由终端设备220发送的用于扩充知识库231的信息。
构建模块212,用于构建超级网络201。具体的,构建模块212基于搜索条件集中的源神经网络的网络结构信息,利用从数据库230中获得的知识库231,构建源神经网络扩展的超级网络201。
训练模块213,用于训练超级网络201得到经过训练的超级网络202。具体的,接收构建模块212发送的超级网络201,基于从数据库230中获得的训练数据集训练超级网络201。并将经过训练的超级网络202发送至搜索模块215,以执行神经网络搜索过程。
评估结果获取模块214,用于基于一个或多个评估指标,获取各个第一算子集合和/或衍生的第二算子集合在目标硬件平台上的评估结果,以及获取搜索模块215搜索出的候选的子网络在目标硬件平台上的评估结果。
搜索模块215,用于搜索目标神经网络203。具体的,接收训练模块213发送的经过训练的超级网络202,结合评估结果获取模块214中得到的神经网络评估结果,从训练过的超级网络202中搜索目标神经网络203。并通过I/O接口211向终端设备220输出目标神经网络203。
还需要说明的是,图2仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制。例如,在图2中,数据库230相对数据处理设备210是外部存储器,在其它情况下,也可以将数据库230置于数据处理设备210中。
由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例可能涉及的神经网络的相关术语和概念进行介绍。
(1)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。
虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于DNN层数多,系数W和偏移向量的数量也比较多。这些参数在DNN中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。
需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(3)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
(4)反向传播算法
神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如,权重矩阵。
本申请实施例提供的技术方案,可以基于卷积神经网络模型的具体结构,结合源神经网络隐含层中包含的各个层中的算子和/算子集合的功能及评估结果,保留或替换部分算子和/算子集合,进而获得与目标硬件平台更加匹配的目标神经网络。
图3为本申请实施例提供的一种芯片的硬件结构,该芯片包括神经网络处理器(neural-network processing units,NPU)300。该芯片可以被设置在如图2所示的数据处理设备210中,用以完成图2中构建模块212的全部或部分工作(例如构建超级网络201),也可以用于完成训练模块213的全部或部分工作(例如训练超级网络201),还可以用于完成搜索模块215的全部或部分工作(例如搜索目标神经网络203),还可以用于完成评估结构获取模块214中的全部或部分工作(例如基于一个或多个评估指标对搜索的神经网络进行评估)。
神经网络处理器NPU300作为协处理器挂载到主中央处理器(central processingunit,CPU)(host CPU)上,由主CPU分配任务。NPU 300的核心部分为运算电路303,控制器304控制运算电路303提取存储器(权重存储器或输入存储器)中的数据并进行运算。
在一些实现中,运算电路303内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路303是二维脉动阵列。运算电路303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路303是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路303从权重存储器302中取矩阵B相应的数据,并缓存在运算电路303中每一个PE上。运算电路303从输入存储器301中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器308(accumulator)中。
向量计算单元307可以对运算电路303的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元307可以用于神经网络中非卷积/非FC层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
在一些实现中,向量计算单元能307将经处理的输出的向量存储到统一存储器306。例如,向量计算单元307可以将非线性函数应用到运算电路303的输出,例如累加值的向量,用以生成激活值。
在一些实现中,向量计算单元307生成归一化的值、合并值,或二者均有。
在一些实现中,处理过的输出的向量能够用作到运算电路303的激活输入,例如,用于在神经网络中的后续层中的使用。
统一存储器306用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器305(direct memory access controller,DMAC)将外部存储器中的输入数据存入至输入存储器301和/或统一存储器306、将外部存储器中的权重数据存入权重存储器302,以及将统一存储器306中的数据存入外部存储器。
总线接口单元310(bus interface unit,BIU),用于通过总线实现主CPU、DMAC和取指存储器309之间进行交互。
与控制器304连接的取指存储器309(instruction fetch buffer)用于存储控制器304使用的指令。控制器304用于调用取指存储器309中缓存的指令,实现控制该运算加速器的工作过程。
一般地,统一存储器306,输入存储器301,权重存储器302以及取指存储器309均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。
目前,现有技术中的神经网络搜索方法,一般会基于每秒浮点运算次数(floating-point operations per second,FLOPs)进行神经网络模型搜索,以实现对源神经网络的压缩,得到目标神经网络的网络结构信息。其中,FLOPs常用于估算硬件平台的运行效率。但由于不同的硬件平台对不同的算子有不同的实现及优化,FLOPs并不总是能反映实际的时间开销(即耗时)。
例如:假设算子A和算子B可实现相同的功能。也就是说,神经网络可以采用算子A,也可以采用算子B进行运算。其中,假设算子A为1×1卷积算法,包含1千万次乘法;算子B为3×3卷积算法,包含1.5千万次乘法。可见,算子A的FLOPs小于算子B的FLOPs,一般估计算子A的耗时小于算子B。
在实际应用中可能存在这样的情形:在硬件平台1运行时,算子A实际耗时2μs,算子B实际耗时3μs。那么,该神经网络部署在硬件平台1上时,若主要考虑耗时,则最好采用算子A。在硬件平台2运行时,由于硬件平台2对算子B进行了特定优化,使得算子B实际耗时较少为1.5μs,而算子A的实际耗时仍然为2μs。那么,该神经网络部署在硬件平台2上时,若主要考虑耗时,则最好采用算子B。
因此,基于FLOPs进行神经网络模型搜索,得到的目标神经网络在目标硬件平台上的评估结果(例如时间开销的评估结果)并不一定优于源神经网络在目标硬件平台上的评估结果。
有鉴于此,在本申请的实施例提供了一种神经网络的自适应搜索方法,可以基于目标硬件平台的评估指标,对源神经网络扩展的超级网络进行自适应的神经网络搜索,能在较高的搜索灵活性的前提下,搜索得到适应于目标硬件平台的目标神经网络,使得搜索到的目标神经网络运行在目标硬件平台上的评估结果优于源神经网络运行在目标硬件平台上的评估结果。
下面结合附图对本申请实施例的神经网络的自适应搜索方法进行详细介绍。本申请实施例的神经网络的自适应搜索方法可以由图1中的数据处理设备、图2中的数据处理设备210等设备执行。
如图4所示,为本申请实施例提供一种神经网络的自适应搜索方法的流程示意图,该方法可以包括S101-S103:
S101、接收搜索条件集。
如上文所述,当终端设备上某一个硬件平台上运行(或搭载)的神经网络(即源神经网络)需要优化时,或者终端设备上运行(或搭载)有神经网络(即源神经网络)的硬件平台将被替换为另一硬件设备时,需要对源神经网络的网络结构进行基于目标硬件平台进行优化。总体来说,先基于源神经网络的网络结构信息进行横向和/或纵向的扩展,扩展为超级网络。然后,基于一个或多个评估指标,从超级网络中搜索适合目标硬件平台的神经网络为目标神经网络。该目标神经网络可被运行或搭载在目标硬件平台上。且,该目标神经网络在目标硬件平台上的评估结果优于源神经网络运行在目标硬件平台上。
首先,用户需输入搜索条件集,该搜索条件集包括:目标硬件平台信息,源神经网络的网络结构信息和一个或多个评估指标。
上述目标硬件平台信息例如可以包括目标硬件平台的属性、目标硬件平台的型号、目标硬件平台的厂家、目标硬件平台执行的任务等信息。如此,可以基于目标硬件平台信息搜索出更适合当前目标硬件平台的目标神经网络。不同厂家同一属性的硬件平台,或者同一厂家不同属性的硬件平台,或者同一属性的不同型号的硬件平台的硬件设计可能不同,对运行同一算子或同一算子集合的优劣也可以不同,故在搜索过程中需要考虑不同的硬件平台。另外,目标硬件平台上运行的目标神经网络对应的任务不同时,考虑的评估指标可能不同,故在搜索过程中也需要考虑硬件平台上运行的目标神经网络对应的任务。例如,图像检测任务(detection)是检测出图像中的物体,并框选出该物体所在的位置。图像分割任务(segmentation)是在检测任务的基础上把边界框精细化,对识别出的物体和精确边界的图像进行分割。显然,图像分割任务精度评估指标要高于图像检测任务精度评估。
可以理解的是,在对终端设备上的某个硬件平台的神经网络进行优化的场景中,该硬件平台即为目标硬件平台。在对终端设备上的某个硬件平台进行替换的场景中,替换后的硬件平台为目标硬件平台。
上述源神经网络的网络结构信息用于表征源神经网络。例如,源神经网络的网络结构信息可以包括源神经网络包含的各个第一算子集合。每个第一算子集合可以包括一个或多个算子。本申请实施例中的源神经网络可以为卷积神经网络(convolutional neuralnetworks,CNN),循环神经网络(recurrent neural network,RNN),感知机(perceptron),前馈神经网络(feedforward neural network,FNN),深度信念网络(deep beliefnetworks,DBN),生成式对抗网络(generative adversarial networks,GAN)等。
以源神经网络为卷积神经网络为例说明源神经网络的网络结构信息。
如图5中的(a)所示,为一种卷积神经网络的网络结构示意图。一般而言,卷积神经网络包括输入层、隐含层和输出层。卷积神经网络的隐含层包括一个或多个卷积层(convolutional layer)、一个或多个池化层(pooling layer),以及一个或多个全连接层(fully-connected layer)。通常,一个或多个卷积层后连接一个池化层。如图5中的(a)所示,例如一个卷积层可以包含一个或多个卷积算子,一个卷积算子可以对应一个第一算子集合,或者多个卷积算子对应一个第一算子集合。一个池化层可以包含一个或多个池化算子,可以对应一个或多个第一算子集合。一个全连接层可以包含一个或多个全连接层算子,可以对应一个或多个第一算子集合。又比如,如图5中的(b)所示,一个卷积层和一个池化层中包含的多个算子可以构成一个第一算子集合。
示例性的,若源神经网络中的每一层对应第一算子集合,且一个算子集合中包含一个第一算子,则源神经网络的网络结构可以表示为如图6中的(a)所示的网络结构,包括输入层,隐含层和输出层。隐含层中每一层级对应一个包含单个第一算子的第一算子集合。又比如,若源神经网络中的多个层级对应一个第一算子集合,如图6中的(b)所示的网络结构,包括输入层,隐含层和输出层。隐含层包括两个Block结构(多个算子组合)。每一Block结构为由一个卷积层的三个卷积算子以及一个池化层的求和算子组成。
上述评估指标可以包括对搜索神经网络模型的过程中,需要目标神经网络具备的网络性能的要求。一个或多个评估指标包括如下任一项或几项:神经网络模型的精度评估指标,神经网络模型的时间开销评估指标,神经网络模型的存储空间评估指标,神经网络模型的功耗评估指标,神经网络模型的张量计算单元的利用率评估指标,神经网络模型的内存读写速率评估指标。
其中,神经网络模型的精度评估指标包括目标神经网络的精度不低于精度阈值;神经网络模型的时间开销评估指标包括目标神经网络的时间开销不大于时间开销阈值;神经网络模型的存储空间评估指标包括目标神经网络占用的存储空间不大于存储空间阈值;神经网络模型的功耗评估指标包括目标神经网络的功耗不大于功耗阈值;神经网络模型的张量计算单元的利用率评估指标包括目标神经网络的张量计算单元的利用率不小于张量计算单元的利用率阈值;所述神经网络模型的内存读写速率评估指标包括目标神经网络的内存读写速率不小于内存读写速率阈值。
需要说明的是,可以通过不同用户需求,或不同的应用场景,或不同的任务等因素设置一个或多个评估指标。
示例性的,可以设置精度阈值,确保搜索到的目标神经网络精度不低于源神经网络精度或者不低于源神经网络精度的某个区间(例如不低于源神经网络精度的99%)等。
再示例性的,可以设置时间开销阈值小于目标神经网络的时间开销阈值,以提高搜索到的目标神经网络的处理速度。一般而言,目标神经网络的时间开销越小,目标神经网络处理速度越快。例如:时间开销阈值可以设置在源神经网络时间开销的某个区间内(例如源神经网络时间开销的80%之内)。
例如,在繁华路段的监控器中的图像处理模块,在单位时间内采集到的监控图像中包含的信息量较大,需要进行大量运算,则需要其上搭载的神经网络具备更小的时间开销,以更快速的处理图像。如此,需要将时间开销阈值设定的较小,使得搜索到的目标神经网络可以更快速的处理大量的监控图像。又例如,野外人烟稀少的监控器中的图像处理模块,在单位时间内采集到的监控图像中包含的信息量较少,运算较小,则允许其上搭载的神经网络具备稍高一些的时间开销,时间开销阈值可以设定的稍高。
又示例性的,可以根据目标硬件平台的存储空间大小进行设定存储空间阈值,以避免搜索到的目标神经网络需要占用的存储空间过大,而无法在目标硬件平台中存储。或者,可以根据目标硬件平台的功耗要求设置功耗阈值,以降低目标神经网络运行在目标硬件平台中产生的功耗,满足目标硬件平台运行的整体功耗。又或者,张量计算单元的利用率阈值以及内存读写速率阈值用于衡量搜索到的目标神经网络与目标硬件平台的匹配程度,搜索到的目标神经网络在目标硬件平台上的张量计算单元的利用率越高,表示搜索到的目标神经网络与目标硬件平台匹配度越高,处理整体速度越快。例如进行图像处理,搜索到的目标神经网络在目标硬件平台的张量计算单元的利用率越高,处理图像的速度也会越快。
又示例性的,还可以同时设置两个或两个以上的评估指标。例如,可以同时设置精度阈值和时间开销阈值。举个例子,某些场景下,需要短时间内获得大量图像的识别结果,但对图像识别的精度要求不高。那么,可以设置较小的精度阈值,以及较小的时间开销阈值,使得搜索到的目标神经网络相较于源神经网络,识别速度更快。
S102、基于训练数据集对待训练的超级网络执行训练过程,得到经过训练的超级网络,其中待训练的超级网络是基于源神经网络的网络结构而扩展得到的。
示例性的,根据源神经网络的网络结构、知识库中的扩展规则以及目标硬件平台信息,采用横向和/或纵向的扩展方式构建待训练的超级网络。其中,知识库中的扩展规则包括基于不同硬件平台,源神经网络中的第一算子集合和衍生的第二算子集合具有不同的对应关系。可以理解,第一算子集合和对应的衍生的第二算子集合具有相同或相似的功能。
具体的,基于知识库的扩展规则,找到源神经网络包含的各个第一算子集合运行(或搭载)在目标硬件平台对应的衍生的第二算子集合。例如,根据知识库扩展超级网络时,可以确定保留源神经网络的某些第一算子集合,或者将源神经网络中某些第一算子集合替换为第二算子集合,或者跳过(skip)某些第一算子集合对应的层级。
比如,假设源神经网络中包括相邻的3个层级,每一层级包含一个第一算子集合为3×3卷积算子,即这3个层级可以表示为3×3卷积算子+3×3卷积算子+3×3卷积算子。若在目标硬件平台上,5×5卷积算子可以实现与3×3卷积算子相同或相似的功能,则可以将这3个相邻层级中的部分3×3卷积算子替换为5×5卷积算子,部分3×3卷积算子替换为skip。如此,在降低这三个层级整体的时间开销的同时,也保证了替换后的算子集合可以完成与源神经网络中对应的第一算子集合相同的任务。例如,衍生的第二算子集合可以为skip+3×3卷积算子+5×5卷积算子。换言之,在知识库中,3×3卷积算子基于目标硬件平台,可以对应5×5卷积算子。那么,在构建源神经网络的超级网络时,可以将源神经网络中的3×3卷积算子替换为5×5卷积算子。
又比如,源神经网络中的包括一个第一算子集合为(A+B+C),其中,A、B和C分别为不同的算子。根据现有技术可知,有三个算子集合(A1+B1+C1),(A2+B2+C2)和(A3+B3+C3)均具有与(A+B+C)相同或相似的功能。但是,基于专家先验知识,获知在目标硬件平台上(A3+B3+C3)实现效果较差。那么,在建立知识库时,不建立第一算子集合(A+B+C)在目标硬件平台上与第二算子集合(A3+B3+C3)的对应关系。那么,在构建源神经网络的超级网络时,基于知识库,可以将第一算子集合(A+B+C)替换为第二算子集合(A1+B1+C1)和(A2+B2+C2)。
需要说明的是,知识库中的扩展规则包括横向扩展和/或纵向扩展。其中,横向扩展可理解为,第一算子集合和对应的衍生的第二算子集合的层级相同,但第一算子集合对应多个衍生的第二算子集合。比如,如图7中的(a)所示,第一算子集合7×7卷积算子在当前层级可以对应衍生两个第二算子集合,分别为3×3卷积算子和5×5卷积算子,则如图7中的(b)所示的对应层级的排布方式。其中,纵向扩展可理解为,将源神经网络中的某些层级在构建超网络的时候进行纵向扩展。例如源神经网络中4个相邻的层级包含的第一算子集合为3×3卷积算子(64通道)+3×3卷积算子(64通道)+3×3卷积算子(128通道)+3×3卷积算子(128通道)。由于不能将卷积核大小相同,但通道数不同的算子集合直接替换,为了降低整体时间开销,可以将源神经网络纵向扩展,进而实现超级网络的构建。例如,将上述4个相邻层级的算子集合纵向扩展为6个相邻层级的算子集合,如纵向扩展为3×3卷积算子(64通道)+3×3卷积算子(64通道)+3×3卷积算子(64通道)+3×3卷积算子(128通道)+3×3卷积算子(128通道)+3×3卷积算子(128通道),那么对应的衍生的第二算子集合可以包括3×3卷积算子(64通道)+3×3卷积算子(64通道)+3×3卷积算子(64通道)+3×3卷积算子(128通道)+skip+skip。
以下给出两个源神经网络扩展为超级网络的示例,以说明现有技术的扩展方法和本发明实施例提供的方法的区别。
示例一,源神经网络是由较小粒度的算子(例如卷积算子、池化算子、激活函数)组成的链状神经网络。即,源神经网络包括的第一算子集合仅包括一个第一算子。
参见图7中的(a)所示,为一个源神经网络的结构的示例。该源神经网络的结构信息包括多个第一算子集合,第一算子集合分别为:7×7卷积算子、池化层算子、3×3卷积算子、prelu激活函数等。
如图7中的(b)所示,为采用现有技术构建的超级网络。可见,会将与第一算子集合功能相同或相似的第二算子集合全部加入到与第一算子集合位置对应的第三算子集合中。例如,将源神经网络中的7×7卷积算子替换为3×3卷积算子,7×7卷积算子以及5×5卷积算子。将源神经网络中的3×3卷积算子替换为1×1卷积算子,3×3卷积算子以及5×5卷积算子。将源神经网络中的prelu激活函数替换为prelu激活层和relu激活层。如此,在基于超级网络进行神经网络搜索时,其搜索空间大小为3×3×2=18。
如图7中的(c)所示,为采用本申请实施例提供的方法构建的超级网络,即基于知识库确定适用于目标硬件平台的算子集合。例如,如果判断出源神经网络中的7×7卷积算子,对应的3×3卷积算子和5×5卷积算子在目标硬件平台上的运行效果较差,则在知识库中,7×7卷积算子对应的第三算子集合仅包括7×7卷积算子。又例如,如果判断出源神经网络中的prelu激活函数在目标硬件平台上的运行效果较差,则在知识库中,prelu激活函数对应的第三算子集合中仅包括relu激活层。那么,在根据源神经网络构建超级网络时,构建如图7中(c)所示的超级网络。在基于该超级网络进行神经网络搜索时,其搜索空间大小为1×3×1=3。
可见,本申请实施例中,利用知识库可以排除掉不适合目标硬件平台的衍生算子集合,有利于缩小超级网络的规模,加速超级网络的训练过程。另外,由于超级网络的规模变小,目标神经网络的搜索范围小,还可以缩短搜索过程,加快搜索到目标神经网络。
示例二,源神经网络是由较大粒度的block结构组成的链状神经网络,即,第一算子集合为一个或多个block结构,每个block结构包括多个算子。
参见图8中的(a)所示,为一个源神经网络的结构的示例。该源神经网络包括多个第一算子集合,其中每个第一算子集合均为包含1×1卷积算子,3×3卷积算子,1×1卷积算子以及求和算子联合运算的Block结构,记为Block结构1。
如图8中的(b)所示,为采用本申请实施例提供的方法构建的超级网络。例如,如果基于知识库判断出源神经网络Block结构1分别与Block结构2(例如包含1×1卷积算子,5×5卷积算子,1×1卷积算子以及求和算子联合运算的Block结构)和Block结构3(例如包含1×1卷积算子,7×7卷积算子,1×1卷积算子以及求和算子联合运算的Block结构)具有相同或相似的功能,且适用于目标硬件平台。那么,在根据源神经网络构建超级网络时,可以将Block结构1替换为Block结构2、Block结构3,也可以保留Block结构1,即构建如图8中(b)所示的超级网络。
如图9所示,示例性的给出了一种根据源神经网络基于目标硬件平台扩展后的超级网络。扩展后的超级网络可以实现与源神经网络相同的功能,但此时可能由于内部参数未调整,导致精度较低,不能满足用户需求,所以为待训练的超级网络。进一步,可以利用训练数据集训练待训练的超级网络,得到经过训练的超级网络,使得经过训练的超级网络的精度接近精度阈值,并将经过训练的超级网络作为后续搜索目标神经网络的基础。
在一些示例中,在获取训练数据集时,还需要获取训练数据集的数据读取方式,如训练数据集中包含的图像的排布方式,读取方法等。在另一些示例中,还需要获取训练超级网络的过程中所需的超参设定值,例如:训练过程中预设的迭代训练次数,训练时长,训练超级网络的目标精度阈值等。在又一些示例中,还需要获取从在经过训练的超级网络中搜索目标神经网络过程中所需要的超参设定值,如搜索过程中需要的迭代次数,需要获得的子网络数量等。
以下,详细介绍本申请实施例提供的两种训练超级网络的方法。
方法一、利用加权平均的方法训练超级网络。
在一些示例中,如图9所示的扩展后的超级网络中包括四个第三算子集合,分别为第三算子集合1至第三算子集合4,即一个虚线框内包含的所有算子集合构成一个第三算子集合。其中,第三算子集合1中包括一个第一算子集合1和两个第二算子集合(第二算子集合1和第二算子集合2)。为第一算子集合1、第二算子集合1和第二算子集合2分别设置权重,且这三个算子集合的权重之和为1。在一些示例中,可以将第一算子集合1、第二算子集合1和第二算子集合2的权重设置为相同,例如约为0.33。依次类推,设置其他的第三算子集合中第一算子集合和/或第二算子集合的权重。
之后,将训练数据集输入到扩展后的超级网络中训练超级网络。比如,将训练数据集输入到第三算子集合1中,第三算子集合1中包含的所有算子集合会参与对训练数据集进行计算,将第三算子集合1中包含的所有算子集合的计算结果加权平均后得到第三算子集合1输出的特征图。将计算后第三算子集合1输出的特征图输入到第三算子集合2中,由第三算子集合2中包含的所有算子集合继续进行加权平均计算。以此类推,得到最后一个第三算子集合进行计算结果后,输出最终的特征图。
之后,将最终的特征图输入loss函数,并对扩展后的超级网络再次进行迭代训练。在迭代训练过程中,调整扩展后的超级网络的内部参数。
最后,达到预设的迭代训练次数,训练时长,或训练超级网络的目标精度阈值要求后,停止训练。此时的超级网络为经过训练的超级网络,可以从经过训练的超级网络中执行目标神经网络的搜索过程。
方法二、利用onehot采样方法训练超级网络。
在一些示例中,利用onehot采样方法从扩展后的超级网络中的每一第三算子集合中获取一个第一算子集合或一个衍生的第二算子集合,构成一个待训练的子网络。将训练数据集输入到待训练的子网络中训练子网络。
例如,图9所示的扩展后的超级网络中包括四个第三算子集合,分别为第三算子集合1至第三算子集合4,即一个虚线框内包含的所有算子集合构成一个第三算子集合。其中,第三算子集合1中包括一个第一算子集合1和两个第二算子集合(第二算子集合1和第二算子集合2)。第三算子集合2中包括一个第一算子集合2和两个第二算子集合(第二算子集合3和第二算子集合4)。比如,利用onehot采样方法,抽取第三算子集合1中的第一算子集合1,抽取第三算子集合2中的第二算子集合3。将训练数据集输入到第三算子集合1中的第一算子集合1中进行计算,并输出特征图到第三算子集合2中的第二算子集合3中进行计算。以此类推,得到最后一个第三算子集合进行计算结果后,输出最终的特征图,输入到loss函数中。并对该子网络进行迭代训练,在迭代训练过程中,调整该待训练的子网络的内部参数。
通过上述方法,可以在每次利用onehot采样方法采样后,获得一个待训练的子网络进行训练,并调整其内部参数。
最后,达到预设采样次数,预设的迭代训练次数,训练时长,或训练超级网络的目标精度阈值要求后,停止训练。此时的超级网络为经过训练的超级网络,可以从经过训练的超级网络中执行目标神经网络的搜索过程。
需要说明的是,可以通过上述任一种方法训练扩展后的超级网络,得到经过训练的超级网络。也可以先利用上述方法一对扩展后的超级网络进行训练,训练完毕后再利用方法二中训练方法再次训练,得到经过训练的超级网络。
S103、基于一个或多个评估指标对经过训练的超级网络执行子网络搜索过程,以得到目标神经网络的网络结构信息。其中,目标神经网络的网络结构信息用于表征目标神经网络。
在一些实施例中,得到经过训练的超级网络后,还需要获取经过训练的超级网络中的各个第三算子集合中的第一算子集合和/或衍生的第二算子集合在目标硬件平台上的基于一个或多个评估指标的评估结果。从训练好的超级网络中每个第三算子集合中均抽取一个第一算子集合或一个衍生的第二算子集合,构成一个待评估的候选子网络。进行多次抽取,获取多个待评估的候选子网络。然后,基于待评估的候选子网络中包含的第一算子集合和/或衍生的第二算子集合在目标硬件平台上的基于一个或多个评估指标的评估结果,确定出一个或多个目标神经网络。这一个或多个目标神经网络在目标硬件平台上运行时,基于一个或多个评估指标的整体评估结果优于源神经网络在目标硬件平台上运行时的整体评估结果。
换言之,得到经过训练的超级网络后,获取目标硬件平台、M个神经网络的网络结构、N个评估指标、以及P个评估结果之间的对应关系信息。其中,M,N和P都是正整数,且,P=M*N。M个神经网络为从经过训练的超级网络中抽取的子网络,即待评估的候选子网络。显然,M个神经网络的网络结构包括于经过训练的超级网络的网络结构。如此,可以通过上述对应关系确定经过训练的超级网络中各个第三算子集合中的各个第一算子集合和/或各个衍生的第二算子集合对应的评估结果(为N个评估指标分别对应的评估结果),以及通过将各个待评估的候选子网络中包括的第一算子集合和/或各个衍生的第二算子集合的评估结果相加即可获得该待评估的候选子网络的评估结果。显然,一个候选子网络基于N个评估指标对应N个评估结果,M个候选子网络基于N个评估指标对应M*N个评估结果,即P个评估结果。然后,基于该P个评估结果确定一个或多个候选子网络为目标神经网络。
比如,N个评估指标为神经网络模型的时间开销评估指标(即N=1)时,神经网络模型的时间开销评估指标包括目标神经网络的时间开销不大于时间开销阈值。
相应的,基于神经网络模型的时间开销评估指标对经过训练的超级网络中包括的M个候选子网络进行子网络评估:先获取M个候选子网络中包含的每个第一算子集合和/或衍生的第二算子集合在目标硬件平台上运行的时间开销,即时间开销指标下的评估结果。然后,根据M个候选子网络中每个候选子网络的网络结构,确定各个候选子网络在目标硬件平台上运行的时间开销,即各个候选子网络基于时间开销指标的评估结果。基于时间开销的评估指标,和M个候选子网络在目标硬件平台上运行的时间开销,从M个候选子网络中确定一个或多个候选子网络作为目标神经网络。其中,该目标神经网络的时间开销不大于时间开销阈值。
其中,各个候选子网络在目标硬件平台上运行的时间开销,为各个候选子网络包括的各个第一算子集合和/或衍生的第二算子结合在目标硬件平台上运行的时间开销之和。
又比如,N个评估指标为神经网络模型的精度评估指标和时间开销评估指标(即N=2)时,神经网络模型的精度评估指标包括目标神经网络的精度不低于精度阈值。神经网络模型的时间开销评估指标包括目标神经网络的时间开销不大于时间开销阈值。
相应的,基于神经网络模型的精度评估指标和时间开销评估指标对经过训练的超级网络中包括的M个候选子网络进行子网络评估:先获取M个候选子网络中包含的每个第一算子集合和/或衍生的第二算子集合在目标硬件平台上运行的精度以及时间开销,即精度评估指标下的精度评估结果和时间开销指标下的时间开销评估结果。然后,根据M个候选子网络中每个候选子网络的网络结构,确定各个候选子网络在目标硬件平台上运行的精度和时间开销,即各个候选子网络基于精度评估指标下的精度评估结果和时间开销指标下的时间开销评估结果。基于精度评估指标,时间开销评估指标,M个候选子网络在目标硬件平台上运行的精度,和M个候选子网络在目标硬件平台上运行的时间开销,从M个候选子网络中确定一个或多个候选子网络作为目标神经网络。其中,该目标神经网络的精度不低于精度阈值,同时时间开销不大于时间开销阈值。
上文中,获取各个第一算子集合或各个衍生的第二算子集合在目标硬件平台上的基于一个或多个评估指标的评估结果,可以采用实际测量的方法或者预测的方法。
在该实施例的一些示例中,可以将经过训练的超级网络发送到需要部署目标神经网络的终端设备中,在该终端设备的目标硬件平台上运行经过训练的超级网络,得到各个第一算子集合/或衍生的第二算子集合在目标硬件平台上的评估结果,即得到实测的评估结果。
例如,在实测时,可以从经过训练的超级网络中每个第三算子集合中任选一个第一算子集合或第二算子集合构成一个子网络。进行多次抽取,从经过训练的超级网络中抽取多个子网络。在目标硬件平台上分别运行多个子网络,得到多个子网络在目标硬件平台上的评估结果。根据多个子网络在目标硬件平台上的评估结果,以及多个子网络中包含的第一算子集合和/或第二算子集合,计算得到各个第一算子集合和各个第二算子集合在目标硬件平台上的评估结果。
在该实施例的另一些示例中,可以将经过训练的超级网络中各个第三算子集合中的第一算子集合和/或衍生的第二算子集合输入到评估结果的预测模型(该预测模型可以部署在数据处理设备上,也可以部署在其他设备上)中,直接得到各个第一算子集合和/或衍生的第二算子集合的评估结果,即得到预测的评估结果。其中,预测模型的建立可以为基于大量的算子和/或算子集合在目标硬件平台的评估结果训练得到。预测模型的训练过程可以参见现有技术,本申请实施例不再赘述。
需要说明的是,也可以在通过上述步骤S102获得待训练的超级网络后,就执行上述获取第一算子集合和/或衍生的第二算子集合在目标硬件平台上的基于一个或多个评估指标的评估结果的步骤。这样,当训练好超级网络后,可以直接使用各个第一算子集合和/或衍生的第二算子集合在目标硬件平台上的基于一个或多个评估指标的评估结果确定目标神经网络的网络结构信息,有利于加快搜索目标神经网络的进程。换言之,本申请实施例并不限定执行获取第一算子集合和/或衍生的第二算子集合在目标硬件平台上的基于一个或多个评估指标的评估结果的时机。
下面,详细的介绍一下基于一个或多个评估指标对经过训练的超级网络执行子网络搜索的过程。
如图10所示,为本申请实施例提供的又一种神经网络的自适应搜索方法的流程示意图。该方法包括:接收搜索条件集,包括源神经网络的网络结构信息、目标硬件平台信息、一个或多个评估指标等。基于源神经网络的网络结构信息和知识库,构建并训练超级网络。相关内容可参考上文相关步骤的描述,这里不再赘述。
在一些实施例中,在对经过训练的超级网络执行子网络搜索过程中,可以利用知识库,缩小目标神经网络的搜索范围。比如,先基于知识库判断一些候选子网络的网络结构在目标硬件平台实现效果较优,则再选择该候选子网络基于一个或多个评估指标进行评估,节约非必要的获取候选子网络的评估结果的时间。
在另一些实施例中,在基于一个或多个评估指标从经过训练的超级网络中执行子网络搜索过程中,可以基于一个或多个评估指标对超级网络整体或部分结构进行评估,获取评估结果,基于评估结果从经过训练的超级网络中搜索一个或多个子网络,确定为目标神经网络。或者,也可以先从超级网络中抽取若干子网络,基于一个或多个评估指标对抽取的若干子网络进行评估,获得评估结果。基于获得的评估结果,确定若干子网络中的一个或多个为目标神经网络。或者,还可以先从超级网络中抽取若干子网络,基于一个或多个评估指标对抽取的若干子网络进行评估,获得评估结果,然后基于评估结果再从训练好的超级网络中抽取新的子网络。基于一个或多个评估指标对新抽取的子网络进行评估,获得评估结果。再根据此时的评估结果,重新获取的子网络中确定一个或多个为目标神经网络的网络结构。也就是说,本申请实施例并不限定基于一个或多个评估指标从训练好的超级网络中抽取子网络的方法。
以下,详细介绍本申请实施例提供的两种从经过训练的超级网络中执行子网络搜索过程的方法。
方法一、利用可微方法执行子网络搜索过程。
一些示例中,获得经过加权平均的方法训练过的超级网络,并利用可微方法在该经过训练的超级网络中执行子网络搜索过程。
示例性的,用户在输入N个评估指标时,也输入了这N个评估指标的一个或多个比例关系。可以理解的是,N个评估指标的比例关系,体现了N个评估指标之间的相对重要程度。显然,比例越高的评估指标,搜索得到的目标神经网络在目标硬件平台上基于该评估指标的评估效果越好。示例性的,若搜索适用于对精度要求较高的目标硬件平台上的目标神经网络时,则可以将精度指标占比提高。例如,评估指标包括精度指标以及时间开销指标,那么,精度指标对应的比例大于时间开销指标对应的比例,如精度指标与时间开销指标之间的比例为6:4。
若数据处理设备接收了用户输入的关于N个评估指标的r个比例关系。数据处理设备针对每一个比例关系进行一次预搜索;其中,r为正整数。
在一次预搜索过程中,将经过训练的超级网络中的各个第三算子集合中的第一算子集合和/或衍生的第二算子集合的评估结果分别设置一个权重。并基于N个评估指标以及N个评估指标的比例关系,对经过训练的超级网络再次训练。在训练过程中,调整各个第一算子集合和各个衍生的第二算子集合的评估结果对应的权重。根据调整后的各个第一算子集合和各个衍生的第二算子集合的评估结果对应的权重确定待评估的候选子网络,以及待评估的候选子网络的评估结果。
根据r次预搜索过程确定待评估的一个或多个候选子网络的评估结果,根据待评估的一个或多个候选子网络的评估结果确定一个或多个目标神经网络。在一个示例中,可以将多个待评估的候选子网络的评估结果从优到劣的排序,获取排序在先的一个或多个候选子网络为目标神经网络。
举例说明,假设N个评估指标包括精度评估指标以及时间开销评估指标(即N=2)。则相应的,N个评估指标的比例关系包括:精度评估指标以及时间开销评估指标之间的比例关系。例如:用户输入了精度评估指标和时间开销评估指标的第一比例和第二比例。
如图11中的(a)所示,为经过训练的超级网络。针对该超级网络中每一第三算子集合中的第一算子集合和/或一个或多个衍生的第二算子集合设置相应的权重。在一个第三算子集合中的第一算子集合和/或一个或多个衍生的第二算子集合的权重之和为1。例如,图11中的(a)所示的超级网络中包括四个第三算子集合,即一个虚线框内包含的所有算子集合构成一个第三算子集合,分别为第三算子集合1至第三算子集合4。其中,第三算子集合1中包括一个第一算子集合1和两个第二算子集合(第二算子集合1和第二算子集合2)。为第一算子集合1、第二算子集合1和第二算子集合2分别设置权重,且这三个算子集合的权重之和为1。在一些示例中,可以将第一算子集合1、第二算子集合1和第二算子集合2的权重设置为相同,例如约为0.33。依次类推,设置其他的第三算子集合中第一算子集合和/或第二算子集合的权重。
在训练过程中,将训练数据集输入到经过训练的超级网络中进行训练。比如,将训练数据集输入到第三算子集合1中,第三算子集合1中的第一算子集合和/或衍生的第二算子集合会对训练数据集进行计算,得到第三算子集合1输出的特征图。另外,还需要计算第三算子集合1基于N个评估指标的评估结果。其中,第三算子集合1基于某个评估指标(例如时间开销)的评估结果=第一算子集合1基于该评估指标的评估结果*W1+第二算子集合1基于该评估指标的评估结果*W2+第二算子集合2基于该评估指标的评估结果*W3。将计算后第三算子集合1输出的特征图以及第三算子集合1的基于N个评估指标的评估结果输入到第三算子集合2中,继续计算。同理的,第三算子集合2的基于N个评估指标的评估结果=第一算子集合2基于N个评估指标的的评估结果*W4+第二算子集合3基于N个评估指标的的评估结果*W5+第二算子集合4基于N个评估指标的的评估结果*W6。以此类推,得到最后一个第三算子集合进行计算结果后,输出最终的特征图以及累计的基于N个评估指标的评估结果(即超级网络的整体评估结果)。
之后,将最终的特征图以及累计的基于N个评估指标的评估结果,输入loss函数,并对经过训练的超级网络再次进行迭代训练。在迭代训练过程中,根据累计的基于N个评估指标的评估结果,在反向传播过程中,调整各个第三集合中的一个或多个第一算子集合和/或衍生的第二算子集合的评估结果对应的权重。直至loss函数的结果不再变化或者达到预设的迭代训练次数后停止训练,得到再次训练好的超级网络。从该神经网络中每个第三算子中选择权重最大的一个第一算子集合或一个衍生的第二算子集合,构成候选子网络。
例如,如图11中的(b)所示,为在比例关系1下,经过上述方法迭代训练,并达到停止训练条件的经过训练的超级网络。针对此时的超级网络,从每个第三算子集合中抽取权重最大第一算子集合或衍生的第二算子集合构成候选子网络。例如,在图11中的(b)中,箭头连接的实线框框选的多个第二算子集合和第一算子集合构成一个候选子网络,记为待评估的候选子网络1。类似的,如图11中的(c)所示,为在比例关系2下,经过上述方法迭代训练,并达到停止训练的条件的经过训练的超级网络。在图11中(c)中,箭头连接的实线框框选的第一算子集合和多个第二算子集合构成一个候选子网络,记为待评估的候选子网络2。
从待评估的候选子网络1和待评估的候选子网络2中选择评估结果更好的神经网络为搜索到的目标神经网络。
方法二、利用进化方法执行目标神经网络搜索过程。
一些示例中,获得经过onehot采样的方法训练过的超级网络,并利用进化方法在该经过训练的超级网络中执行子网络搜索过程。或者,获得先经过加权平均的方法训练,再经过onehot采样的方法训练过的超级网络,并利用进化方法在该经过训练的超级网络中执行子网络搜索过程。
示例性的,基于预设规则从经过训练的超级网络中抽取待评估的一个或多个候选子网络,并根据各个待评估的候选子网络的网络结构,以及各个第三算子集合中第一算子集合和/或第二算子集合基于N个评估指标的评估结果,确定各个待评估的候选子网络基于N个评估指标的评估结果。将各个待评估的候选子网络基于N个评估指标的评估结果从优到劣进行排序,得到排序在先的K个评估结果对应的K个第一目标候选子网络。其中,预设规则可以为随机抽取,也可以为优先选择FLOPs小的第一算子集合或第二算子集合等。本申请实施例对此不做限定。
举例来说,如图12中的(a)所示,经过训练的超级网络,例如包括4个第三算子集合,即一个虚线框内包含的所有算子集合构成一个第三算子集合,分别为第三算子集合1至第三算子集合4。第三算子集合1包含第一算子集合1,第二算子集合1和第二算子集合2。先从每一个第三算子集合中任意抽取一个第一算子集合或一个衍生的第二算子集合,构成一个目标候选子网络。进行多次抽取,获取多个目标候选子网络。例如,如图12中的(b)所示,箭头连接的实线框框选的多个第二算子集合和一个第一算子集合构成的神经网络,为抽取的一个待评估的候选子网络。又例如:如图12中的(c)所示,箭头连接的实线框框选的一个第一算子集合和多个第二算子集合构成的网络,为抽取的另一个待评估的候选子网络。
然后,根据经过训练的超级网络以及K个第一目标候选子网络,获得第n轮杂交和/或变异后的S个第二目标候选子网络;其中,n为预设筛选次数,n≥1;K和S为正整数,S>K。
例如,在图12中的(b)中,箭头所连接的第一算子集合和第二算子集合构成的神经网络为一个第一目标候选子网络,记为第一目标候选子网络1。在图12中的(c)中,箭头所连接的第一算子集合和第二算子集合构成的神经网络为另一个第一目标候选子网络,记为第一目标候选子网络2。且,第一目标候选子网络1和第一目标候选子网络2为K个第一目标候选子网络中排序在先的两个第一目标候选子网络。如此,将第一目标候选子网络1和第一目标候选子网络2进行杂交。比如,可以将第一目标候选子网络1中的第三算子集合1中的第二算子集合1替换为第一目标候选子网络2中的第三算子集合1中的第一算子集合1,得到一个第二目标候选子网络(包含第一算子集合1-第二算子集合4-第二算子集合6-第一算子集合3)。
上述变异,是指将K个第一目标候选子网络中第三算子集合中包括的第一算子集合或第二算子集合,替换为经过训练的超级网络中对应的第三算子集合中的任一第一算子集合或第二算子集合,获得第二目标候选子网络。
例如,在图12中的(b)中,箭头所连接的第一算子集合和第二算子集合构成的神经网络为一个第一目标候选子网络,记为第一目标候选子网络1。且第一目标候选子网络1为K个第一目标候选子网络中排序在先的第一目标候选子网络。如此,将第一目标候选子网络1基于如图12中的(a)所示的经过训练的超级网络进行变异。比如,将第一目标候选子网络1中第三算子集合1中的第二算子集合1,替换为经过训练的超级网络中的第三算子集合1中包括的第二算子集合2,得到一个第二目标候选子网络(包含第二算子集合2-第二算子集合4-第二算子集合6-第一算子集合3)。
可以理解的是,可以将K个第一目标候选子网络杂交获得S个第二目标候选子网络。或者,可以将K个第一目标候选子网络变异获得S个第二目标候选子网络。又或者,将K个第一目标候选子网络杂交以及变异获得S个第二目标候选子网络。对于杂交或变异的数量比例本申请实施例不做具体限定。
接着,根据第二目标候选子网络的网络结构,以及各个第三算子集合中第一算子集合和/或第二算子集合基于N个评估指标的评估结果,获得S个第二目标候选子网络的评估结果并进行从优到劣的排序,得到排序在先的K个评估结果对应的K个第二目标候选子网络。
最后,经过(n+1)轮迭代训练,也即经过n轮杂交和/或变异后,得到K*(n+1)个目标候选子网络。可以将K*(n+1)个目标候选子网络根据一个或多个评估指标再次排序,获得一个或多个目标神经网络的网络结构信息。
举例来说,若S=10,K=5,则第一次会从经过训练的超级网络中抽取10个第一目标候选子网络,并且每轮杂交和/或变异后都会获得10个目标候选子网络,每次筛选训练都会保留最优的5个目标候选子网络。由于杂交和/或变异后可能会使得上一轮筛选后的目标候选子网络消失,可能在训练过程中,消失的某一目标候选子网络为网络性能最优的神经网络。因此,最终会对每次获得的评估结果排序在先的所有目标候选子网络再次进行排序,选择较优的一个或多个目标候选子网络作为目标神经网络。假设n=2,即迭代训练了3次,经过了2轮杂交和/或变异,则最后在5×(2+1)=15个目标候选子网络中确定目标神经网络的网络结构信息。
由此,本申请实施例提供的神经网络的自适应搜索方法,可以基于目标硬件平台的评估指标,对源神经网络扩展的超级网络进行自适应的神经网络搜索,能在较高的搜索灵活性的前提下,搜索得到适应于目标硬件平台的目标神经网络,使得搜索到的目标神经网络运行在目标硬件平台上的评估结果优于源神经网络运行在目标硬件平台上的评估结果。
在一些实施例中,在上述步骤S103之后,如图13所示,神经网络的自适应搜索方法还可以包括S201-S202:
S201、基于目标神经网络的网络结构信息,构建目标神经网络。
示例性的,如上文所述,得到用于表征目标神经网络的目标神经网络的网络结构信息,如包含的第一算子集合和/或衍生的第二算子集合信息,第一算子集合和/或衍生的第二算子集合的排布方式,以及目标神经网络的层数等。根据目标神经网络的网络结构信息,构建目标神经网络。
S202、基于第二训练数据集对目标神经网络执行训练过程,得到经过训练的目标神经网络。
其中,第二训练数据集可以与上述步骤S102中用于训练超级网络的训练数据集相同或不同。
在一些实施例中,构建的目标神经网络为基于训练后的超级网络搜索出的神经网络,可以实现与源神经网络相同的功能,并且在目标硬件平台上的评估结果优于源神经网络在目标硬件平台的评估结果。但是,此时由于其内部参数还未调整至最佳状态,导致其在实际应用过程中,可能会出现问题,所以需要利用第二训练数据集对目标神经网络进行训练,调整目标神经网络中的参数信息,得到可以实际应用于执行目标任务的经过训练的目标神经网络。
示例性的,可以根据评估指标设置预设条件,利用第二训练数据集迭代训练目标神经网络,在迭代训练过程中,调整目标神经网络的内部参数。达到预设训练次数或loss函数不在下降时的神经网络,作为经过训练的可以实际应用于目标硬件平台的目标神经网络。
示例性的,经过训练的目标神经网络可以在目标硬件平台上执行计算机视觉(computer vision,CV)领域的目标任务,如目标检测任务和图像分类任务。具体的,目标检测任务例如可以包括人像检测,车窗人脸检测,人体人脸检测,图像模式检测,机非人检测,车牌检测等。图像分类任务例如可以包括红绿灯识别,车款识别,特殊车型识别等。
如此,可以得到能够实际在目标硬件平台上执行目标任务的目标神经网络。
本申请实施例提供一种通信系统,其特征在于,包括至少一个服务器和至少一个终端设备。
其中,至少一个服务器执行图4中的步骤S101-步骤S103,以及执行图13中的步骤S201-步骤S202,和/或用于本文所描述的技术的其它过程。至少一个终端设备向至少一个服务器发送搜索条件集,该搜索条件集包括:目标硬件平台信息,源神经网络的网络结构信息和一个或多个评估指标,源神经网络的网络结构信息用于表征源神经网络。至少一个终端设备接收至少一个服务器发送的经过训练的目标神经网络。
可选的,至少一个终端设备还用于确认是否将经过训练的目标神经网络发送至包含目标硬件平台的用户设备。其中,用户设备用于应用目标神经网络,用户设备可以是手机(mobile phone)、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及个人数字助理(personal digitalassistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence,AI)终端等终端设备,本公开实施例对用户设备的具体形态不作特殊限制。
图14示出了上述实施例中所涉及的神经网络的自适应搜索装置的一种可能的结构示意图。该装置包括:接收单元1401,构建单元1402,训练单元1403以及搜索单元1404。
其中,接收单元1401,用于支持装置执行图4中的步骤S101和/或用于本文所描述的技术的其它过程。
构建单元1402,用于支持装置执行图4中的步骤S102,图13中的步骤S201,图2中的构建模块212执行的步骤,和/或用于本文所描述的技术的其它过程。
训练单元1403,用于支持装置执行图4中的步骤S102,图13中的步骤S202,图2中的训练模块213,和/或用于本文所描述的技术的其它过程。
搜索单元1404,用于支持装置执行图4中的步骤S103,图2中的搜索模块215执行的步骤,和/或用于本文所描述的技术的其它过程。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能单元的功能描述,在此不再赘述。
图15所示为本申请实施例提供的装置的硬件结构示意图。该装置包括至少一个处理器1501,通信线路1502,存储器1503以及至少一个通信接口1504。其中,存储器1503还可以包括于处理器1501中。
处理器1501可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路1502可包括一通路,在上述组件之间传送信息。
通信接口1504,用于与其他设备通信。在本申请实施例中,通信接口可以是模块、电路、总线、接口、收发器或者其它能实现通信功能的装置,用于与其他设备通信。可选的,当通信接口是收发器时,该收发器可以为独立设置的发送器,该发送器可用于向其他设备发送信息,该收发器也可以为独立设置的接收器,用于从其他设备接收信息。该收发器也可以是将发送、接收信息功能集成在一起的部件,本申请实施例对收发器的具体实现不做限制。
存储器1503可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路202与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器1503用于存储用于实现本申请方案的计算机执行指令,并由处理器1501来控制执行。处理器1501用于执行存储器1503中存储的计算机执行指令,从而实现本申请下述实施例提供的神经网络自适应的搜索方法。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码、指令、计算机程序或者其它名称,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器1501可以包括一个或多个CPU,例如图15中的CPU0和CPU1。
在具体实现中,作为一种实施例,该装置可以包括多个处理器,例如图15中的处理器1501和处理器1505。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
需要说明的是,上述的装置可以是一个通用设备或者是一个专用设备,本申请实施例不限定该装置的类型。本申请实施例示意的结构并不构成对该装置的具体限定。在本申请另一些实施例中,该装置可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在服务器上运行时,使得服务器执行上述相关方法步骤实现上述实施例中的神经网络的自适应搜索方法。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的神经网络的自适应搜索方法。
另外,本申请的实施例还提供一种装置,该装置具体可以是组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使装置执行上述各方法实施例中的神经网络的自适应搜索方法。
其中,本申请实施例提供的装置、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序指令的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (34)
1.一种神经网络的自适应搜索方法,其特征在于,所述方法包括:
接收搜索条件集,所述搜索条件集包括:目标硬件平台信息,源神经网络的网络结构信息和一个或多个评估指标,所述源神经网络的网络结构信息用于表征所述源神经网络;
基于训练数据集对待训练的超级网络执行训练过程,得到经过训练的超级网络,其中所述待训练的超级网络是基于所述源神经网络的网络结构而扩展得到的;
基于所述一个或多个评估指标对所述经过训练的超级网络执行子网络搜索过程,以得到目标神经网络的网络结构信息,其中所述目标神经网络的网络结构信息用于表征所述目标神经网络,所述目标神经网络运行在所述目标硬件平台上的评估结果优于所述源神经网络运行在所述目标硬件平台上的评估结果。
2.根据权利要求1所述的方法,其特征在于,所述一个或多个评估指标包括如下任一项或几项:
神经网络模型的精度评估指标,神经网络模型的时间开销评估指标,神经网络模型的存储空间评估指标,神经网络模型的功耗评估指标,神经网络模型的张量计算单元的利用率评估指标,神经网络模型的内存读写速率评估指标;
其中,所述神经网络模型的精度评估指标包括目标神经网络的精度不低于精度阈值;
所述神经网络模型的时间开销评估指标包括目标神经网络的时间开销不大于时间开销阈值;
所述神经网络模型的存储空间评估指标包括目标神经网络占用的存储空间不大于存储空间阈值;
所述神经网络模型的功耗评估指标包括目标神经网络的功耗不大于功耗阈值;
所述神经网络模型的张量计算单元的利用率评估指标包括目标神经网络的张量计算单元的利用率不小于张量计算单元的利用率阈值;
所述神经网络模型的内存读写速率评估指标包括目标神经网络的内存读写速率不大于内存读写速率阈值。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述一个或多个评估指标对所述经过训练的超级网络执行子网络搜索过程,以得到目标神经网络的网络结构信息,包括:
利用第一知识库,从所述经过训练的超级网络中确定目标搜索范围内的待评估的一个或多个候选子网络;
基于所述一个或多个评估指标对所述目标搜索范围内的待评估的一个或多个候选子网络执行子网络搜索过程,以得到目标神经网络的网络结构信息。
4.根据权利要求1或2所述的方法,其特征在于,所述基于所述一个或多个评估指标对所述经过训练的超级网络执行子网络搜索过程,以得到目标神经网络的网络结构信息,包括:
获取所述目标硬件平台、M个神经网络的网络结构、N个评估指标、以及P个评估结果之间的对应关系信息,其中,M,N和P都是正整数;所述M个神经网络的网络结构包括于所述经过训练的超级网络的网络结构;
基于所述一个或多个评估指标和所述对应关系信息,确定所述经过训练的超级网络中包括的待评估的一个或多个候选子网络的评估结果;
基于所述待评估的一个或多个候选子网络的评估结果对所述经过训练的超级网络执行搜索过程,以得到目标神经网络的网络结构信息。
5.根据权利要求1或2所述的方法,其特征在于,所述一个或多个评估指标包括神经网络模型的时间开销评估指标,所述神经网络模型的时间开销评估指标包括目标神经网络的时间开销不大于时间开销阈值,
相应的,所述基于所述一个或多个评估指标对所述经训练的超级网络执行子网络搜索过程,包括:
基于所述神经网络模型的时间开销评估指标对所述经过训练的超级网络中包括的一个或多个候选子网络进行子网络评估,以得到神经网络模型的时间开销小于所述时间开销阈值的一个或多个目标神经网络。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
根据所述源神经网络的网络结构、第二知识库中的扩展规则以及所述目标硬件平台信息,采用横向和/或纵向的扩展方式构建所述待训练的超级网络。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述待训练的超级网络中第三算子集合包括:第一算子集合和/或衍生的第二算子集合,其中所述第一算子集合包括于所述源神经网络中。
8.根据权利要求4所述的方法,其特征在于,所述基于所述一个或多个评估指标和所述对应关系信息,确定所述经过训练的超级网络中包括的待评估的一个或多个候选子网络的评估结果,包括:
基于所述一个或多个评估指标和所述对应关系信息,确定所述经过训练的超级网络中各个第三算子集合中的各个第一算子集合和/或各个衍生的第二算子集合对应的评估结果,其中所述第一算子集合包括于所述源神经网络中;
基于所述N个评估指标的比例关系以及所述各个第三算子集合中的各个第一算子集合和/或各个衍生的第二算子集合对应的评估结果,获得所述待评估的一个或多个候选子网络的评估结果。
9.根据权利要求8所述的方法,其特征在于,所述基于所述N个评估指标的比例关系以及所述各个第三算子集合中的各个第一算子集合和/或各个衍生的第二算子集合对应的评估结果,获得所述待评估的一个或多个候选子网络的评估结果,包括:
接收r个所述N个评估指标的比例关系,针对每一个所述N个评估指标的比例关系进行一次预搜索;其中,r为正整数;
在一次预搜索过程中,设置各个第一算子集合和/或各个衍生的第二算子集合的评估结果的权重,并基于所述N个评估指标以及所述N个评估指标的比例关系,对所述经过训练的超级网络再次训练,在训练过程中,调整所述各个第一算子集合和各个衍生的第二算子集合的评估结果对应的权重;
根据调整后的所述各个第一算子集合和各个衍生的第二算子集合的评估结果对应的权重确定待评估的候选子网络,以及待评估的候选子网络的评估结果;
根据r次预搜索过程确定所述待评估的一个或多个候选子网络的评估结果。
10.根据权利要求8或9所述的方法,其特征在于,所述N个评估指标包括神经网络模型的精度评估指标以及神经网络模型的时间开销评估指标;相应的,所述N个评估指标的比例关系包括:所述精度评估指标以及所述时间开销评估指标之间的比例关系。
11.根据权利要求4所述的方法,其特征在于,基于所述待评估的一个或多个候选子网络的评估结果对所述经过训练的超级网络执行搜索过程,以得到目标神经网络的网络结构信息,包括:
将所述待评估的一个或多个候选子网络的评估结果排序,得到排序在先的K个评估结果对应的K个第一目标候选子网络;
根据所述经过训练的超级网络以及所述K个第一目标候选子网络,获得第n轮杂交和/或变异后的S个第二目标候选子网络;其中,n为预设筛选次数,n≥1;K和S为正整数,S>K;
基于所述一个或多个评估指标和所述对应关系信息,获得所述S个第二目标候选子网络的评估结果并进行排序,得到排序在先的K个评估结果对应的K个第二目标候选子网络;
从K*(n+1)个目标候选子网络中获得一个或多个所述目标神经网络的网络结构信息。
12.根据权利要求1至10任一项所述的方法,其特征在于,所述源神经网络为运行在源硬件平台上的神经网络,或者,所述目标神经网络为运行在所述目标硬件平台上的神经网络,所述源硬件平台不同于所述目标硬件平台。
13.根据权利要求1至10任一项所述的方法,其特征在于,所述源神经网络和所述目标神经网络为在不同时域上运行在所述目标硬件平台上的神经网络。
14.根据权利要求1至13任一项所述的方法,其特征在于,所述方法还包括:
基于所述目标神经网络的网络结构信息,构建目标神经网络;
基于第二训练数据集对所述目标神经网络执行训练过程,得到经过训练的目标神经网络。
15.根据权利要求14所述的方法,其特征在于,所述经过训练的目标神经网络运行于目标硬件平台,执行目标检测任务和/或图像分类任务。
16.一种神经网络的自适应搜索装置,其特征在于,所述装置包括:接收单元,训练单元以及搜索单元;
所述接收单元,用于接收搜索条件集,所述搜索条件集包括:目标硬件平台信息,源神经网络的网络结构信息和一个或多个评估指标,所述源神经网络的网络结构信息用于表征所述源神经网络;
所述训练单元,用于基于训练数据集对待训练的超级网络执行训练过程,得到经过训练的超级网络,其中所述待训练的超级网络是基于所述源神经网络的网络结构而扩展得到的;
所述搜索单元,用于基于所述一个或多个评估指标对所述经过训练的超级网络执行子网络搜索过程,以得到目标神经网络的网络结构信息,其中所述目标神经网络的网络结构信息用于表征所述目标神经网络,所述目标神经网络运行在所述目标硬件平台上的评估结果优于所述目标神经网络运行在源硬件平台上的评估结果。
17.根据权利要求16所述的装置,其特征在于,所述一个或多个评估指标包括如下任一项或几项:
神经网络模型的精度评估指标,神经网络模型的时间开销评估指标,神经网络模型的存储空间评估指标,神经网络模型的功耗评估指标,神经网络模型的张量计算单元的利用率评估指标,神经网络模型的内存读写速率评估指标;
其中,所述神经网络模型的精度评估指标包括目标神经网络的精度不低于精度阈值;
所述神经网络模型的时间开销评估指标包括目标神经网络的时间开销不大于时间开销阈值;
所述神经网络模型的存储空间评估指标包括目标神经网络占用的存储空间不大于存储空间阈值;
所述神经网络模型的功耗评估指标包括目标神经网络的功耗不大于功耗阈值;
所述神经网络模型的张量计算单元的利用率评估指标包括目标神经网络的张量计算单元的利用率不小于张量计算单元的利用率阈值;
所述神经网络模型的内存读写速率评估指标包括目标神经网络的内存读写速率不大于内存读写速率阈值。
18.根据权利要求16或17所述的装置,其特征在于,所述搜索单元具体用于:
利用第一知识库,从所述经过训练的超级网络中确定目标搜索范围内的待评估的一个或多个候选子网络;基于所述一个或多个评估指标对所述目标搜索范围内的待评估的一个或多个候选子网络执行子网络搜索过程,以得到目标神经网络的网络结构信息。
19.根据权利要求16或17所述的装置,其特征在于,所述搜索单元具体用于:
获取所述目标硬件平台、M个神经网络的网络结构、N个评估指标、以及P个评估结果之间的对应关系信息,其中,M,N和P都是正整数;所述M个神经网络的网络结构包括于所述经过训练的超级网络的网络结构;基于所述一个或多个评估指标和所述对应关系信息,确定所述经过训练的超级网络中包括的待评估的一个或多个候选子网络的评估结果;基于所述待评估的一个或多个候选子网络的评估结果对所述经过训练的超级网络执行搜索过程,以得到目标神经网络的网络结构信息。
20.根据权利要求16或17所述的装置,其特征在于,所述一个或多个评估指标包括神经网络模型的时间开销评估指标,所述神经网络模型的时间开销评估指标包括目标神经网络的时间开销不大于时间开销阈值,
相应的,所述搜索单元具体用于基于所述神经网络模型的时间开销评估指标对所述经过训练的超级网络中包括的一个或多个候选子网络进行子网络评估,以得到神经网络模型的时间开销小于所述时间开销阈值的一个或多个目标神经网络。
21.根据权利要求16至20任一项所述的装置,其特征在于,所述装置还包括:
构建单元,用于根据所述源神经网络的网络结构、第二知识库中的扩展规则以及所述目标硬件平台信息,采用横向和/或纵向的扩展方式构建待训练的超级网络。
22.根据权利要求16至21任一项所述的装置,其特征在于,所述待训练的超级网络中第三算子集合包括:第一算子集合和/或衍生的第二算子集合,其中所述第一算子集合包括于所述源神经网络中。
23.根据权利要求19所述的装置,其特征在于,所述搜索单元具体用于:
基于所述一个或多个评估指标和所述对应关系信息,确定所述经过训练的超级网络中各个第三算子集合中的各个第一算子集合和/或各个衍生的第二算子集合对应的评估结果,其中所述第一算子集合包括于所述源神经网络中;基于所述N个评估指标的比例关系以及所述各个第三算子集合中的各个第一算子集合和/或各个衍生的第二算子集合对应的评估结果,获得所述待评估的一个或多个候选子网络的评估结果;基于所述一个或多个待评估的候选子网络的评估结果对所述经过训练的超级网络执行搜索过程,以得到目标神经网络的网络结构信息。
24.根据权利要求23所述的装置,其特征在于,所述搜索单元还用于:
接收r个所述N个评估指标的比例关系,针对每一个所述N个评估指标的比例关系进行一次预搜索;其中,r为正整数;在一次预搜索过程中,设置各个第一算子集合和/或各个衍生的第二算子集合的评估结果的权重,并基于所述N个评估指标以及所述N个评估指标的比例关系,对所述经过训练的超级网络再次训练,在训练过程中,调整所述各个第一算子集合和各个衍生的第二算子集合的评估结果对应的权重;根据调整后的所述各个第一算子集合和各个衍生的第二算子集合的评估结果对应的权重确定待评估的候选子网络,以及待评估的候选子网络的评估结果;根据r次预搜索过程确定所述待评估的一个或多个候选子网络的评估结果。
25.根据权利要求23或24所述的装置,其特征在于,所述N个评估指标包括神经网络模型的精度评估指标以及神经网络模型的时间开销评估指标;相应的,所述N个评估指标的比例关系包括:所述精度评估指标以及所述时间开销评估指标之间的比例关系。
26.根据权利要求19所述的装置,其特征在于,所述搜索单元还用于:
将所述待评估的一个或多个候选子网络的评估结果排序,得到排序在先的K个评估结果对应的K个第一目标候选子网络;根据所述经过训练的超级网络以及所述K个第一目标候选子网络,获得第n轮杂交和/或变异后的S个第二目标候选子网络;其中,n为预设筛选次数,n≥1;K和S为正整数,S>K;基于所述一个或多个评估指标和所述对应关系信息,获得所述S个第二目标候选子网络的评估结果并进行排序,得到排序在先的K个评估结果对应的K个第二目标候选子网络;从K*(n+1)个目标候选子网络中获得一个或多个所述目标神经网络的网络结构信息。
27.根据权利要求16至26任一项所述的装置,其特征在于,所述源神经网络为运行在源硬件平台上的神经网络,或者,所述目标神经网络为运行在所述目标硬件平台上的神经网络,所述源硬件平台不同于所述目标硬件平台。
28.根据权利要求16至27任一项所述的装置,其特征在于,所述源神经网络和所述目标神经网络为在不同时域上运行在所述目标硬件平台上的神经网络。
29.根据权利要求16至28任一项所述的装置,其特征在于,
构建单元还用于基于所述目标神经网络的网络结构信息,构建目标神经网络;
所述训练单元还用于基于第二训练数据集对所述目标神经网络执行训练过程,得到经过训练的目标神经网络。
30.根据权利要求29所述的装置,其特征在于,所述经过训练的目标神经网络运行于目标硬件平台,执行目标检测任务和/或图像分类任务。
31.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器;
以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令;当所述指令被所述服务器执行时,使得所述服务器执行如权利要求1-15中任一项所述的神经网络的自适应搜索方法。
32.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在服务器上运行时,使得所述服务器执行如权利要求1-15中任一项所述的神经网络的自适应搜索方法。
33.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1-15中任一项所述的神经网络的自适应搜索方法。
34.一种通信系统,其特征在于,包括至少一个服务器和至少一个终端设备,所述至少一个服务器执行如权利要求1-15中任一项所述的神经网络的自适应搜索方法;所述至少一个终端设备向所述至少一个服务器发送搜索条件集,所述搜索条件集包括:目标硬件平台信息,源神经网络的网络结构信息和一个或多个评估指标,所述源神经网络的网络结构信息用于表征所述源神经网络;所述至少一个终端设备接收所述至少一个服务器发送的经过训练的目标神经网络。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010044288.8A CN113128678A (zh) | 2020-01-15 | 2020-01-15 | 神经网络的自适应搜索方法及装置 |
CA3164908A CA3164908A1 (en) | 2020-01-15 | 2021-01-15 | Adaptive search method and apparatus for neural network |
EP21740665.1A EP4080416A4 (en) | 2020-01-15 | 2021-01-15 | METHOD AND APPARATUS FOR ADAPTIVE RESEARCH FOR NEURONAL NETWORK |
JP2022543064A JP7366274B2 (ja) | 2020-01-15 | 2021-01-15 | ニューラル・ネットワークのための適応的探索方法および装置 |
PCT/CN2021/072294 WO2021143883A1 (zh) | 2020-01-15 | 2021-01-15 | 神经网络的自适应搜索方法及装置 |
KR1020227027826A KR20220127878A (ko) | 2020-01-15 | 2021-01-15 | 신경망을 위한 적응 검색 방법 및 장치 |
US17/864,521 US20220351019A1 (en) | 2020-01-15 | 2022-07-14 | Adaptive Search Method and Apparatus for Neural Network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010044288.8A CN113128678A (zh) | 2020-01-15 | 2020-01-15 | 神经网络的自适应搜索方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113128678A true CN113128678A (zh) | 2021-07-16 |
Family
ID=76772137
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010044288.8A Pending CN113128678A (zh) | 2020-01-15 | 2020-01-15 | 神经网络的自适应搜索方法及装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20220351019A1 (zh) |
EP (1) | EP4080416A4 (zh) |
JP (1) | JP7366274B2 (zh) |
KR (1) | KR20220127878A (zh) |
CN (1) | CN113128678A (zh) |
CA (1) | CA3164908A1 (zh) |
WO (1) | WO2021143883A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114037058A (zh) * | 2021-11-05 | 2022-02-11 | 北京百度网讯科技有限公司 | 预训练模型的生成方法、装置、电子设备以及存储介质 |
CN114037057A (zh) * | 2021-11-05 | 2022-02-11 | 北京百度网讯科技有限公司 | 预训练模型的生成方法、装置、电子设备以及存储介质 |
CN114298272A (zh) * | 2021-12-23 | 2022-04-08 | 安谋科技(中国)有限公司 | 神经网络模型的构建方法、图像处理方法、设备及介质 |
CN114492769A (zh) * | 2022-04-11 | 2022-05-13 | 飞腾信息技术有限公司 | 数据处理方法、相关设备及系统 |
CN114492737A (zh) * | 2021-12-31 | 2022-05-13 | 北京百度网讯科技有限公司 | 数据处理方法、装置及电子设备、存储介质及程序产品 |
WO2022252694A1 (zh) * | 2021-05-29 | 2022-12-08 | 华为云计算技术有限公司 | 神经网络优化方法及其装置 |
WO2023078009A1 (zh) * | 2021-11-05 | 2023-05-11 | 华为云计算技术有限公司 | 一种模型权重获取方法以及相关系统 |
CN118396069A (zh) * | 2024-07-01 | 2024-07-26 | 星凡星启(成都)科技有限公司 | 一种深度学习模型算子代码的自动生成方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115034368B (zh) * | 2022-06-10 | 2023-09-29 | 小米汽车科技有限公司 | 车载模型训练方法、装置、电子设备、存储介质及芯片 |
WO2023248166A1 (en) * | 2022-06-22 | 2023-12-28 | Dragerwerk AG & Co. KGaA | Physiological characteristic waveform classification with efficient deep network search |
CN115017377B (zh) * | 2022-08-05 | 2022-11-08 | 深圳比特微电子科技有限公司 | 用于搜索目标模型的方法、装置和计算设备 |
WO2024127462A1 (en) * | 2022-12-12 | 2024-06-20 | Nec Corporation | Automatic machine learning development system, automatic machine learning development method and program |
GB2627250A (en) * | 2023-02-17 | 2024-08-21 | Bae Systems Plc | Energy efficient machine learning models |
CN117743859A (zh) * | 2024-02-21 | 2024-03-22 | 北京航空航天大学 | 工业分析模型的训练方法、使用方法及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110363810A (zh) * | 2019-06-14 | 2019-10-22 | 北京百度网讯科技有限公司 | 建立图像检测模型的方法、装置、设备和计算机存储介质 |
CN110659721A (zh) * | 2019-08-02 | 2020-01-07 | 浙江省北大信息技术高等研究院 | 一种目标检测网络的构建方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6042274B2 (ja) * | 2013-06-28 | 2016-12-14 | 株式会社デンソーアイティーラボラトリ | ニューラルネットワーク最適化方法、ニューラルネットワーク最適化装置及びプログラム |
US11188820B2 (en) * | 2017-09-08 | 2021-11-30 | International Business Machines Corporation | Deep neural network performance analysis on shared memory accelerator systems |
CN108985386A (zh) * | 2018-08-07 | 2018-12-11 | 北京旷视科技有限公司 | 获得图像处理模型的方法、图像处理方法及对应装置 |
CN109919315B (zh) * | 2019-03-13 | 2021-10-01 | 科大讯飞股份有限公司 | 一种神经网络的前向推理方法、装置、设备及存储介质 |
CN110533179A (zh) * | 2019-07-15 | 2019-12-03 | 北京地平线机器人技术研发有限公司 | 网络结构搜索方法和装置、可读存储介质、电子设备 |
-
2020
- 2020-01-15 CN CN202010044288.8A patent/CN113128678A/zh active Pending
-
2021
- 2021-01-15 KR KR1020227027826A patent/KR20220127878A/ko unknown
- 2021-01-15 CA CA3164908A patent/CA3164908A1/en active Pending
- 2021-01-15 EP EP21740665.1A patent/EP4080416A4/en active Pending
- 2021-01-15 WO PCT/CN2021/072294 patent/WO2021143883A1/zh unknown
- 2021-01-15 JP JP2022543064A patent/JP7366274B2/ja active Active
-
2022
- 2022-07-14 US US17/864,521 patent/US20220351019A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110363810A (zh) * | 2019-06-14 | 2019-10-22 | 北京百度网讯科技有限公司 | 建立图像检测模型的方法、装置、设备和计算机存储介质 |
CN110659721A (zh) * | 2019-08-02 | 2020-01-07 | 浙江省北大信息技术高等研究院 | 一种目标检测网络的构建方法和系统 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022252694A1 (zh) * | 2021-05-29 | 2022-12-08 | 华为云计算技术有限公司 | 神经网络优化方法及其装置 |
CN114037057B (zh) * | 2021-11-05 | 2024-03-15 | 北京百度网讯科技有限公司 | 预训练模型的生成方法、装置、电子设备以及存储介质 |
CN114037057A (zh) * | 2021-11-05 | 2022-02-11 | 北京百度网讯科技有限公司 | 预训练模型的生成方法、装置、电子设备以及存储介质 |
WO2023078009A1 (zh) * | 2021-11-05 | 2023-05-11 | 华为云计算技术有限公司 | 一种模型权重获取方法以及相关系统 |
CN114037058A (zh) * | 2021-11-05 | 2022-02-11 | 北京百度网讯科技有限公司 | 预训练模型的生成方法、装置、电子设备以及存储介质 |
CN114037058B (zh) * | 2021-11-05 | 2024-05-17 | 北京百度网讯科技有限公司 | 预训练模型的生成方法、装置、电子设备以及存储介质 |
CN114298272A (zh) * | 2021-12-23 | 2022-04-08 | 安谋科技(中国)有限公司 | 神经网络模型的构建方法、图像处理方法、设备及介质 |
CN114298272B (zh) * | 2021-12-23 | 2024-09-10 | 安谋科技(中国)有限公司 | 神经网络模型的构建方法、图像处理方法、设备及介质 |
CN114492737A (zh) * | 2021-12-31 | 2022-05-13 | 北京百度网讯科技有限公司 | 数据处理方法、装置及电子设备、存储介质及程序产品 |
CN114492737B (zh) * | 2021-12-31 | 2022-12-09 | 北京百度网讯科技有限公司 | 数据处理方法、装置及电子设备、存储介质及程序产品 |
US11983086B2 (en) | 2021-12-31 | 2024-05-14 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method for processing data, and electronic device, storage medium and program product |
CN114492769A (zh) * | 2022-04-11 | 2022-05-13 | 飞腾信息技术有限公司 | 数据处理方法、相关设备及系统 |
CN114492769B (zh) * | 2022-04-11 | 2022-08-12 | 飞腾信息技术有限公司 | 数据处理方法、相关设备及系统 |
CN118396069A (zh) * | 2024-07-01 | 2024-07-26 | 星凡星启(成都)科技有限公司 | 一种深度学习模型算子代码的自动生成方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220351019A1 (en) | 2022-11-03 |
EP4080416A4 (en) | 2023-02-01 |
JP7366274B2 (ja) | 2023-10-20 |
KR20220127878A (ko) | 2022-09-20 |
EP4080416A1 (en) | 2022-10-26 |
JP2023510566A (ja) | 2023-03-14 |
CA3164908A1 (en) | 2021-07-22 |
WO2021143883A1 (zh) | 2021-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113128678A (zh) | 神经网络的自适应搜索方法及装置 | |
US11307865B2 (en) | Data processing apparatus and method | |
US11907810B2 (en) | Concurrent optimization of machine learning model performance | |
CN114915630B (zh) | 基于物联网设备的任务分配方法、网络训练方法及装置 | |
CN113449857A (zh) | 一种数据处理方法和数据处理设备 | |
WO2021088365A1 (zh) | 确定神经网络的方法和装置 | |
US20230281973A1 (en) | Neural network model training method, image processing method, and apparatus | |
US20240135174A1 (en) | Data processing method, and neural network model training method and apparatus | |
CN113505883A (zh) | 一种神经网络训练方法以及装置 | |
WO2021174370A1 (en) | Method and system for splitting and bit-width assignment of deep learning models for inference on distributed systems | |
CN113778691B (zh) | 一种任务迁移决策的方法、装置及系统 | |
CN112446888A (zh) | 图像分割模型的处理方法和处理装置 | |
WO2022252694A1 (zh) | 神经网络优化方法及其装置 | |
KR20190141581A (ko) | 데이터 예측을 위한 인공신경망을 학습하는 방법 및 장치 | |
CN116090536A (zh) | 神经网络的优化方法、装置、计算机设备及存储介质 | |
CN117707795B (zh) | 基于图的模型划分的边端协同推理方法及系统 | |
CN116796821A (zh) | 面向3d目标检测算法的高效神经网络架构搜索方法及装置 | |
CN115412401B (zh) | 训练虚拟网络嵌入模型及虚拟网络嵌入的方法和装置 | |
Tang et al. | Training Compact DNNs with ℓ1/2 Regularization | |
CN114900435B (zh) | 一种连接关系预测方法及相关设备 | |
CN115983362A (zh) | 一种量化方法、推荐方法以及装置 | |
Lahiany et al. | Pteenet: post-trained early-exit neural networks augmentation for inference cost optimization | |
US11086634B2 (en) | Data processing apparatus and method | |
JP2022075307A (ja) | 演算デバイス、計算機システム、及び演算方法 | |
CN117218459B (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 |