网络结构搜索方法和装置、可读存储介质、电子设备与流程

文档序号:19312930发布日期:2019-12-03 23:42阅读:159来源:国知局
网络结构搜索方法和装置、可读存储介质、电子设备与流程

本公开涉及神经网络技术,尤其是一种网络结构搜索方法和装置、可读存储介质、电子设备。



背景技术:

现有的网络结构搜索方法主要包括四种方法:强化学习,进化算法。强化学习和进化算法是先生成一种结构,训练得到的结构然后获得其性能指标,根据这次经验去生成更好的结构。

现有的网络结构搜索方法都是从零开始构建搜索空间,搜索速度慢。



技术实现要素:

为了解决上述搜索速度慢的技术问题,提出了本公开。本公开的实施例提供了一种网络结构搜索方法和装置、可读存储介质、电子设备。

根据本公开实施例的一个方面,提供了一种网络结构搜索方法,包括:

基于预设网络结构和具有预设网络参数的第一网络确定第二网络;

基于预设训练任务对应的训练集样本对所述第二网络进行训练,确定所述第二网络中每两个网络层之间的连接权重;

基于所述连接权重,确定所述预设训练任务对应的第三网络。

根据本公开实施例的另一方面,提供了一种网络结构搜索装置,包括:

第二网络确定模块,用于基于预设网络结构和具有预设网络参数的第一网络确定第二网络;

权重确定模块,用于基于预设训练任务对应的训练集样本对所述第二网络确定模块确定的第二网络进行训练,确定所述第二网络中每两个网络层之间的连接权重;

第三网络确定模块,用于基于所述权重确定模块确定的连接权重,确定所述预设训练任务对应的第三网络。

根据本公开实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述实施例所述的网络结构搜索方法。

根据本公开实施例的还一方面,提供了一种电子设备,所述电子设备包括:

处理器;

用于存储所述处理器可执行指令的存储器;

所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述实施例所述的网络结构搜索方法。

基于本公开上述实施例提供的一种网络结构搜索方法和装置、可读存储介质、电子设备,基于已知网络结构和网络参数的分类网络获得第二网络;基于目标任务对应的训练集对所述第二网络进行训练,确定所述第二网络中每两个网络层之间的连接权重;基于所述连接权重获得所述目标任务对应的目标网络。本实施例通过建立属于超级网络的第二网络,实现了网络结构的扩展,并对结构扩展后获得的第二网络进行训练,从经过训练的第二网络中获得第三网络,由于第二网络经过训练获得的网络参数更适合预设训练任务,因此基于第二网络搜索获得对应预设训练任务的第三网络,实现了加快搜索速度,提高了搜索的准确度。

下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。

附图说明

通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。

图1是本公开提供的网络结构搜索方法的一种流程示意图。

图2a是图1提供的实施例中步骤101中第一网络的一个结构示意图。

图2b是图1提供的实施例中步骤102中超级网络的一个结构示意图。

图2c是图1提供的实施例中步骤103中获得的子网络的一个结构示意图。

图3a示出了mbconv结构的一种结构示意图。

图3b示出了mbconv结构的另一种结构示意图。

图4演示了基于梯度获得最优子结构的一个结构示意图。

图5是本公开一示例性实施例提供的网络结构搜索方法的流程示意图。

图6是本公开图5所示的实施例中步骤501的一个流程示意图。

图7是本公开图6所示的实施例中步骤5011的一个流程示意图。

图8是本公开图6所示的实施例中步骤5012的一个流程示意图。

图9是本公开图5所示的实施例中步骤503的一个流程示意图。

图10是本公开一示例性实施例提供的网络结构搜索装置的结构示意图。

图11是本公开另一示例性实施例提供的网络结构搜索装置的结构示意图。

图12是本公开一示例性实施例提供的电子设备的结构图。

具体实施方式

下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。

应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。

本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。

还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。

还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。

另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。

还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

申请概述

在实现本公开的过程中,发明人发现,现有的网络结构搜索方法都是从零开始构建搜索空间,但该方法至少存在以下问题:搜索速度非常慢,需要耗费很多的资源。

示例性系统

图1是本公开提供的网络结构搜索方法的一种流程示意图。如图1所示,该方法包括:步骤101,获得一个第一网络。该第一网络为现有技术中已知网络结构的现有网络,通常这些现有网络中包括在分类或者密集预测任务的预训练参数,其中,密集预测任务是指标注出图像中每个像素点的对象类别,要求不但给出具体目标的位置,还要描绘物体的边界的任务,通常在大分辨率的图像上预测,例如,图像分割、物体检测、边缘检测等任务。上述现有网络除了包括在分类或密集预测任务的预训练参数之外,还可以包括例如人脸识别、姿态估计等非cv领域的任务的预训练参数。在一个可选示例中,该步骤获得的第一网络可以如图2a所示,图2a是图1提供的实施例中步骤101中第一网络的一个结构示意图,图2a中的每个圆表示一个网络层,箭头表示两个网络层之间的连接,图2a中包括的多个圆表示相同或不同类型的网络层(如,卷积层、全连接层等)。

步骤102,根据第一网络生成一个超级网络。由于上述步骤101获得的第一网络的结构大多都是只适应单一任务(例如,分类任务);因此,本实施例对第一网络的网络结构进行扩展,生成一个超级网络(supernet)的网络结构,并将第一网络的预训练参数迁移到超级网络中,以实现基于该超级网络可以获得适用于其他任务的子网络,可选地,不同的任务有不同的超级父图;其中扩展操作可以包括但不限于:改变卷积核的大小(如将3*3变更为5*5、7*7等);膨胀系数的变化(如变为3、6等);加入不同的操作如跳跃连接(跳跃连接是指跳过下一个网络层直接连接再下一个网络层,跳跃连接只在输入输出通道数不改变的情况下才加);在第一网络的多个阶段中的至少一个节点之后增加新的网络层(第一网络中的一个阶段包括通道数不变化的至少一个网络层);增加mbconv结构。

其中,mbconv结构一共包括两种,如图3a和图3b所示。当有通道数(channels)的变化时采用图3a所示结构,否则采用图3b所示结构。

图3a所示的并行层中的该结构的输入通道数为c,输出通道数为c′,且c和c′可以不相同。图3a中的结构包括3部分。最左边的梯形框表示卷积核大小为1×1的卷积操作以及relu6激活函数,其输入通道数为c,输出通道数为tc,其中的t为膨胀系数。中间的长方形框表示步长为2、卷积核大小为k×k的深度可分离卷积以及relu6激活函数,其输入通道数和输出通道数均为tc。最右侧的梯形框表示卷积核大小为1×1的卷积操作数,其输入通道数为tc,输出通道数为c。其中的t以及k×k取决于候选操作。

图3b中包括三个部分。最左边的梯形框表示卷积核大小为1×1的卷积操作以及relu6激活函数。中间的长方形框表示卷积核大小为k×k的深度可分离卷积以及relu6激活函数。最右侧的梯形框表示卷积核大小为1×1的卷积操作数。会有一个跳跃连接,将输入与输出进行相加。图3b中的输入通道数和输出通道数均为c。

在结构扩展之后,还包括对超级网络中的网络参数进行赋值,本实施例采用将第一网络中的参数迁移到超级网络中,具体地,在网络结构能对应上的网络结构部分直接将网络参数加载到对应的网络结构中,在网络结构不匹配的部分可以截取参数至匹配(例如,第一网络中的卷积核为5*5,超级网络中对应位置的卷积核大小为3*3,此时截取5*5中心位置的3*3大小的卷积核值对超级网络的卷积核进行赋值即可),如果超级网络中的网络结构在第一网络中不存在对应的网络结构,也无法截取获得网络参数,此时,可以选择对该网络结构进行随机初始化或者复用之前的参数。

经过步骤102对图2a提供的现有网络进行结构扩展,获得的超级网络可以如图2b所示,图2b是图1提供的实施例中步骤102中超级网络的一个结构示意图,与图2a类似,图2b中的每个圆表示一个网络层,箭头表示两个网络层之间的连接,图2b中包括的多个圆表示相同或不同类型的网络层(如,卷积层、全连接层等)。该超级网络包括的结构层数与第一网络包括的结构层数可能相同或不同,并且超级网络的结构层中的每层中分别包括多个网络层;其中,每层结构中的多个网络层可以是相同功能但参数不同的多个网络层,也可以是不同功能的多个网络层,例如,一层结构中包括3个卷积核大小不同的卷积层;本实施例不限制超级网络的具体结构。

步骤103,对超级网络进行训练,在超级网络中利用基于梯度的方法搜索微调更适合密集预测任务的结构,最后选出一个更适合密集预测任务的子网络。搜索过程即网络训练过程,搜索获得的子网络可如图2c所示,图2c是图1提供的实施例中步骤103中获得的子网络的一个结构示意图。超级网络中包括多个子网络,图2c所示的子结构是基于连接权重(结构参数)从超级网络中选择的一个子网络,与图2a和图2b类似,图2c中的每个圆同样表示一个网络层,箭头表示两个网络层之间的连接,图2c中包括的多个圆表示相同或不同类型的网络层(如,卷积层、全连接层等)。因为超级网络中已经加载了参数,所以在搜索的时候速度更快,准确度更高。

图4演示了基于梯度获得最优子结构的一个结构示意图。如图4所示,一个父网络(如,图1实施例中提供的超级网络)里面包括所有的子网络,该父网络中包括0、1、2、3四个部分,其中间部分与图2b所示的中间层类似,分别具有多个网络层,因此,每两个部分之间包括多种连接,每个连接对应一个连接权重,每个子网络都有相应的连接权重(在超级网络中的初始连接权重可以为没两层结构之间的所有连接权重为1,每个连接的连接权重为均值,例如,两层结构之间包括4个连接权重,那么4个连接中每个连接对应的初始连接权重为0.25),在训练的过程中连接权重会根据梯度来改变,训练结束后会有连接权重最大的子网络,最后测试只留下连接权重最大的子网络,就是最优子网络。

示例性方法

图5是本公开一示例性实施例提供的网络结构搜索方法的流程示意图。本实施例可应用在电子设备上,如图5所示,包括如下步骤:

步骤501,基于预设网络结构和具有预设网络参数的第一网络确定第二网络。

其中,第一网络的结构可以参考图2a所示,为一个已知网络结构和网络参数的现有网络,该现有网络对应一个设定任务,该现有网络例如可以为分类网络等,设定任务例如对应为分类任务。第二网络与第一网络中可存在部分相同的网络层,可选地,第一网络可以是第二网络中的一个子网络。

步骤502,基于预设训练任务对应的训练集样本对第二网络进行训练,确定第二网络中每两个网络层之间的连接权重。

在一实施例中,预设训练任务是本公开的目标任务,可以为密集预测任务等,其中,第二网络为超级网络,第二网络是基于第一网络经过结构扩展和/或变换获得的,其结构可参照图2b所示。

步骤503,基于连接权重,确定预设训练任务对应的第三网络。

可选地,通过对第二网络的训练,可获得该第二网络中每两层结构之间的多个连接的连接权重,基于连接权重获得的第三网络的结构可参照图2c所示,图2c表示第二网络中权重最大(自网络中所有连接权重的和)的子网络。

本公开上述实施例提供的网络结构搜索方法,基于已知网络结构和网络参数的分类网络获得第二网络;基于目标任务对应的训练集对所述第二网络进行训练,确定所述第二网络中每两个网络层之间的连接权重;基于所述连接权重获得所述目标任务对应的目标网络。本实施例通过建立属于超级网络的第二网络,实现了网络结构的扩展,并对结构扩展后获得的第二网络进行训练,从经过训练的第二网络中获得第三网络,由于第二网络经过训练获得的网络参数更适合预设训练任务,因此基于第二网络搜索获得对应预设训练任务的第三网络,实现了加快搜索速度,提高了搜索的准确度。

如图6所示,在上述图5所示实施例的基础上,步骤501可包括如下步骤:

步骤5011,通过对第一网络的预设网络结构进行扩展获得扩展结构。

可选地,对第一网络的结构扩展可通过上述图1所示的实施例中的步骤102实现,扩展得到的扩展结构可参照图2b所示,图2b相对图2a,增加了多个不同类型的网络层,使图2b中包括多个子网络,此时,图2a可以为图2b中的一个子网络。

步骤5012,基于第一网络的网络参数对扩展结构中的网络层的参数进行赋值,获得第二网络。

可选地,对扩展结构进行参数赋值的过程可参照上述图1所示的实施例中的步骤102中提供的参数迁移过程。

本实施例通过以第一网络为基础,进行结构扩展和参数赋值,获得了已经加载了初始网络参数的第二网络,该第二网络的结构中包括多个子网络,此时,基于该第二网络进行搜索,由于其中初始网络参数是第一网络经过训练获得的,更适合第二网络,获得最优子网络(即第三网络)的速度,相对基于任意网络结构和随机初始化网络参数的超级网络获得最优子网络的速度更快,准确度更高。

如图7所示,在上述图6所示实施例的基础上,步骤5011可包括如下步骤:

步骤701,分别对第一网络中的每个网络层通过至少两种操作增加至少两个分支网络层,得到第一网络的第一扩展网络。

可选地,本实施例中的操作可以采用上述图1所示实施例中步骤102提供的多种扩展操作中的两种或两种以上;通过这些扩展操作,可将每两层网络结构之间都扩展为包括多个连接,即具有超级网络的结构。

在一个可选实施例中,至少两种操作包括以下至少两种:改变网络层中的网络参数获得至少一个分支网络层;变更网络层的操作类型获得至少一个分支网络层;跳过网络层。

步骤702,在第一网络包括的多个阶段中的至少一个阶段之后增加至少一个新增网络层,得到第一网络的第二扩展网络。

可选地,每个阶段指通道数不变的多个网络层,在至少一个阶段后增加至少一个网络层,该网络层可以是复制上一阶段的某一个或多个层。

步骤703,基于第一扩展网络和第二扩展网络,得到第一网络的扩展结构。

本实施例通过在每层通过至少一种手段横向扩展至少两个分支获得第一扩展网络,通过在每个阶段之后增加网络层实现对网络结构的纵向扩展(增加网络的层数),使获得的第二网络的结构更具多样性,其中包括的子网络更多,从这些子网络中获得的第三网络性能更优化。

如图8所示,在上述图6所示实施例的基础上,步骤5012可包括如下步骤:

步骤801,基于第一网络中的网络参数对扩展结构中与第一网络存在对应关系的网络层的参数进行赋值。

步骤802,对扩展结构中的分支网络层和新增网络层的网络参数进行随机赋值,获得第二网络。

可选地,对第二网络中的参数进行赋值的过程可参照图1所示的实施例中步骤102中对扩展后的网络结构进行参数迁移的过程,本实施例通过参数直接迁移、参数截取、随机初始化、复用之前的参数等手段实现对第二网络的参数赋值,使第二网络在训练之前的参数符合第一网络对应的任务,由于第一网络是基于其对应的任务经过训练的,其网络参数更适合应用于该任务,本实施例通过参数赋值使第二网络中的初始网络参数较适合应用于第一网络对应的任务,相对任意初始化网络参数的第二网络,本实施例获得的第二网络性能更加,更适合搜索第三网络。

在一些可选的实施例中,步骤502在基于预设训练任务对应的训练集样本对第二网络进行训练,确定第二网络中每两个网络层之间的连接权重的同时,还确定第二网络中每个网络层中的网络参数。

本实施例中,对第二网络进行训练的过程中,除了基于梯度对连接权重进行调整,还可以实现基于梯度对网络参数进行调整,实现了利用基于梯度的方法去搜索微调更适合密集预测任务的结构和网络参数。

如图9所示,在上述图5所示实施例的基础上,步骤503可包括如下步骤:

步骤5031,基于第二网络中每两层结构之间的多个连接权重中的最大连接权重确定两层结构之间的一个连接,获得每两层结构之间仅有一个连接的中间结构。

可选地,获得中间结构的过程可参照图4所示实施例,从每两层结构之间的多个连接权重中的最大连接权重确定为连接,基于所有最大连接权重将获得连接权重最大的子网络,即最佳子网络。

步骤5032,通过第二网络或第一网络的网络参数对中间结构进行网络参数赋值,确定第三网络。

本实施例中,通过对获得的中间结构进行参数赋值,使获得的第三网络中的网络参数更适合预设训练任务。

在一些可选的实施例中,步骤5032可以包括:

基于第二网络中与中间结构存在对应关系的网络层的网络参数对中间结构进行赋值,获得第三网络;

或者,基于第一网络中的网络参数对中间结构中与第一网络存在对应关系的网络层进行赋值,并对中间结构中与第一网络不存在对应关系的网络层进行随机赋值,确定第三网络。

在基于权重获得结构之后,可以基于第二网络(超级网络)或第一网络(例如,分类网络)中的网络参数进行赋值,对于其中不能匹配的网络结构可进行随机赋值,其中由于第二网络中包括了多个子网络,而第三网络是其中的一个子网络,因此,在以第二网络对第三网络进行参数赋值时,可直接将第三网络中对应的网络参数迁移到第三网络中;而当以第一网络的网络参数对第三网络进行赋值时,可能存在结构不匹配的情况,此时对于不匹配的网络结构的参数可随机初始化。

在应用第三网络处理预设训练任务之前,还可以利用预设训练任务对于的训练集样本对第三网络进行训练,以使训练后的第三网络更适合处理预设训练任务。

本公开实施例提供的任一种网络结构搜索方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种网络结构搜索方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种网络结构搜索方法。下文不再赘述。

示例性装置

图10是本公开一示例性实施例提供的网络结构搜索装置的结构示意图。如图10所示,本实施例包括:

第二网络确定模块11,用于基于预设网络结构和具有预设网络参数的第一网络确定第二网络。

权重确定模块12,用于基于预设训练任务对应的训练集样本对第二网络确定模块11确定的第二网络进行训练,确定第二网络中每两个网络层之间的连接权重。

第三网络确定模块13,用于基于权重确定模块12确定的连接权重,确定预设训练任务对应的第三网络。

本公开上述实施例提供的网络结构搜索装置,基于已知网络结构和网络参数的分类网络获得第二网络;基于目标任务对应的训练集对所述第二网络进行训练,确定所述第二网络中每两个网络层之间的连接权重;基于所述连接权重获得所述目标任务对应的目标网络。本实施例通过建立属于超级网络的第二网络,实现了网络结构的扩展,并对结构扩展后获得的第二网络进行训练,从经过训练的第二网络中获得第三网络,由于第二网络经过训练获得的网络参数更适合预设训练任务,因此基于第二网络搜索获得对应预设训练任务的第三网络,实现了加快搜索速度,提高了搜索的准确度。

图11是本公开另一示例性实施例提供的网络结构搜索装置的结构示意图。如图11所示,本实施例中,第二网络确定模块11包括:

结构扩展单元111,用于通过对第一网络的预设网络结构进行扩展获得扩展结构。

可选地,结构扩展单元111,具体用于分别对第一网络中的每个网络层通过至少两种操作增加至少两个分支网络层,得到第一网络的第一扩展网络;在第一网络包括的多个阶段中的至少一个阶段之后增加至少一个新增网络层,得到第一网络的第二扩展网络;基于第一扩展网络和第二扩展网络,得到第一网络的扩展结构。

其中,至少两种操作包括以下至少两种:改变网络层中的网络参数获得至少一个分支网络层;变更网络层的操作类型获得至少一个分支网络层;跳过网络层。

网络赋值单元112,用于基于第一网络的网络参数对扩展结构中的网络层的参数进行赋值,获得第二网络。

可选地,网络赋值单元112,具体用于基于第一网络中的网络参数对扩展结构中与第一网络存在对应关系的网络层的参数进行赋值;对扩展结构中的分支网络层和新增网络层的网络参数进行随机赋值,获得第二网络。

可选地,权重确定模块12,还用于确定第二网络中每个网络层中的网络参数。

本实施例中,第三网络确定模块13包括:

连接筛选单元131,用于基于第二网络中每两层结构之间的多个连接权重中的最大连接权重确定两层结构之间的一个连接,获得每两层结构之间仅有一个连接的中间结构;

参数迁移单元132,用于通过第二网络或第一网络的网络参数对中间结构进行网络参数赋值,确定第三网络。

可选地,参数迁移单元132,具体用于基于第二网络中与中间结构存在对应关系的网络层的网络参数对中间结构进行赋值,获得第三网络;

或者,基于第一网络中的网络参数对中间结构中与第一网络存在对应关系的网络层进行赋值,并对中间结构中与第一网络不存在对应关系的网络层进行随机赋值,确定第三网络。

示例性电子设备

下面,参考图12来描述根据本公开实施例的电子设备。该电子设备可以是第一设备100和第二设备200中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。

图12图示了根据本公开实施例的电子设备的框图。

如图12所示,电子设备120包括一个或多个处理器121和存储器122。

处理器121可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备120中的其他组件以执行期望的功能。

存储器122可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器121可以运行所述程序指令,以实现上文所述的本公开的各个实施例的网络结构搜索方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。

在一个示例中,电子设备120还可以包括:输入装置123和输出装置124,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。

例如,在该电子设备是第一设备100或第二设备200时,该输入装置123可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。在该电子设备是单机设备时,该输入装置123可以是通信网络连接器,用于从第一设备100和第二设备200接收所采集的输入信号。

此外,该输入设备123还可以包括例如键盘、鼠标等等。

该输出装置124可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出设备124可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。

当然,为了简化,图12中仅示出了该电子设备120中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备120还可以包括任何其他适当的组件。

示例性计算机程序产品和计算机可读存储介质

除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的网络结构搜索方法中的步骤。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的网络结构搜索方法中的步骤。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。

可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。

还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。

提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。

为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1