一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种神经网络架构搜索方法、设备、存储介质及程序产品与流程

2022-08-17 08:55:14 来源:中国专利 TAG:


1.本公开涉及人工智能技术领域,尤其涉及一种神经网络架构搜索方法、设备、存储介质及程序产品。


背景技术:

2.近年来,深度神经网络在计算机视觉以及自然语言处理任务中取得了突破性进展,因此吸引了越来越多的人工智能(artificial intelligence,ai)研究者来设计性能更优的模型结构。其中,自动化神经网络架构搜索(neural architecture search,nas)能够在给定的少量算力下,遍历模型结构搜索到性能最优的模型结构。
3.目前,在进行数据处理模型的处理过程中,可以通过nas技术进行神经网络架构搜索。为了提升神经网络的模型结构搜索效率,相关技术中提出了一次性网络架构搜索(one-shot nas)以及基于梯度的nas方法。one-shot nas利用权重共享策略,近似于训练一个包含了所有候选架构的超网络。每个候选架构直接从超网络中继承权重,不需要进一步训练,可以提高神经网络架构搜索效率,但会导致架构评估退化并损害搜索精度。基于梯度的nas中引入了架构参数,架构参数通过梯度下降与网络权重联合训练,使得nas可以端到端地训练,但架构参数不能真正反映每个候选操作的强度。故,基于目前的nas方法进行数据处理模型的神经网络架构搜索的处理过程,搜索复杂度较高。


技术实现要素:

4.为克服相关技术中存在的问题,本公开提供一种神经网络架构搜索方法、设备、存储介质及程序产品。
5.根据本公开实施例的第一方面,提供一种神经网络架构搜索方法,包括:
6.确定图像处理任务,并确定对所述图像处理任务进行图像处理的网络架构搜索空间以及候选操作搜索空间;基于所述网络架构搜索空间以及所述候选操作搜索空间,创建树结构,并基于所述树结构,分解所述网络架构搜索空间以及所述候选操作搜索空间,得到所述图像处理任务的神经网络架构。
7.一种实施方式中,所述基于所述网络架构搜索空间以及所述候选操作搜索空间,创建树结构,并基于所述树结构,分解所述网络架构搜索空间以及所述候选操作搜索空间,包括:
8.基于所述网络架构搜索空间,创建第一树结构,所述第一树结构的根节点为具有边数为所述网络架构搜索空间对应层数,每一边对应所述网络架构搜索空间路径数的超网结构,所述第一树结构的深度为所述层数,所述第一树结构的叶子节点为单路径结构;基于所述第一树结构,选择目标单路径;将所述目标单路径对应的候选操作搜索空间,分解为第二树结构,所述第二树结构的根节点对应所述候选操作搜索空间中的全部候选操作,同一级别的子节点对应互斥的操作组,所述第二树结构的叶子节点为单候选操作;基于所述第二树结构,选择所述目标单路径对应的目标操作。
9.一种实施方式中,所述基于所述网络架构搜索空间,创建第一树结构,包括:
10.将所述网络架构搜索空间中的每一架构层映射为一个节点,并按照所述网络架构搜索空间中架构层之间的输入输出关系,将所述节点间通过有向边连接,得到深度为所述层数的树结构;其中,所述有向边的起始节点对应所述网络架构搜索空间中的输入架构,终止节点对应所述网络架构搜索空间中的输出架构,节点间的有向边数量为所述网络架构搜索空间的路径数;按照深度从小到大的顺序,依次对所述网络架构搜索空间中各架构层映射的节点所对应的有向边拆分,使每个节点对应得到所述有向边数量个子节点,直至达到对应单路径结构的叶子节点。
11.一种实施方式中,所述基于所述第一树结构,选择目标单路径,包括:
12.在所述第一树结构中,从最小深度的根节点开始扩展至第一深度;对所述第一深度处的各节点进行打分,并选择分值最高的节点作为根节点;重复执行上述过程,直至确定出分值最高的叶子节点,将分值最高的叶子节点对应的单路径,作为目标单路径。
13.一种实施方式中,所述将所述目标单路径对应的候选操作搜索空间,分解为第二树结构,包括:
14.将所述目标单路径对应的候选操作搜索空间中的全部候选操作映射为根节点;将所述根节点对应的全部候选操作分支为两个互斥操作组;将所述互斥操作组中的候选操作分别映射为根节点,并重复执行将所述根节点对应的全部候选操作分支为两个互斥操作组的步骤,直至得到单候选操作的叶子节点。
15.一种实施方式中,所述基于所述第二树结构,选择所述目标单路径对应的目标操作,包括:
16.在所述第二树结构中,从最小深度的根节点开始扩展至第二深度;对所述第二深度处的各节点进行打分,并选择分值最高的节点作为根节点;重复执行上述过程,直至确定出分值最高的叶子节点,将分值最高的叶子节点对应的单操作,作为所述目标单路径对应的目标操作。
17.一种实施方式中,所述对所述第一深度处的各节点进行打分,包括:
18.对所述第一深度处包括的各节点,分别确定所述节点所映射的全部单路径对应的子网,将所述全部单路径对应的子网分值之和,作为所述节点的分值。
19.一种实施方式中,所述对所述第二深度处的各节点进行打分,包括:
20.对所述第二深度处包括的各节点,分别确定所述节点所映射的操作组,对所述操作组整体进行打分得到的分值,作为所述节点的分值。
21.根据本公开实施例的第二方面,提供一种神经网络架构搜索装置,包括:
22.确定单元,用于确定图像处理任务,并确定对所述图像处理任务进行图像处理的网络架构搜索空间以及候选操作搜索空间;搜索单元,用于基于所述网络架构搜索空间以及所述候选操作搜索空间,创建树结构,并基于所述树结构,分解所述网络架构搜索空间以及所述候选操作搜索空间,得到所述图像处理任务的神经网络架构。
23.一种实施方式中,所述搜索单元采用如下方式基于所述网络架构搜索空间以及所述候选操作搜索空间,创建树结构,分并基于所述树结构,解所述网络架构搜索空间以及所述候选操作搜索空间:
24.基于所述网络架构搜索空间,创建第一树结构,所述第一树结构的根节点为具有
边数为所述网络架构搜索空间对应层数,每一边对应所述网络架构搜索空间路径数的超网结构,所述第一树结构的深度为所述层数,所述第一树结构的叶子节点为单路径结构;基于所述第一树结构,选择目标单路径;将所述目标单路径对应的候选操作搜索空间,分解为第二树结构,所述第二树结构的根节点对应所述候选操作搜索空间中的全部候选操作,同一级别的子节点对应互斥的操作组,所述第二树结构的叶子节点为单候选操作;基于所述第二树结构,选择所述目标单路径对应的目标操作。
25.一种实施方式中,所述搜索单元采用如下方式基于所述网络架构搜索空间,创建第一树结构:
26.将所述网络架构搜索空间中的每一架构层映射为一个节点,并按照所述网络架构搜索空间中架构层之间的输入输出关系,将所述节点间通过有向边连接,得到深度为所述层数的树结构;其中,所述有向边的起始节点对应所述网络架构搜索空间中的输入架构,终止节点对应所述网络架构搜索空间中的输出架构,节点间的有向边数量为所述网络架构搜索空间的路径数;按照深度从小到大的顺序,依次对所述网络架构搜索空间中各架构层映射的节点所对应的有向边拆分,使每个节点对应得到所述有向边数量个子节点,直至达到对应单路径结构的叶子节点。
27.一种实施方式中,所述搜索单元采用如下方式基于所述第一树结构,选择目标单路径:
28.在所述第一树结构中,从最小深度的根节点开始扩展至第一深度;对所述第一深度处的各节点进行打分,并选择分值最高的节点作为根节点;重复执行上述过程,直至确定出分值最高的叶子节点,将分值最高的叶子节点对应的单路径,作为目标单路径。
29.一种实施方式中,所述搜索单元采用如下方式将所述目标单路径对应的候选操作搜索空间,分解为第二树结构:
30.将所述目标单路径对应的候选操作搜索空间中的全部候选操作映射为根节点;将所述根节点对应的全部候选操作分支为两个互斥操作组;将所述互斥操作组中的候选操作分别映射为根节点,并重复执行将所述根节点对应的全部候选操作分支为两个互斥操作组的步骤,直至得到单候选操作的叶子节点。
31.一种实施方式中,所述搜索单元采用如下方式基于所述第二树结构,选择所述目标单路径对应的目标操作:
32.在所述第二树结构中,从最小深度的根节点开始扩展至第二深度;对所述第二深度处的各节点进行打分,并选择分值最高的节点作为根节点;重复执行上述过程,直至确定出分值最高的叶子节点,将分值最高的叶子节点对应的单操作,作为所述目标单路径对应的目标操作。
33.一种实施方式中,所述搜索单元采用如下方式对所述第一深度处的各节点进行打分:
34.对所述第一深度处包括的各节点,分别确定所述节点所映射的全部单路径对应的子网,将所述全部单路径对应的子网分值之和,作为所述节点的分值。
35.一种实施方式中,所述搜索单元采用如下方式对所述第二深度处的各节点进行打分:
36.对所述第二深度处包括的各节点,分别确定所述节点所映射的操作组,对所述操
作组整体进行打分得到的分值,作为所述节点的分值。
37.根据本公开实施例第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现第一方面或者第一方面任意一种实施方式中所述的方法。
38.根据本公开实施例第四方面,提供一种计算机可读存储介质,其上存储有计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现第一方面或者第一方面任意一种实施方式中所述的方法。
39.根据本公开实施例第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序用于在被处理器执行时实现第一方面或者第一方面任意一种实施方式中所述的方法。
40.本公开的实施例提供的技术方案可以包括以下有益效果:针对图像处理任务进行图像处理的的网络架构搜索空间以及候选操作空间创建树结构,并基于树结构分解所述网络架构搜索空间以及所述候选操作搜索空间,得到所述图像处理任务的神经网络架构,进行神经网络架构搜索。其中,由于树结构具有深度,故,可以基于神经网络架构搜索的精度确定在树结构上进行搜索的深度,基于该深度进行神经网络架构搜索,进而实现了网络架构搜索空间以及候选操作空间的部分搜索,降低搜索复杂度。
41.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
42.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
43.图1是根据一示例性实施例示出的一种神经网络架构搜索方法的流程图。
44.图2是根据一示例性实施例示出的一种基于网络架构搜索空间创建第一树结构的流程示意图。
45.图3示出了本公开一示例性实施方式中示出的第一树结构示意图。
46.图4中分别展示了da为1时进行网络架构搜索空间分解的过程示意图。
47.图5中分别展示了da为3时进行网络架构搜索空间分解的过程示意图。
48.图6是根据一示例性实施例示出的一种基于候选操作搜索空间中的各个候选操作创建第二树结构的流程示意图。
49.图7示出了本公开一示例性实施方式中示出的第二树结构示意图。
50.图8示出了本公开一示例性实施方式中示出的结合第一树结构和第二树结构进行神经网络架构搜索的过程示意图。
51.图9是根据一示例性实施例示出的一种神经网络架构搜索装置框图。
52.图10是根据一示例性实施例示出的一种用于神经网络架构搜索的电子设备框图。
具体实施方式
53.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例
中所描述的实施方式并不代表与本公开相一致的所有实施方式。
54.在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本公开一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本公开,而不能理解为对本公开的限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。下面结合附图对本公开的实施例进行详细说明。
55.近年来,基于人工智能的计算机视觉、深度学习、机器学习、图像处理、图像识别等技术研究取得了重要进展。人工智能(artificial intelligence,ai)是研究、开发用于模拟、延伸人的智能的理论、方法、技术及应用系统的新兴科学技术。人工智能学科是一门综合性学科,涉及芯片、大数据、云计算、物联网、分布式存储、深度学习、机器学习、神经网络等诸多技术种类。计算机视觉作为人工智能的一个重要分支,具体是让机器识别世界,计算机视觉技术通常包括人脸识别、活体检测、指纹识别与防伪验证、生物特征识别、人脸检测、行人检测、目标检测、行人识别、图像处理、图像识别、图像语义理解、图像检索、文字识别、视频处理、视频内容识别、行为识别、三维重建、虚拟现实、增强现实、同步定位与地图创建(slam)、计算摄影、机器人导航与定位等技术。随着人工智能技术的研究和进步,该项技术在众多领域展开了应用,例如安防、城市管理、交通管理、楼宇管理、园区管理、人脸通行、人脸考勤、物流管理、仓储管理、机器人、智能营销、计算摄影、手机影像、云服务、智能家居、穿戴设备、无人驾驶、自动驾驶、智能医疗、人脸支付、人脸解锁、指纹解锁、人证核验、智慧屏、智能电视、摄像机、移动互联网、网络直播、美颜、美妆、医疗美容、智能测温等领域。
56.其中,用于数据处理的神经网络架构搜索(nas)因其能够以最少的人工干预寻找高性能神经网络架构的能力,在学术界和工业界都引起了越来越多的兴趣。其中,本公开实施例涉及的数据处理可以是上述涉及的人工智能所应用的各领域中涉及的数据处理过程。进一步的,神经网络架构搜索,主要是通过强化学习或进化算法自动探索搜索空间。然而,在进行搜索空间探索时,需要训练大量的架构才能达到较好的精度,因此相当消耗资源,这将限制神经网络架构搜索在计算资源有限的用户中的应用。近期一次性网络架构搜索(one-shot nas)提高了nas的效率。one-shot nas利用权重共享策略,近似于训练一个包含了所有候选架构的超网络。每个候选架构直接从超网络中继承权重,不需要进一步训练。在one-shot nas方法中,基于梯度的nas(如darts)引入了架构参数。架构参数通过梯度下降与网络权重联合训练,使得nas可以端到端的进行训练。尽管one-shot nas算法的效率很高,但会导致架构评估退化并损害搜索精度。基于梯度的nas方法还有另外一个缺点,即架构参数不能真正反映每个候选操作的强度。故,如何降低nas的处理过程,降低搜索复杂度是需要解决的问题。
57.有鉴于此,本公开实施例提供用于数据处理的神经网络架构搜索方法,基于神经网络架构对应的网络架构搜索空间以及候选操作空间创建树结构,并基于树结构进行神经网络架构搜索,以降低搜索复杂度。
58.图1是根据一示例性实施例示出的一种神经网络架构搜索方法的流程图,如图1所示,神经网络架构搜索方法包括以下步骤。
59.在步骤s11中,确定图像处理任务,并确定对图像处理任务进行图像处理的网络架构搜索空间以及候选操作搜索空间。
60.在步骤s12中,基于网络架构搜索空间以及候选操作搜索空间,创建树结构,并基于树结构,分解网络架构搜索空间以及候选操作搜索空间,得到图像处理任务的神经网络架构。
61.本公开实施例提供用于数据处理的神经网络架构搜索方法,基于图像处理任务进行图像处理的网络架构搜索空间以及候选操作空间创建树结构,并基于树结构分解网络架构搜索空间以及候选操作搜索空间,实现基于树结构的神经网络架构搜索。其中,由于树结构具有深度,故,可以基于神经网络架构搜索的精度确定在树结构上进行搜索的深度,基于该深度进行神经网络架构搜索,进而实现了网络架构搜索空间以及候选操作空间的部分搜索,降低搜索复杂度。
62.一种实施方式中,本公开实施例中可以基于网络架构搜索空间构建匹配搜索空间架构的树结构,以下称为第一树结构。其中,第一树结构可以理解为是基于网络架构搜索空间的网络架构层创建的架构树,该架构树能够体现网络架构搜索空间中涉及的各个网络架构层。其中,第一树结构中的每一节点代表网络架构搜索空间中的一个架构层。本公开以下实施例中第一树结构和架构树有时会交替使用,本领域技术人员应理解其含义的一致性。
63.本公开一示例性实施方式中,可以确定网络架构搜索空间中包括的架构层,以及各架构层之间的输入输出关系,并确定网络架构搜索空间的路径数,基于架构层数以及路径数,创建第一树结构。
64.图2是根据一示例性实施例示出的一种基于网络架构搜索空间创建第一树结构的流程示意图。参阅图2所示,基于网络架构搜索空间创建第一树结构的实施过程包括如下步骤。
65.在步骤s21中,将网络架构搜索空间中的每一架构层映射为一个节点。
66.在步骤s22中,按照网络架构搜索空间中架构层之间的输入输出关系,将节点间通过有向边连接,得到深度为架构层层数的树结构。
67.其中,有向边的起始节点对应网络架构搜索空间中的输入架构,终止节点对应网络架构搜索空间中的输出架构,节点间的有向边数量为网络架构搜索空间的路径数。
68.在步骤s23中,按照深度从小到大的顺序,依次对网络架构搜索空间中各架构层映射的节点所对应的有向边拆分,使每个节点对应得到有向边数量个子节点,直至达到对应单路径结构的叶子节点。
69.本公开实施例中,通过将网络架构搜索空间中的各架构层分解为第一树结构,可以得到匹配网络架构搜索空间的树结构,进而后续可以基于该第一树结构进行搜索空间的搜索。
70.本公开实施例中,基于网络架构搜索空间创建的第一树结构根节点为具有边数为网络架构搜索空间对应层数,每一边对应网络架构搜索空间路径数的超网结构,第一树结构的深度为层数,第一树结构的叶子节点为单路径结构。
71.一示例中,本公开实施例以网络架构搜索空间的架构层(layer)层数为3,路径(path)为2为例对上述构建第一架构树的过程进行示例性说明。其中,以l表示架构层层数,m表示路径。故,本公开实施例中待搜索的网络结构可以理解为是l=3,m=2的搜索空间。将网络架构层中的每一架构层映射为一个节点,假设映射的节点以0、1和2表示。其中,节点0为输入架构,节点1为节点0的输出架构,节点2为节点0和节点1的输出架构。将节点0、节点1
和节点2通过有向边连接,可以得到包含有边和节点的超网络架构。图3示出了本公开一示例性实施方式中示出的第一树结构示意图。参阅图3所示,待搜索的网络架构共有l=3条边,每条边有m=2种候选操作,则架构树的根节点是具有l条边,每条边有包含m条路径的超网架构,其中每条路径表示一个不同的操作。换言之,架构树节点之间可以通过对应候选操作数量或者是路径数的有向边连接。本公开实施例中候选操作的数量为m=2,则节点0、节点1和节点2之间通过2条有向边连接。
72.进一步的,本公开实施例中架构树的深度为l=3。对于深度i处的每个节点,架构树将这些节点所表示的架构的第i条边中的m个路径拆开,并在每个节点处得到m个子节点。架构树对每个节点重复这种分支操作,直到到达叶子节点。参阅图3所示,每个叶子节点代表一个单路径结构,不同的叶子节点对应不同的单路径结构。叶子节点的并集是一个包含了所有候选架构的集合。
73.本公开实施例中,基于网络架构搜索空间创建了第一树结构后,可以基于第一树结构进行目标单路径的选择,实现对搜索空间的架构搜索。
74.本公开实施例中,在进行目标单路径选择时,可以基于搜索精度确定在第一树结构中进行搜索的深度,也可以称为扩展深度,以下称为第一深度。其中,第一深度可以理解为一种超参数,以下用da表示。其中下标a表示架构。
75.本公开实施例中da可以是预先设置的数值。其中,da的取值可以是在1~l之间选择,最小为1,最大为l。可以理解的是,本公开实施例中da的取值越小,搜索复杂度越小,da的取值越大,搜索复杂度越大。
76.一种实施方式中,基于第一树结构,选择目标单路径时,确定第一深度,在第一树结构中,从最小深度的根节点开始扩展至第一深度。对第一深度处的各节点进行打分,并选择分值最高的节点作为根节点。重复执行上述过程,直至确定出分值最高的叶子节点,将分值最高的叶子节点对应的单路径,作为目标单路径。
77.接续上述图3所示示例,从深度为0的根节点开始,扩展它的所有后继直到深度da,扩展后得到最多m
da
个叶子节点。对m
da
个叶子节点定义的子网进行打分,选择得分最高的节点作为下一步的根节点。上述过程在我们的bfs中被定义为一个决策步,决策步被重复执行直到确定单路径架构。da表示在每个决策步要分支多少个网络层。
78.本公开实施例中,上述进行网络架构搜索空间的搜索过程可以理解为是基于广度优先搜索(bfs)的方式来完成架构搜索的过程。其中,bfs需要一个超参数da。da表示在每个决策步要分支多少个网络层。bfs从深度为0的根节点开始,扩展它的所有后继直到深度da,扩展后得到最多m
da
个叶子节点。bfs对这些叶子节点定义的子网进行打分,选择得分最高的节点作为下一步的根节点。
79.图4和图5中分别展示了da为1和da为3时进行网络架构搜索空间分解的过程示意图。参阅图4所示,da为1,对图3中深度为1的节点进行边的拆分以及打分。对节点0和节点1之间的边进行拆分,并对拆分后的边进行打分,选择分值最高的边并保留。继续对节点0和节点2之间的边进行拆分,并对拆分后的边进行打分,选择分值最高的边并保留。对节点1和节点2之间的边进行拆分,并对拆分后的边进行打分,选择分值最高的边并保留。通过上述差分后,形成图4所示的节点0到节点1和节点2的单路径结构,以及节点1到节点2的单路径结构,即最终的目标单路径。
80.参阅图5所示,da为3,则对深度为3的节点进行边的拆分以及打分。其中,本公开实施例中da为3对应着全部的叶子节点,故对全部叶子节点进行打分,选择分值最高的边进行保留,得到如图5所示的目标单路径结构。
81.本公开实施例中,基于第一树结构以及第一深度进行目标单路径选择时,对第一树结构按照第一深度确定要进行分解的层,并在要分解的层上进行边的分解。对分解的层中包括的各节点,分别确定节点所映射的全部单路径对应的子网,将全部单路径对应的子网分值之和,作为节点的分值。即,确定包含了单独边所有子网的分值,保留分值最高的子网对应的边。分值最高的子网对应的边所对应的节点作为下一步的根节点,相当于省略了对除分值最高的节点以外的其他节点的搜索,故能够减少搜索复杂度。接续上述图3和图4所示示例,若采用传统方式,需要进行23=8个架构的搜索,但是采用图4所示的示例,仅需要进行2种架构的搜索,降低了搜索复杂度。
82.本公开又一种实施方式中,可以基于候选操作搜索空间创建对应候选操作的树结构,以下称为第二树结构。其中,第二树结构用于对候选操作搜索空间中的候选操作进行分层分组,以进行候选操作搜索空间的分解。其中,第二树结构也可以理解为是一种二叉操作树。本公开以下实施例中,第二树结构和二叉操作树有时会交替使用,本领域技术人员应理解其含义的一致性。
83.本公开一示例性实施方式中,可以基于候选操作搜索空间中的各个候选操作,映射互斥操作组,以构建二叉操作树。
84.图6是根据一示例性实施例示出的一种基于候选操作搜索空间中的各个候选操作创建第二树结构的流程示意图。参阅图6所示,创建第二树结构的实施过程包括如下步骤。
85.在步骤s31中,将候选操作搜索空间中的全部候选操作映射为根节点。
86.在步骤s32中,将根节点对应的全部候选操作分支为两个互斥操作组。
87.在步骤s33中,将互斥操作组中的候选操作分别映射为根节点,并重复执行将根节点对应的全部候选操作分支为两个互斥操作组的步骤,直至得到单候选操作的叶子节点。
88.本公开实施例中针对候选操作搜索空间中的候选操作可以划分为互斥的操作组,即两个操作组之间无交集。其中,操作组中可以包括一个或多个操作。其中,每个操作组(operation group)对应映射为一个节点,即不同的节点映射不同的操作组。换言之,二叉操作树中的每个节点都是一个操作组,一个操作组由一个或多个不同的操作组成。其中,二叉操作树的根节点代表整个候选操作搜索空间,包含候选操作搜索空间中全部的操作。二叉操作树从根节点开始,将节点分支为代表两个互斥操作组的两个子节点。重复这样的分支直到到达叶子节点。每个叶子节点代表一个单独操作。叶子节点的并集是整个操作搜索空间。
89.图7示出了本公开一示例性实施方式中示出的第二树结构示意图。图7中以候选操作搜索空间中包括5种不同的操作运算为例进行说明。深度0对应的根节点中包括了候选操作搜索空间中全部5种不同的操作运算。深度1对应的节点,通过映射有操作和没有操作两个操作组。深度2对应的节点,针对有操作的操作组中的4种操作运算,继续在卷积操作和拓扑操作之间进行映射为两个操作组。深度3对应的节点,针对卷积操作组中的2种卷积操作分别映射为1*1的卷积操作和3*3的卷积操作。拓扑操作组中的2种拓扑操作分别映射为残差操作和最大池化操作。即最终在深度为3的节点处映射得到对应单操作的叶子节点。深度
为1处对应单操作的叶子节点和深度为3处对应单操作的叶子节点对应的并集为整个候选操作空间中全部的5种不同的操作运算。
90.本公开实施例中,将候选操作搜索空间中的候选操作分解为第二树结构,可以得到匹配候选操作搜索空间的树结构,进而后续基于该第二树结构进行候选操作的选择。
91.其中,一示例中,本公开实施例中候选操作搜索空间可以是基于架构树进行架构搜索空间搜索后的目标单路径对应的候选操作搜索空间。
92.一种实施方式中,基于第二树结构,选择候选操作时,可以在第二树结构中,从最小深度的根节点开始扩展至第二深度。对第二深度处的各节点进行打分,并选择分值最高的节点作为根节点。重复执行上述过程,直至确定出分值最高的叶子节点,将分值最高的叶子节点对应的单操作,作为目标单路径对应的目标操作。
93.本公开实施例中在候选操作搜索空间中进行候选操作搜索的过程,也可以理解为是一种在二叉操作树上进行bfs的过程。其中,在二叉操作树上进行bfs的过程也需要进行扩展深度的定义,即第二深度的定义,以下以do表示。bfs从深度0的根节点开始,将深度do之前的所有后继节点扩展,扩展后最多获得2
do
个叶子节点。这些叶子节点代表当前的候选操作组。bfs对映射这些不同操作组的节点进行评分,并选择得分最高的节点作为下一阶段的根节点。上面的过程被定义为一个搜索阶段,搜索阶段被重复执行直到选择叶子节点,即选择了单个操作。
94.本公开实施例中,对某一深度处映射不同操作组的节点进行打分时,确定该深度对应各节点。针对每个节点,分别确定节点所映射的操作组,对操作组整体进行打分得到分值,作为节点的分值。换言之,第i条边包含多个操作,则该层的输出将是该层所有操作输出的总和。例如,图1中对应深度1处的4个有操作的操作组中,需要将4个不同操作运算组成的操作组作为一个整体进行打分,并将得到操作组对应的分值,作为节点的分值。
95.本公开实施例中,基于第二深度和第二树结构进行目标单操作的搜索时,可以针对某一边的m个操作,划分为两个互斥操作组,以构造二叉操作树,对每个操作组进行打分,选择分值最高的操作组作为当前层保留的操作组,并进行下一阶段的互斥操作组划分,重复执行得到目标单操作。第二深度在可以是预先设置的数值。其中,第二深度的取值可以是在1~m之间选择,最小为1,最大为m。可以理解的是,本公开实施例中第二深度的取值越小,搜索复杂度越小,第二深度的取值越大,搜索复杂度越大。其中,第二深度的典型取值为1。
96.本公开实施例中基于二叉操作树的方式进行目标单操作的选择,可以降低搜索的操作空间。例如,参阅图7所示的树结构,若采用传统方式,需要对5个操作分别进行搜索。若采用本公开实施例提供的bfs方法,将第二深度设置为1,则需要对深度为1处的两个节点进行搜索,降低了搜索复杂度。
97.本公开实施例中,在进行神经网络架构搜索时,可以结合上述涉及的第一树结构和第二树结构进行搜索。即,基于网络架构搜索空间,创建第一树结构,第一树结构的根节点为具有边数为网络架构搜索空间对应层数,每一边对应网络架构搜索空间路径数的超网结构,第一树结构的深度为层数,第一树结构的叶子节点为单路径结构。基于第一树结构,选择目标单路径。将目标单路径对应的候选操作搜索空间,分解为第二树结构,第二树结构的根节点对应候选操作搜索空间中的全部候选操作,同一级别的子节点对应互斥的操作组,第二树结构的叶子节点为单候选操作。基于第二树结构,选择目标单路径对应的目标操
作。
98.本公开实施例提供的神经网络架构搜索方法,可以理解为是一种基于树的网络架构搜索方法,该基于树的网络架构搜索方法可以称为tnas,tnas英文全称为nas with trees。tnas引入一个架构树(architecture tree)和一个二叉操作树(binary operation tree)来分别分解网络架构层和操作搜索空间。通过组合两棵树,迭代地将网络架构搜索空间分支为两个互斥的子空间。tnas基于架构树和二叉操作树执行双层广度优先搜索(bfs),通过调整bfs的扩展深度,tnas显性地控制了需要探索的网络架构数量(简称为探索大小),并且能够以指数方式减少探索大小,是一种新颖、灵活、准确且高效的nas新范式。
99.图8示出了本公开一示例性实施方式中示出的结合第一树结构和第二树结构进行神经网络架构搜索的过程示意图。其中,图8中是以m=5,l=6,do=1,da=2为例进行说明的。基于树的网络架构搜索方法(tnas)。给定一个包含m个候选操作和l条边的搜索空间,tnas构造一个二叉操作树和一个架构树。tnas从m条路径和l条边的超网架构开始,在二叉操作树和架构树上进行双层广度优先搜索。其中,在二叉操作树上进行双层广度优先搜索可以理解为是外循环的操作过程。在外循环,tnas默认以扩展深度do执行bfs。外循环的每个决策阶段将所选层的每个操作组分支为两个子操作组,这两个子操作组定义了内循环的操作搜索空间。外循环重复决策阶段,直到架构的每一条边到达二叉操作树的叶节点,即所有的边都选择单个操作。在架构树上进行双层广度优先搜索的过程可以理解为是内部循环过程。在内部循环中,tnas在架构树上执行扩展深度为da的bfs。内循环的每一个决策步骤选择da个边进行分支,得到至多2
da
个子网,对每个子网打分,然后挑选得分最高的一个。选择的子网将用于替换超网并成为下一步的起点(根节点)。内循环重复上述决策步骤,直到它选择架构树的一个叶子节点,即架构的所有层在当前决策阶段都已经确定了它们的操作组。
100.可以理解的是,应用本公开实施例提供的神经网络架构搜索方法,针对给定的一个图像处理任务以及一系列用于图像处理的深度学习网络架构的候选操作(如卷积核为1的卷积操作,卷积核为3的卷积操作,最大池化操作等),创建树结构,以分解网络架构搜索空间以及候选操作搜索空间;基于网络架构搜索空间以及候选操作搜索空间,并基于创建的树结构,进行神经网络架构的搜索,得到进行该图像处理任务的最佳网络架构。
101.基于相同的构思,本公开实施例还提供一种神经网络架构搜索装置。
102.可以理解的是,本公开实施例提供的神经网络架构搜索装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本公开实施例中所公开的各示例的单元及算法步骤,本公开实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本公开实施例的技术方案的范围。
103.图9是根据一示例性实施例示出的一种神经网络架构搜索装置框图。参照图9,该装置100包括确定单元101和搜索单元102。
104.确定单元101,用于确定图像处理任务,并确定对图像处理任务进行图像处理的网络架构搜索空间以及候选操作搜索空间。搜索单元102,用于基于网络架构搜索空间以及候选操作搜索空间,创建树结构,并基于树结构,分解网络架构搜索空间以及候选操作搜索空
间,得到图像处理任务的神经网络架构。
105.一种实施方式中,搜索单元102采用如下方式基于网络架构搜索空间以及候选操作搜索空间,创建树结构,并基于树结构,分解网络架构搜索空间以及候选操作搜索空间,得到图像处理任务的神经网络架构:
106.基于网络架构搜索空间,创建第一树结构,第一树结构的根节点为具有边数为网络架构搜索空间对应层数,每一边对应网络架构搜索空间路径数的超网结构,第一树结构的深度为层数,第一树结构的叶子节点为单路径结构。基于第一树结构,选择目标单路径。将目标单路径对应的候选操作搜索空间,分解为第二树结构,第二树结构的根节点对应候选操作搜索空间中的全部候选操作,同一级别的子节点对应互斥的操作组,第二树结构的叶子节点为单候选操作。基于第二树结构,选择目标单路径对应的目标操作。
107.一种实施方式中,搜索单元102采用如下方式基于网络架构搜索空间,创建第一树结构:
108.将网络架构搜索空间中的每一架构层映射为一个节点,并按照网络架构搜索空间中架构层之间的输入输出关系,将节点间通过有向边连接,得到深度为层数的树结构。其中,有向边的起始节点对应网络架构搜索空间中的输入架构,终止节点对应网络架构搜索空间中的输出架构,节点间的有向边数量为网络架构搜索空间的路径数。按照深度从小到大的顺序,依次对网络架构搜索空间中各架构层映射的节点所对应的有向边拆分,使每个节点对应得到有向边数量个子节点,直至达到对应单路径结构的叶子节点。
109.一种实施方式中,搜索单元102采用如下方式基于第一树结构,选择目标单路径:
110.在第一树结构中,从最小深度的根节点开始扩展至第一深度。对第一深度处的各节点进行打分,并选择分值最高的节点作为根节点。重复执行上述过程,直至确定出分值最高的叶子节点,将分值最高的叶子节点对应的单路径,作为目标单路径。
111.一种实施方式中,搜索单元102采用如下方式将目标单路径对应的候选操作搜索空间,分解为第二树结构:
112.将目标单路径对应的候选操作搜索空间中的全部候选操作映射为根节点。将根节点对应的全部候选操作分支为两个互斥操作组。将互斥操作组中的候选操作分别映射为根节点,并重复执行将根节点对应的全部候选操作分支为两个互斥操作组的步骤,直至得到单候选操作的叶子节点。
113.一种实施方式中,搜索单元102采用如下方式基于第二树结构,选择目标单路径对应的目标操作:
114.在第二树结构中,从最小深度的根节点开始扩展至第二深度。对第二深度处的各节点进行打分,并选择分值最高的节点作为根节点。重复执行上述过程,直至确定出分值最高的叶子节点,将分值最高的叶子节点对应的单操作,作为目标单路径对应的目标操作。
115.一种实施方式中,搜索单元102采用如下方式对目标深度处的各节点进行打分,目标深度包括第一深度或第二深度:
116.若目标深度为第一深度,则对目标深度处包括的各节点,分别确定节点所映射的全部单路径对应的子网,将全部单路径对应的子网分值之和,作为节点的分值。若目标深度为第二深度,则对目标深度处包括的各节点,分别确定节点所映射的操作组,对操作组整体进行打分得到的分值,作为节点的分值。
117.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
118.图10是根据一示例性实施例示出的一种用于神经网络架构搜索的电子设备200框图。
119.如图10所示,本公开的一个实施方式提供了一种电子设备200。其中,该电子设备200包括存储器201、处理器202、输入/输出(input/output,i/o)接口203。其中,存储器201,用于存储指令。处理器202,用于调用存储器201存储的指令执行本公开实施例的语义分割模型训练方法。其中,处理器202分别与存储器201、i/o接口203连接,例如可通过总线系统和/或其他形式的连接机构(未示出)进行连接。存储器201可用于存储程序和数据,包括本公开实施例中涉及的语义分割模型训练方法的程序,处理器202通过运行存储在存储器201的程序从而执行电子设备200的各种功能应用以及数据处理。
120.本公开实施例中处理器202可以采用数字信号处理器(digital signal processing,dsp)、现场可编程门阵列(field programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现,所述处理器202可以是中央处理单元(central processing unit,cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元中的一种或几种的组合。
121.本公开实施例中的存储器201可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(random access memory,ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(read only memory,rom)、快闪存储器(flash memory)、硬盘(hard disk drive,hdd)或固态硬盘(solid state drive,ssd)等。
122.本公开实施例中,i/o接口203可用于接收输入的指令(例如数字或字符信息,以及产生与电子设备200的用户设置以及功能控制有关的键信号输入等),也可向外部输出各种信息(例如,图像或声音等)。本公开实施例中i/o接口203可包括物理键盘、功能按键(比如音量控制按键、开关按键等)、鼠标、操作杆、轨迹球、麦克风、扬声器、和触控面板等中的一个或多个。
123.在一些实施方式中,本公开提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在由处理器执行时,执行上文所述的任何方法。
124.在一些实施方式中,本公开提供了一种计算机程序产品,该计算机程序产品包括计算机程序,计算机程序被处理器执行时,执行上文所述的任何方法。
125.尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。
126.本公开的方法和装置能够利用标准编程技术来完成,利用基于规则的逻辑或者其他逻辑来实现各种方法步骤。还应当注意的是,此处以及权利要求书中使用的词语“装置”和“模块”意在包括使用一行或者多行软件代码的实现和/或硬件实现和/或用于接收输入的设备。
127.此处描述的任何步骤、操作或程序可以使用单独的或与其他设备组合的一个或多个硬件或软件模块来执行或实现。在一个实施方式中,软件模块使用包括包含计算机程序代码的计算机可读介质的计算机程序产品实现,其能够由计算机处理器执行用于执行任何或全部的所描述的步骤、操作或程序。
128.出于示例和描述的目的,已经给出了本公开实施的前述说明。前述说明并非是穷举性的也并非要将本公开限制到所公开的确切形式,根据上述教导还可能存在各种变形和修改,或者是可能从本公开的实践中得到各种变形和修改。选择和描述这些实施例是为了说明本公开的原理及其实际应用,以使得本领域的技术人员能够以适合于构思的特定用途来以各种实施方式和各种修改而利用本公开。
129.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
130.可以理解的是,本公开中“多个”是指两个或两个以上,其它量词与之类似。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
131.进一步可以理解的是,术语“第一”、“第二”等用于描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开,并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。
132.进一步可以理解的是,除非有特殊说明,“连接”包括两者之间不存在其他构件的直接连接,也包括两者之间存在其他元件的间接连接。
133.进一步可以理解的是,本公开实施例中尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。
134.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利范围指出。
135.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利范围来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献