一种图像神经网络结构的优化方法及装置与流程

文档序号:25092368发布日期:2021-05-18 20:46阅读:87来源:国知局
一种图像神经网络结构的优化方法及装置与流程

1.本申请涉及人工智能技术领域,尤其涉及一种图像神经网络结构的优化方法及装置。


背景技术:

2.在人工智能技术领域中,深度学习技术是一个重要的分支,而在深度学习技术的发展过程中,图像神经网络结构设计一直起着至关重要的作用。
3.近年来,领域专家设计的图像神经网络结构在各项任务上都取得了巨大的成功。但随着实际业务需求的日益多样化,现有的图像神经网络结构越来越难以满足实际业务需求,因此出现了神经网络结构搜索(neural architecture search,nas),神经网络结构搜索的目的就是自动化地设计图像神经网络结构,节约人力成本和时间成本。然而,现有的神经网络结构搜索方案都需要用户对神经网络结构搜索有一些了解,且需用户手动设计候选神经网络结构集(即搜索空间),自动化程度比较低、且使用门槛比较高。


技术实现要素:

4.本申请实施例提供一种图像神经网络结构的优化方法及装置,用以解决现有技术中神经网络结构搜索方案的自动化程度比较低、且使用门槛比较高,不利于快速得到图像神经网络结构的问题。
5.第一方面,本申请实施例提供一种图像神经网络结构的优化方法,包括:
6.接收图像神经网络结构优化请求,所述图像神经网络结构优化请求中包含有第一图像神经网络结构的结构描述信息;
7.根据所述结构描述信息,生成第一图像神经网络结构;
8.将所述第一图像神经网络结构与各神经网络结构模板进行比对,以确定所述第一图像神经网络结构的模板使用信息,所述模板使用信息包括所述第一图像神经网络结构使用的目标神经网络结构模板、以及所述第一图像神经网络结构中与所述目标神经网络结构模板对应的目标子神经网络结构;
9.获取每个目标神经网络结构模板对应的多种预设图像神经网络结构;
10.使用每个目标神经网络结构模板对应的多种预设图像神经网络结构,分别对所述第一图像神经网络结构中与所述目标神经网络结构模板对应的目标子神经网络结构进行替换,得到候选神经网络结构集;
11.在所述候选神经网络结构集中进行神经网络结构搜索,将搜索到的神经网络结构确定为所述第一图像神经网络结构优化后的第二图像神经网络结构。
12.在一种可能的实施方式中,将所述第一图像神经网络结构与各神经网络结构模板进行比对,以确定所述第一图像神经网络结构的模板使用信息,包括:
13.从所述第一图像神经网络结构中筛选与每个神经网络结构模板的神经网络结构全部相同或部分相同的子神经网络结构;
14.若筛选出子神经网络结构,则将所述神经网络结构模板确定为所述第一图像神经网络结构使用的目标神经网络结构模板,将筛选出的子神经网络结构确定为所述第一图像神经网络结构中与所述目标神经网络结构模板对应的目标子神经网络结构。
15.在一种可能的实施方式中,从所述第一图像神经网络结构中筛选与每个神经网络结构模板的神经网络结构部分相同的子神经网络结构,包括:
16.从所述第一图像神经网络结构中筛选与每个神经网络结构模板的指定神经网络结构相同的子神经网络结构,所述指定神经网络结构用于表征所述神经网络结构模板的结构特征。
17.在一种可能的实施方式中,使用每个目标神经网络结构模板对应的多种预设图像神经网络结构,分别对所述第一图像神经网络结构中与所述目标神经网络结构模板对应的目标子神经网络结构进行替换,得到候选神经网络结构集,包括:
18.将所述第一图像神经网络结构作为参考神经网络结构,使用对应目标神经网络结构模板所对应的各预设图像神经网络结构,分别对该参考神经网络结构中的第i个目标子神经网络结构进行替换,得到中间神经网络结构集,i为从1开始的整数;
19.若确定i小于目标子神经网络结构的总数,则将i更新为i+1,将所述中间神经网络结构集中的每个神经网络结构作为新的参考神经网络结构,执行使用对应目标神经网络结构模板所对应的各预设图像神经网络结构,分别对该参考神经网络结构中的第i个目标子神经网络结构进行替换,得到中间神经网络结构集的步骤;
20.若确定i等于目标子神经网络结构的总数,则将所述中间神经网络结构集确定为候选神经网络结构集。
21.在一种可能的实施方式中,在根据所述结构描述信息,生成第一图像神经网络结构之前,还包括:
22.若确定所述结构描述信息不是采用指定数据格式表示的,则将所述结构描述信息转换为采用所述指定数据格式表示的结构描述信息。
23.第二方面,本申请实施例提供一种图像神经网络结构的优化装置,包括:
24.接收模块,用于接收图像神经网络结构优化请求,所述图像神经网络结构优化请求中包含有第一图像神经网络结构的结构描述信息;
25.生成模块,用于根据所述结构描述信息,生成第一图像神经网络结构;
26.确定模块,用于将所述第一图像神经网络结构与各神经网络结构模板进行比对,以确定所述第一图像神经网络结构的模板使用信息,所述模板使用信息包括所述第一图像神经网络结构使用的目标神经网络结构模板、以及所述第一图像神经网络结构中与所述目标神经网络结构模板对应的目标子神经网络结构;
27.获取模块,用于获取每个目标神经网络结构模板对应的多种预设图像神经网络结构;
28.替换模块,用于使用每个目标神经网络结构模板对应的多种预设图像神经网络结构,分别对所述第一图像神经网络结构中与所述目标神经网络结构模板对应的目标子神经网络结构进行替换,得到候选神经网络结构集;
29.搜索模块,用于在所述候选神经网络结构集中进行神经网络结构搜索,将搜索到的神经网络结构确定为所述第一图像神经网络结构优化后的第二图像神经网络结构。
30.在一种可能的实施方式中,所述确定模块具体用于:
31.从所述第一图像神经网络结构中筛选与每个神经网络结构模板的神经网络结构全部相同或部分相同的子神经网络结构;
32.若筛选出子神经网络结构,则将所述神经网络结构模板确定为所述第一图像神经网络结构使用的目标神经网络结构模板,将筛选出的子神经网络结构确定为所述第一图像神经网络结构中与所述目标神经网络结构模板对应的目标子神经网络结构。
33.在一种可能的实施方式中,所述确定模块具体用于:
34.从所述第一图像神经网络结构中筛选与每个神经网络结构模板的指定神经网络结构相同的子神经网络结构,所述指定神经网络结构用于表征所述神经网络结构模板的结构特征。
35.在一种可能的实施方式中,所述替换模块具体用于:
36.将所述第一图像神经网络结构作为参考神经网络结构,使用与第i个第一图像神经网络结构对应的各预设图像神经网络结构,分别对该参考神经网络结构中的第i个第一图像神经网络结构进行替换,得到中间神经网络结构集,i为从1开始的整数;
37.若确定i小于目标子神经网络结构的总数,则将i更新为i+1,将所述中间神经网络结构集中的每个神经网络结构作为参考神经网络结构,执行使用与第i个第一图像神经网络结构对应的各预设图像神经网络结构,分别对该参考神经网络结构中的第i个第一图像神经网络结构进行替换,得到中间神经网络结构集的步骤;
38.若确定i等于目标子神经网络结构的总数,则将所述中间神经网络结构集确定为候选神经网络结构集。
39.在一种可能的实施方式中,还包括转换模块,用于:
40.在根据所述结构描述信息,生成第一图像神经网络结构之前,若确定所述结构描述信息不是采用指定数据格式表示的,则将所述结构描述信息转换为采用所述指定数据格式表示的结构描述信息。
41.第三方面,本申请实施例提供一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
42.存储器存储有可被至少一个处理器执行的指令,该指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述图像神经网络结构的优化方法。
43.第四方面,本申请实施例提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,所述电子设备能够执行上述图像神经网络结构的优化方法。
44.本申请实施例中,接收图像神经网络结构优化请求,根据图像神经网络结构优化请求中包含的第一图像神经网络结构的结构描述信息,生成第一图像神经网络结构,将第一图像神经网络结构与各神经网络结构模板进行比对,以确定第一图像神经网络结构使用的目标神经网络结构模板、以及第一图像神经网络结构中与目标神经网络结构模板对应的目标子神经网络结构,获取每个目标神经网络结构模板对应的多种预设图像神经网络结构,使用每个目标神经网络结构模板对应的多种预设图像神经网络结构,分别对第一图像神经网络结构中与目标神经网络结构模板对应的目标子神经网络结构进行替换,得到候选神经网络结构集,进而在候选神经网络结构集中进行神经网络结构搜索,将搜索到的神经网络结构确定为第一图像神经网络结构优化后的第二图像神经网络结构。这样,自动生成
候选神经网络结构集,用户不必再手动设计候选神经网络结构集,也不必了解比较多的神经网络结构搜索知识就可快速对第一图像神经网络结构进行优化得到第二图像神经网络结构,提高神经网络结构搜索的自动化程度,增加使用便利。
附图说明
45.此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
46.图1为本申请实施例提供的一种图像神经网络结构的优化方法的流程图;
47.图2为本申请实施例提供的一种生成候选神经网络结构集的方法流程图;
48.图3为本申请实施例提供的又一种图像神经网络结构的优化方法的流程图;
49.图4为本申请实施例提供的一种第一图像神经网络结构的结构描述信息的表示方式的示意图;
50.图5为本申请实施例提供的一种第一图像神经网络结构的示意图;
51.图6为本申请实施例提供的一种神经网络结构模板bottleneck的示意图;
52.图7为本申请实施例提供的一种神经网络结构模板basicblock的示意图;
53.图8为本申请实施例提供的一种神经网络结构模板doubleconv的示意图;
54.图9为本申请实施例提供的一种神经网络结构模板singleconv的示意图;
55.图10为本申请实施例提供的一种bottleneck对应的预设图像神经网络结构的示意图;
56.图11为本申请实施例提供的一种basicblock对应的预设图像神经网络结构的示意图;
57.图12为本申请实施例提供的一种doubleconv对应的预设图像神经网络结构的示意图;
58.图13为本申请实施例提供的一种singleconv对应的预设图像神经网络结构的示意图;
59.图14为本申请实施例提供的一种第一图像神经网络结构的模板使用信息的示意图;
60.图15示出了一种对第一图像神经网络结构中与singleconv对应的目标子神经网络结构进行替换后的示意图;
61.图16示出了又一种对第一图像神经网络结构中与singleconv对应的目标子神经网络结构进行替换后的示意图;
62.图17示出了一种对第一图像神经网络结构中的所有目标子神经网络结构进行替换后的示意图;
63.图18示出了又一种对第一图像神经网络结构中的所有目标子神经网络结构进行替换后的示意图;
64.图19示出了又一种对第一图像神经网络结构中的所有目标子神经网络结构进行替换后的示意图;
65.图20示出了又一种对第一图像神经网络结构中的所有目标子神经网络结构进行替换后的示意图;
66.图21为本申请实施例提供的一种图像神经网络结构的优化装置的结构示意图;
67.图22为本申请实施例提供的一种用于实现图像神经网络结构的优化方法的电子设备的硬件结构示意图。
具体实施方式
68.为了解决现有技术中神经网络结构搜索方案的自动化程度比较低、且使用门槛比较高,不利于快速得到图像神经网络结构的问题,本申请实施例提供了一种图像神经网络结构的优化方法及装置。
69.以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本申请,并不用于限定本申请,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
70.神经网络结构搜索(neural architecture search,nas),指在不确定神经网络的长度和结构的情况下,使用一个循环神经网络作为控制器来生成子神经网络,再对子神经网络进行训练和评估,得到其网络性能(如准确率),将子神经网络的网络性能作为控制器的回馈信号,以对控制器进行更新,使控制器下一次生成一个准确率更高的神经网络。这样,控制器将通过不断学习来提升神经网络的搜索效果。
71.图1为本申请实施例提供的一种图像神经网络结构的优化方法的流程图,包括以下步骤:
72.s101:接收图像神经网络结构优化请求,其中,图像神经网络结构优化请求中包含有第一图像神经网络结构的结构描述信息。
73.其中,第一图像神经网络结构的结构描述信息可以采用(javascript object notation,json)数据格式表示。
74.s102:根据结构描述信息,生成第一图像神经网络结构。
75.s103:将第一图像神经网络结构与各神经网络结构模板进行比对,以确定第一图像神经网络结构的模板使用信息,其中,模板使用信息包括第一图像神经网络结构使用的目标神经网络结构模板、以及第一图像神经网络结构中与目标神经网络结构模板对应的目标子神经网络结构。
76.其中,各神经网络结构模板可由技术人员根据经验或实验数据预先确定。
77.具体实施时,可以从第一图像神经网络结构中筛选与每个神经网络结构模板的神经网络结构全部相同或部分相同的子神经网络结构,若筛选出子神经网络结构,则说明第一图像神经网络结构使用该神经网络结构模板,进而将该神经网络结构模板确定为目标神经网络结构模板,并将筛选出的子神经网络结构确定为第一图像神经网络结构中与目标神经网络结构模板对应的目标子神经网络结构;若未筛选出子神经网络结构,则说明第一图像神经网络结构未使用该神经网络结构模板。
78.上述过程中,当从第一图像神经网络结构中筛选与每个神经网络结构模板的神经网络结构部分相同的子神经网络结构时,可以从第一图像神经网络结构中筛选与该神经网络结构模板的指定神经网络结构相同的子神经网络结构,其中,指定神经网络结构是神经网络结构模板的部分神经网络结构、且用于表征神经网络结构模板的结构特征。也就是说,指定神经网络结构是该神经网络结构模板中的重要神经网络结构,只要第一图像神经网络
结构中存在与该神经网络结构模板中重要神经网络结构相同的子神经网络结构,就认为第一图像神经网络结构使用了该神经网络结构模板。
79.另外,第一图像神经网络结构可能使用一个、两个、三个或者更多个神经网络结构模板,并且,第一图像神经网络结构对同一个神经网络结构模板可能使用一次、两次、三次或者更多次。也就是说,目标神经网络结构模板可能有不止一个,并且,第一图像神经网络结构中与一个目标神经网络结构模板对应的目标子神经网络结构也可能不止一个。
80.s104:获取每个目标神经网络结构模板对应的多种预设图像神经网络结构。
81.具体实施时,每个目标神经网络结构模板均可对应多种预设图像神经网络结构,这多种预设图像神经网络结构可以是对目标神经网络结构模板进行变形得到的,并且,这多种预设图像神经网络结构的结构特征相同。
82.另外,这多种预设图像神经网络结构中还可以包括一个与目标神经网络结构模板的神经网络结构完全相同的神经网络结构,这样,可尽可能地丰富后续得到的候选神经网络结构集。
83.s105:使用每个目标神经网络结构模板对应的多种预设图像神经网络结构,分别对第一图像神经网络结构中与目标神经网络结构模板对应的目标子神经网络结构进行替换,得到候选神经网络结构集。
84.具体实施时,可以根据图2所示的流程生成候选神经网络结构集,该流程包括以下步骤:
85.s201a:将第一图像神经网络结构作为参考神经网络结构。
86.需要说明的是,对于第一图像神经网络结构而言,无论如何对第一图像神经网络结构中的目标子神经网络结构进行替换处理,第一图像神经网络结构中目标子神经网络结构的总数是一定的。
87.s202a:使用对应目标神经网络结构模板所对应的各预设图像神经网络结构,分别对该参考神经网络结构中的第i个目标子神经网络结构进行替换,得到中间神经网络结构集,i为从1开始的整数。
88.其中,对应目标神经网络结构模板是指与该参考神经网络结构中第i个目标子神经网络结构对应的目标神经网络结构模板。
89.s203a:判断i是否小于目标子神经网络结构的总数,若是,则进入s204a;若否,则进入s205a。
90.由于第一图像神经网络结构可能对同一个目标神经网络结构模板不止使用一次,因此,第一图像神经网络结构使用的目标神经网络结构模板的总数不一定等于第一图像神经网络结构中目标子神经网络结构的总数。
91.s204a:将i更新为i+1,将中间神经网络结构集中的每个神经网络结构作为参考神经网络结构,返回s202a。
92.s205a:将中间神经网络结构集确定为候选神经网络结构集。
93.s106:在候选神经网络结构集中进行神经网络结构搜索,将搜索到的神经网络结构确定为第一图像神经网络结构优化后的第二图像神经网络结构。
94.具体实施时,可以采用随机搜索、贝叶斯优化、强化学习等算法在候选神经网络结构集中进行神经网络结构搜索,进而将搜索到的神经网络结构确定为第一图像神经网络结
构优化后的第二图像神经网络结构。后续,可利用第二图像神经网络结构执行图像处理任务(如人脸识别、物体检测等)。
95.实际应用中,不同用户在构建第一图像神经网络结构时使用的深度学习框架可能不同,比如有的用户使用tensorflow构建第一图像神经网络结构、有的用户使用pytorch构建第一图像神经网络结构、有的用户使用mxnet构建第一图像神经网络结构。而使用不同深度学习框架构建第一图像神经网络结构后所得到的结构描述信息的表示方式是不同的。
96.具体实施时,可以不限制用户在构建第一图像神经网络结构时使用的深度学习框架,即在神经网络结构优化请求中携带的第一图像神经网络结构的结构描述信息可以是用户使用任一种深度学习框架生成的,之后,将神经网络结构优化请求中携带的结构描述信息转换成统一的表示方式,后续基于统一表示方式的结构描述信息执行后续操作,以尽可能地降低神经网络结构搜索的技术门槛。
97.图3为本申请实施例提供的又一种图像神经网络结构的优化方法的流程图,包括以下步骤:
98.s301:接收图像神经网络结构优化请求,其中,图像神经网络结构优化请求中包含有第一图像神经网络结构的结构描述信息。
99.具体实施时,第一图像神经网络结构的结构描述信息可以是利用tensorflow、pytorch、mxnet等深度学习框架定义的,也可以利用(javascript object notation,json)数据格式定义的。
100.s302:若确定结构描述信息不是采用指定数据格式表示的,则将结构描述信息转换为采用指定数据格式表示的结构描述信息。
101.其中,指定数据格式可以是json数据格式。
102.s303:根据采用指定数据格式表示的结构描述信息,生成第一图像神经网络结构。
103.s304:将第一图像神经网络结构与各神经网络结构模板进行比对,以确定第一图像神经网络结构的模板使用信息,其中,模板使用信息包括第一图像神经网络结构使用的目标神经网络结构模板、以及第一图像神经网络结构中与目标神经网络结构模板对应的目标子神经网络结构。
104.s305:获取每个目标神经网络结构模板对应的多种预设图像神经网络结构。
105.s306:使用每个目标神经网络结构模板对应的多种预设图像神经网络结构,分别对第一图像神经网络结构中与目标神经网络结构模板对应的目标子神经网络结构进行替换,得到候选神经网络结构集。
106.该步骤的实施可以参见s105的实施,在此不再赘述。
107.s307:在候选神经网络结构集中进行神经网络结构搜索,将搜索到的神经网络结构确定为第一图像神经网络结构优化后的第二图像神经网络结构。
108.以物体检测为例,在物体检测任务中,图像神经网络结构的设计对最终的物体检测性能影响很大。以往的图像神经网络结构设计方式中最为直接的是更换一个现有的最先进的图像神经网络结构(由领域专家手动设计),但是已有的图像神经网络结构往往无法实现精度和速度的最优平衡。因此,另一种方式是利用神经网络结构搜索来获取一个精度和速度达到最优平衡的图像神经网络结构,但是现有的神经网络结构搜索方案需要用户了解比较多的神经网络结构搜索知识,手动设计搜索空间,耗时耗力。
109.为了解决上述问题,本申请实施例提供一种可以自动生成搜索空间的方案。首先获取待优化的第一图像神经网络结构(由用户手动设计)的结构描述信息,根据结构描述信息生成第一图像神经网络结构,然后在各预设神经网络结构模板中匹配并标记第一图像神经网络结构使用的目标神经网络结构模板、并确定第一图像神经网络结构中与目标神经网络结构模板对应的目标子神经网络结构,然后,将第一图像神经网络结构中的目标子神经网络结构分别替换成目标神经网络结构模板对应的多种预设图像神经网络结构,以自动生成搜索空间,最后在搜索空间中进行神经网络结构搜索即可得到第一图像神经网络结构优化后的第二图像神经网络结构。
110.这样降低了神经网络结构搜索的技术门槛,使得神经网络结构搜索的各个环节都实现了自动化,用户也不必了解比较多的神经网络结构搜索知识,可以大幅节省时间成本和人力成本。
111.下面结合具体实施例对本申请技术方案进行介绍。
112.具体实施时,在接收到图像神经网络结构优化请求后,可以从神经网络结构优化请求中获取第一图像神经网络结构的结构描述信息,若确定第一图像神经网络结构的结构描述信息不是采用json数据格式表示的,则可将第一图像神经网络结构的结构描述信息转换为采用json数据格式表示的结构描述信息。
113.图4是本申请实施例提供的第一图像神经网络结构的结构描述信息的表达方式示意图,其中,左上侧的结构描述信息和左下侧的结构描述信息分别是采用pytorch和mxnet表达的,可以看出这两种深度学习框架所表达的第一图像神经网络结构的结构描述信息是不同的,而将这两种不同表达形式的结构描述信息转换json数据格式之后,第一图像神经网络结构的结构描述信息均是右侧的表达形式。
114.这样,将不同表达形式的第一图像神经网络结构的结构描述信息转换成统一的表达形式,可使用户自由选择自己构建第一图像神经网络结构的深度学习框架,可进一步降低神经网络结构搜索的技术门槛,提升用户体验。
115.之后,可根据采用json数据格式表示的第一图像神经网络结构的结构描述信息,生成第一图像神经网络结构。
116.假设第一图像神经网络结构如图5所示,其中,conv3
×
3表示卷积核大小为3
×
3的卷积层,bn表示批归一化(batch normalization,bn)层,relu表示采用relu激活函数的激活层,pool表示池化层,conv1
×
1表示卷积核大小为1
×
1的卷积层,add表示加和操作。并假设有4种神经网络结构模板,其中,神经网络结构模板1可简称为bottleneck,bottleneck的神经网络结构如图6所示,神经网络结构模板2可简称为basicblock,basicblock的神经网络结构如图7所示,神经网络结构模板3可简称为doubleconv,doubleconv的神经网络结构如图8所示,神经网络结构模板4可简称为singleconv,singleconv的神经网络结构如图9所示。
117.进一步地,假设bottleneck对应的预设图像神经网络结构如图10所示,其中,r1是预先设定的常数,改变r1的取值即可得到bottleneck对应的不同预设图像神经网络结构,a表示输入通道的通道数。假设basicblock对应的预设图像神经网络结构如图11所示,其中,r2是预先设定的常数,改变r2的取值即可得到basicblock对应的不同预设图像神经网络结构,b表示输入通道的通道数。假设doubleconv对应的预设图像神经网络结构如图12所示,
其中,r3是预先设定的常数,改变r3的取值即可得到doubleconv对应的不同预设图像神经网络结构,c表示输入通道的通道数。假设singleconv对应的预设图像神经网络结构如图13所示,其中,r4是预先设定的常数,改变r4的取值即可得到singleconv对应的不同预设图像神经网络结构,d表示输入通道的通道数。
118.之后,可从第一图像神经网络结构中筛选与每个神经网络结构模板的神经网络结构全部相同的子神经网络结构,若筛选出子神经网络结构,则说明第一图像神经网络结构使用该神经网络结构模板,进而可将该神经网络结构模板确定为目标神经网络结构模板,将筛选出的子神经网络结构确定为第一图像神经网络结构中与目标神经网络结构模板对应的目标子神经网络结构。
119.图14为本申请实施例提供的第一图像神经网络结构的模板使用信息的示意图,其中,第一图像神经网络结构使用的目标神经网络结构模板为singleconv和basicblock,第一图像神经网络结构中与singleconv对应的目标子神经网络结构为上方虚线框中的子神经网络结构,第一图像神经网络结构中与basicblock对应的目标子神经网络结构为下方虚线框中的子神经网络结构。
120.进一步地,获取singleconv对应的预设图像神经网络结构,并获取basicblock对应的预设图像神经网络结构。
121.假设singleconv对应的预设图像神经网络结构有2种,比如图13中r4的取值分别是2和3,并假设basicblock对应的预设图像神经网络结构也是2种,比如图11中r2的取值分别是2和3。
122.之后,可利用singleconv对应的2种预设图像神经网络结构分别替换第一图像神经网络结构中与singleconv对应的目标子神经网络结构,图15示出了一种对第一图像神经网络结构中与singleconv对应的目标子神经网络结构进行替换后的示意图,其中,a表示输入通道的通道数,图16示出了又一种对第一图像神经网络结构中与singleconv对应的目标子神经网络结构进行替换后的示意图。
123.进一步地,使用basicblock对应的两种预设图像神经网络结构,分别对图15中与bottleneck对应的目标子神经网络结构进行替换,图17示出了一种对第一图像神经网络结构中的所有目标子神经网络结构进行替换后的示意图,其中,b表示输入通道的通道数,图18示出了又一种对第一图像神经网络结构中的所有目标子神经网络结构进行替换后的示意图。并使用basicblock对应的两种预设图像神经网络结构,分别对图16中与bottleneck对应的目标子神经网络结构进行替换,图19示出了又一种对第一图像神经网络结构中的所有目标子神经网络结构进行替换后的示意图,图20示出了又一种对第一图像神经网络结构中的所有目标子神经网络结构进行替换后的示意图。
124.至此,图17

图20所示的神经网络结构即是候选神经网络结构集中的候选神经网络结构。
125.需要说明的是,实际应用中每个神经网络结构模板会对应比较多的预设图像神经网络结构,为了简化,此处仅以每个神经网络结构模板对应2个预设图像神经网络结构为例进行说明。
126.进一步地,可采用如强化学习等算法在候选神经网络结构集中进行神经网络结构搜索,将搜索到的神经网络结构确定为第一图像神经网络结构优化后的第二图像神经网络
结构。
127.此外,上述过程中,还可以从第一图像神经网络结构中筛选与每个神经网络结构模板的神经网络结构部分相同的子神经网络结构,若筛选出子神经网络结构,则说明第一图像神经网络结构使用该神经网络结构模板,进而可将该神经网络结构模板确定为目标神经网络结构模板,将筛选出的子神经网络结构确定为第一图像神经网络结构中与目标神经网络结构模板对应的目标子神经网络结构。
128.具体实施时,可以从第一图像神经网络结构中筛选与每个神经网络结构模板的指定神经网络结构相同的子神经网络结构,其中,指定神经网络结构是神经网络结构模板的部分神经网络结构、且指定神经网络结构用于表征神经网络结构模板的结构特征。也就是说,指定神经网络结构是该神经网络结构模板中的重要神经网络结构,只要第一图像神经网络结构中存在与该神经网络结构模板中重要神经网络结构相同的子神经网络结构,就认为第一图像神经网络结构使用该神经网络结构模板。
129.以图6中的bottleneck为例,指定神经网络结构可以为从上到下的conv1
×
1、conv3
×
3、conv1
×
1、add结构;以图7中的basicblock为例,指定神经网络结构可以为从上到下的conv3
×
3、conv3
×
3、add结构;以图8中的doubleconv为例,指定神经网络结构可以为从上到下的conv3
×
3、conv3
×
3结构;以图9中的singleconv为例,指定神经网络结构可以为conv3
×
3的结构。
130.具体实施时,在确定出第一图像神经网络结构使用的目标神经网络结构模板、以及第一图像神经网络结构中与目标神经网络结构模板对应的目标子神经网络结构之后,后续的处理过程与上述处理过程类似,在此不再赘述。
131.本申请实施例提供的图像神经网络结构的优化方法可以自动生成搜索空间(即候选神经网络结构集),使得神经网络结构设计的各个环节都实现了自动化,这在实际业务中可以大幅减少人工的参与,并可降低神经网络结构搜索的技术门槛。另外,本申请实施例提供的图像神经网络结构的优化方法可以与现有的各种神经网络结构搜索算法相结合,灵活度也比较好。
132.当本申请实施例中提供的方法以软件或硬件或软硬件结合实现的时候,电子设备中可以包括多个功能模块,每个功能模块可以包括软件、硬件或其结合。
133.图21为本申请实施例提供的一种图像神经网络结构的优化装置的结构示意图,包括接收模块2101、生成模块2102、确定模块2103、获取模块2104、替换模块2105、搜索模块2106。
134.接收模块2101,用于接收图像神经网络结构优化请求,所述图像神经网络结构优化请求中包含有第一图像神经网络结构的结构描述信息;
135.生成模块2102,用于根据所述结构描述信息,生成第一图像神经网络结构;
136.确定模块2103,用于将所述第一图像神经网络结构与各神经网络结构模板进行比对,以确定所述第一图像神经网络结构的模板使用信息,所述模板使用信息包括所述第一图像神经网络结构使用的目标神经网络结构模板、以及所述第一图像神经网络结构中与所述目标神经网络结构模板对应的目标子神经网络结构;
137.获取模块2104,用于获取每个目标神经网络结构模板对应的多种预设图像神经网络结构;
138.替换模块2105,用于使用每个目标神经网络结构模板对应的多种预设图像神经网络结构,分别对所述第一图像神经网络结构中与所述目标神经网络结构模板对应的目标子神经网络结构进行替换,得到候选神经网络结构集;
139.搜索模块2106,用于在所述候选神经网络结构集中进行神经网络结构搜索,将搜索到的神经网络结构确定为所述第一图像神经网络结构优化后的第二图像神经网络结构。
140.在一种可能的实施方式中,所述确定模块2103具体用于:
141.从所述第一图像神经网络结构中筛选与每个神经网络结构模板的神经网络结构全部相同或部分相同的子神经网络结构;
142.若筛选出子神经网络结构,则将所述神经网络结构模板确定为所述第一图像神经网络结构使用的目标神经网络结构模板,将筛选出的子神经网络结构确定为所述第一图像神经网络结构中与所述目标神经网络结构模板对应的目标子神经网络结构。
143.在一种可能的实施方式中,所述确定模块2103具体用于:
144.从所述第一图像神经网络结构中筛选与每个神经网络结构模板的指定神经网络结构相同的子神经网络结构,所述指定神经网络结构用于表征所述神经网络结构模板的结构特征。
145.在一种可能的实施方式中,所述替换模块2105具体用于:
146.将所述第一图像神经网络结构作为参考神经网络结构,使用对应目标神经网络结构模板所对应的各预设图像神经网络结构,分别对该参考神经网络结构中的第i个目标子神经网络结构进行替换,得到中间神经网络结构集,i为从1开始的整数;
147.若确定i小于目标子神经网络结构的总数,则将i更新为i+1,将所述中间神经网络结构集中的每个神经网络结构作为新的参考神经网络结构,执行使用对应目标神经网络结构模板所对应的各预设图像神经网络结构,分别对该参考神经网络结构中的第i个目标子神经网络结构进行替换,得到中间神经网络结构集的步骤;
148.若确定i等于目标子神经网络结构的总数,则将所述中间神经网络结构集确定为候选神经网络结构集。
149.在一种可能的实施方式中,还包括转换模块2107,用于:
150.在根据所述结构描述信息,生成第一图像神经网络结构之前,若确定所述结构描述信息不是采用指定数据格式表示的,则将所述结构描述信息转换为采用所述指定数据格式表示的结构描述信息。
151.本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
152.图22为本申请实施例提供的一种电子设备的结构示意图,该电子设备包括收发器2201以及处理器2202等物理器件,其中,处理器2202可以是一个中央处理单元(central processing unit,cpu)、微处理器、专用集成电路、可编程逻辑电路、大规模集成电路、或者
为数字处理单元等等。收发器2201用于电子设备和其他设备进行数据收发。
153.该电子设备还可以包括存储器2203用于存储处理器2202执行的软件指令,当然还可以存储电子设备需要的一些其他数据,如电子设备的标识信息、电子设备的加密信息、用户数据等。存储器2203可以是易失性存储器(volatile memory),例如随机存取存储器(random

access memory,ram);存储器2203也可以是非易失性存储器(non

volatile memory),例如只读存储器(read

only memory,rom),快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid

state drive,ssd)、或者存储器2203是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器2203可以是上述存储器的组合。
154.本申请实施例中不限定上述处理器2202、存储器2203以及收发器2201之间的具体连接介质。本申请实施例在图22中仅以存储器2203、处理器2202以及收发器2201之间通过总线2204连接为例进行说明,总线在图22中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图22中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
155.处理器2202可以是专用硬件或运行软件的处理器,当处理器2202可以运行软件时,处理器2202读取存储器2203存储的软件指令,并在所述软件指令的驱动下,执行前述实施例中涉及的图像神经网络结构的优化方法。
156.本申请实施例还提供了一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,所述电子设备能够执行前述实施例中涉及的图像神经网络结构的优化方法。
157.在一些可能的实施方式中,本申请提供的图像神经网络结构的优化方法的各个方面还可以实现为一种程序产品的形式,所述程序产品中包括有程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行前述实施例中涉及的图像神经网络结构的优化方法。
158.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、ram、rom、可擦式可编程只读存储器(erasable programmable read

only memory,eprom)、闪存、光纤、光盘只读存储器(compact disk read only memory,cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
159.本申请实施例中用于图像神经网络结构的优化的程序产品可以采用cd

rom并包括程序代码,并可以在计算设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
160.可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
161.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、射频(radio frequency,rf)等等,或者上述的任意合适的组合。
162.可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络包括局域网(local area network,lan)或广域网(wide area network,wan)连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
163.应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
164.此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
165.本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
166.本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
167.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
168.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
169.尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优
选实施例以及落入本申请范围的所有变更和修改。
170.显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1