1.一种神经网络的搜索方法,包括:从搜索空间中,获取神经网络对应的各个候选网络结构,其中,每个所述候选网络结构中包含各个层对应的算子编码;
基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个所述候选网络结构的总耗时;
获取每个所述候选网络结构在测试集上的精度;
根据每个所述候选网络结构在测试集上的精度及总耗时,确定所述神经网络对应的目标网络结构。
2.如权利要求1所述的方法,其中,所述确定每个所述候选网络结构的总耗时,包括:基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个所述候选网络结构中每个层对应的计算耗时;
确定各个层间的调度耗时;
根据每个所述候选网络结构中每个层对应的计算耗时及各个层间的调度耗时,确定每个所述候选网络结构的总耗时。
3.如权利要求2所述的方法,其中,每个所述候选网络结构中还包括各个层间的关系编码,所述确定各个层间的调度耗时,包括:基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个所述候选网络结构中每个层对应的目标设备类型;
根据每个所述候选网络结构中各个层间的关系编码及每个层对应的目标设备类型,确定每个所述候选网络结构对应的各类设备间的调度关系;
根据每个所述候选网络结构对应的各类设备间的调度关系、及预设的各类设备间的调度耗时,确定各个层间的调度耗时。
4.如权利要求1所述的方法,其中,所述从搜索空间中,获取神经网络对应的各个候选网络结构,包括:
确定所述搜索空间中各初始网络结构在测试集上的第一精度值;
根据每个所述初始网络结构在测试集上的第一精度值,从所述各个初始网络结构中选取待交叉的初始网络结构;
将所述待交叉的初始网络结构进行交叉处理,以生成新的网络结构;
根据所述新的网络结构在所述测试集上的第二精度值,将所述新的网络结构进行变异处理,以生成变异后的网络结构;
获取变异后的网络结构在所述测试集上的第三精度值;
基于各变异后的网络结构分别对应的各第三精度值,将各变异后的网络结构进行交叉、变异处理,直至生成的所述各候选网络结构满足预设的收敛条件。
5.如权利要求1‑4任一所述的方法,其中,所述搜索空间中包括普通网络结构、锚点网络结构及每个所述锚点网络结构对应的目标输出特征,所述获取神经网络对应的各个候选网络结构,包括:
根据每个所述锚点网络结构对应的目标输出特征及损失约束,对每个所述锚点网络结构进行超网络训练,以生成所述锚点网络结构对应的候选网络结构;
根据每个所述普通网络结构对应的损失约束,对每个所述普通网络结构进行超网络训练,以生成所述普通网络结构对应的候选网络结构。
6.如权利要求5所述的方法,其中,在所述获取神经网络对应的各个候选网络结构之前,还包括:
根据所述搜索空间内各个网络结构中包含的算子数量、类型及各算子间的连接关系,确定锚点网络结构;
利用预设的训练集,对每个所述锚点网络结构进行训练,以确定每个所述锚点网络结构对应的目标输出特征。
7.如权利要求6所述的方法,其中,所述根据所述搜索空间内各个网络结构中包含的算子数量、类型及各算子间的连接关系,确定锚点网络结构,包括:根据所述搜索空间内各个网络结构中包含的算子数量、类型及各算子间的连接关系,确定各个网络结构对应的计算复杂性;
根据每个网络结构对应的计算复杂性,将所述搜索空间内的各个网络结构进行分类,以生成多个网络结构集合,其中,每个网络结构集合中包含的网络结构内的计算复杂性相似;
分别从每个所述网络结构集合中抽取至少一个锚点网络结构。
8.一种神经网络的搜索装置,包括:第一获取模块,用于从搜索空间中,获取神经网络对应的各个候选网络结构,其中,每个所述候选网络结构中包含各个层对应的算子编码;
第一确定模块,用于基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个所述候选网络结构的总耗时;
第二获取模块,用于获取每个所述候选网络结构在测试集上的精度;
第二确定模块,用于根据每个所述候选网络结构在测试集上的精度及总耗时,确定所述神经网络对应的目标网络结构。
9.如权利要求8所述的装置,其中,所述第一确定模块,包括:第一确定单元,用于基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个所述候选网络结构中每个层对应的计算耗时;
第二确定单元,用于确定各个层间的调度耗时;
第三确定单元,用于根据每个所述候选网络结构中每个层对应的计算耗时及各个层间的调度耗时,确定每个所述候选网络结构的总耗时。
10.如权利要求9所述的装置,其中,每个所述候选网络结构中还包括各个层间的关系编码,所述第二确定单元,包括:第一确定子单元,用于基于预设的各算子编码在各类设备中的运行耗时及各个层对应的算子编码,确定每个所述候选网络结构中每个层对应的目标设备类型;
第二确定子单元,用于根据每个所述候选网络结构中各个层间的关系编码及每个层对应的目标设备类型,确定每个所述候选网络结构对应的各类设备间的调度关系;
第三确定子单元,用于根据每个所述候选网络结构对应的各类设备间的调度关系、及预设的各类设备间的调度耗时,确定各个层间的调度耗时。
11.如权利要求8所述的装置,其中,所述第一获取模块,包括:第四确定单元,用于确定所述搜索空间中各初始网络结构在测试集上的第一精度值;
选取单元,用于根据每个所述初始网络结构在测试集上的第一精度值,从所述各个初始网络结构中选取待交叉的初始网络结构;
交叉处理单元,用于将所述待交叉的初始网络结构进行交叉处理,以生成新的网络结构;
变异处理单元,用于根据所述新的网络结构在所述测试集上的第二精度值,将所述新的网络结构进行变异处理,以生成变异后的网络结构;
获取单元,用于获取变异后的网络结构在所述测试集上的第三精度值;
迭代单元,用于基于各变异后的网络结构分别对应的各第三精度值,将各变异后的网络结构进行交叉、变异处理,直至生成的所述各候选网络结构满足预设的收敛条件。
12.如权利要求8‑11任一所述的装置,其中,所述搜索空间中包括普通网络结构、锚点网络结构及每个所述锚点网络结构对应的目标输出特征,所述第一获取模块,包括:第一训练单元,用于根据每个所述锚点网络结构对应的目标输出特征及损失约束,对每个所述锚点网络结构进行超网络训练,以生成所述锚点网络结构对应的候选网络结构;
第二训练单元,用于根据每个所述普通网络结构对应的损失约束,对每个所述普通网络结构进行超网络训练,以生成所述普通网络结构对应的候选网络结构。
13.如权利要求12所述的装置,其中,还包括:第三确定模块,用于根据所述搜索空间内各个网络结构中包含的算子数量、类型及各算子间的连接关系,确定锚点网络结构;
第四确定模块,用于利用预设的训练集,对每个所述锚点网络结构进行训练,以确定每个所述锚点网络结构对应的目标输出特征。
14.如权利要求13所述的装置,其中,所述第三确定模块,包括:第五确定单元,用于根据所述搜索空间内各个网络结构中包含的算子数量、类型及各算子间的连接关系,确定各个网络结构对应的计算复杂性;
生成单元,用于根据每个网络结构对应的计算复杂性,将所述搜索空间内的各个网络结构进行分类,以生成多个网络结构集合,其中,每个网络结构集合中包含的网络结构内的计算复杂性相似;
抽取单元,用于分别从每个所述网络结构集合中抽取至少一个锚点网络结构。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1‑7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1‑7中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1‑7中任一项所述方法。