CN111639752A - 用于训练超网络的方法、装置、设备以及存储介质 - Google Patents
用于训练超网络的方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN111639752A CN111639752A CN202010478425.9A CN202010478425A CN111639752A CN 111639752 A CN111639752 A CN 111639752A CN 202010478425 A CN202010478425 A CN 202010478425A CN 111639752 A CN111639752 A CN 111639752A
- Authority
- CN
- China
- Prior art keywords
- network
- hyper
- sub
- super
- training
- 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.)
- Granted
Links
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/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/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了用于训练超网络的方法、装置、设备以及存储介质,涉及人工智能技术领域,更进一步涉及深度学习技术领域。具体实现方案为:根据预先建立的超网络的搜索空间,生成多个子网络;基于多个子网络,多次执行以下更新步骤:从多个子网络中选取至少一个子网络;基于所选取的子网络训练超网络,得到第一超网络和第二超网络;根据第一超网络和第二超网络,更新超网络的参数。本实现方式训练得到的超网络精度更高,从训练得到的超网络中采样出的子网络与独立训练相同结构的网络的性能一致。由此,在将本实现方式训练得到的超网络应用到图像处理领域时,基于超网络自动搜索模型结构可以快速地搜索出适配且性能优越的子网络。
Description
技术领域
本申请涉及计算机技术领域,具体涉及人工智能技术领域,进一步涉及深度学习技术领域,尤其涉及用于训练超网络的方法、装置、设备以及存储介质。
背景技术
深度神经网络在很多领域取得了重要的成果。深度神经网络模型的结构对其性能具有直接的影响。传统的神经网络模型的结构是专家根据经验设计的,需要丰富的专家知识,网络结构的设计成本较高。
NAS(Neural Architecture Search,网络结构自动搜索)是用算法代替繁琐的人工操作,自动搜索出最佳的神经网络架构。目前的一种方法中,通过预先构建包含所有可能的模型结构的超网络,对超网络进行训练。然后在实际深度学习任务中,从超网络中通过NAS搜索出合适的子网络作为执行该深度学习任务的神经网络模型。
然而,由于超网络中的所有网络结构是共存的,训练超网络过程中存在着互斥的问题。超网络训练过程为了兼顾所有的网络结构性能都较优,会导致网络性结构的性能都与独立训练的网络的性能有较大的差距。
发明内容
提供了一种用于训练超网络的方法、装置、设备以及存储介质。
根据第一方面,提供了一种用于训练超网络的方法,包括:根据预先建立的超网络的搜索空间,生成多个子网络;基于上述多个子网络,多次执行以下更新步骤:从上述多个子网络中选取至少一个子网络;基于所选取的子网络训练上述超网络,得到第一超网络和第二超网络;根据上述第一超网络和上述第二超网络,更新上述超网络的参数。
根据第二方面,提供了一种用于训练超网络的装置,包括:生成单元,被配置成根据预先建立的超网络的搜索空间,生成多个子网络;更新单元,被配置成基于上述多个子网络,多次通过以下模块执行更新步骤:子网络选取模块,被配置成从上述多个子网络中选取至少一个子网络;超网络训练模块,被配置成基于所选取的子网络训练上述超网络,得到第一超网络和第二超网络;超网络更新模块,被配置成根据上述第一超网络和上述第二超网络,更新上述超网络的参数。
根据第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,所述指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面所描述的方法。
根据第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,上述计算机指令用于使计算机执行如第一方面所描述的方法。
根据本申请的技术训练得到的超网络精度更高,从训练得到的超网络中采样出的子网络与独立训练相同结构的网络的性能一致。由此,在将本实现方式训练得到的超网络应用到图像处理领域时,基于超网络自动搜索模型结构可以快速地搜索出性能优越的子网络。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请的一个实施例可以应用于其中的示例性系统架构图;
图2是根据本申请的用于训练超网络的方法的一个实施例的流程图;
图3是根据本申请的用于训练超网络的方法的另一个实施例的流程图;
图4是根据本申请的用于训练超网络的方法的又一个实施例的流程图;
图5是根据本申请的用于训练超网络的装置的一个实施例的结构示意图;
图6是用来实现本申请实施例的用于训练超网络的方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请的用于训练超网络的方法或用于训练超网络的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。例如,用户可以通过终端设备101、102、103通过网络104与服务器105发送与语音交互、文本分类、图像识别、关键点检测等任务相关的深度学习任务请求。终端设备101、102、103上可以安装有各种通讯客户端应用,例如图像处理类应用、信息分析类应用、语音助手类应用、购物类应用、金融类应用等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、车载电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是运行各种服务的服务器,例如运行基于图像数据的目标跟踪服务或运行基于语音数据的语音处理服务的服务器。服务器105可以获取或确定用于实现上述各种服务的神经网络。服务器105可以预先获取深度学习任务数据来构建训练样本,并利用上述训练样本来训练用于实现上述各种服务的神经网络。在接收到任务请求时,服务器105可以实现对神经网络的模型结构的自动搜索和优化。具体的,服务器105可以通过超网络来实现神经网络的模型结构的自动搜索。
需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本公开的实施例所提供的用于训练超网络的方法一般由服务器105执行。相应地,用于训练超网络的装置一般设置于服务器105中。
在一些场景中,服务器105可以从数据库、存储器或其他设备获取超网络训练所需要的源数据(例如训练样本、待训练的超网络),这时,示例性系统架构100可以不存在终端设备101、102、103和网络104。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,其示出了根据本申请的用于训练超网络的方法的一个实施例的流程200。本实施例的用于训练超网络的方法,包括以下步骤:
步骤201,根据预先建立的超网络的搜索空间,生成多个子网络。
本实施例中,用于训练超网络的方法的执行主体(例如图1所示的服务器105)可以预先建立一个超网络。超网络是指包含所有搜索空间的一个网络,其可以包括多层,每一层包括多个可选取的子结构。每个子结构可以包括多种可选的算子,例如,卷积、池化等。每种算子包括一些超参数和权重参数。上述超参数可以包括例如卷积核的尺寸、卷积步长等等。执行主体可以对上述搜索空间进行多次采样,生成多个子网络。具体的,执行主体可以从搜索空间的各层中采样出至少一个子结构,并增加用于对至少一个子结构的输出结果进行相加的输出端,得到各子网络。在采样时,可以采用多种采样策略,例如随机采样,或者伯努利采样等等。
步骤202,基于多个子网络,多次执行以下更新步骤:
执行主体在采样得到多个子网络后,可以基于上述多个子网络多次执行更新步骤。上述更新步骤可以包括步骤2021、步骤2022和步骤2023。
步骤2021,从多个子网络中选取至少一个子网络。
本实施例中,执行主体可以从上述多个子网络中选取至少一个子网络。所选取的子网络用于后续对超网络的训练。在选取时可以随机选取一个子网络。或者,选取各子网络中性能最好的子网络。执行主体可以通过多种方式预测各子网络的性能。例如,执行主体可以通过预先训练的卷积神经网络来预测各子网络的性能。执行主体可以通过各种参数来表示子网络的性能。例如,通过误差、硬件延时或内存占用率等性能指标构建损失函数,并将损失函数的值作为子网络的性能。
步骤2022,基于所选取的子网络训练超网络,得到第一超网络和第二超网络。
执行主体在选取出至少一个子网络后,可以基于所选取的子网络来训练超网络。具体的,执行主体可以利用所选取的子网络对应的深度学习任务的训练数据,采用有监督或无监督的方式来训练子网络。在子网络的训练过程中通过迭代调整子网络的参数不断优化子网络。然后,利用训练后的子网络的参数来更新超网络,即在超网络中共享子网络中各层的参数,从而实现超网络的训练。
在超网络的训练过程中,可以确定第一超网络和第二超网络。此处,第一超网络可以是基于不同的子网络训练得到的超网络,第二超网络可以是与第一超网络的训练过程不同的超网络。
步骤2023,根据第一超网络和第二超网络,更新超网络的参数。
执行主体在得到第一超网络和第二超网络后,可以对比二者,利用二者中的其中之一来更新超网络的参数。具体的,执行主体可以利用二者中性能最好的一者来更新超网络的参数。这里更新的超网络的参数是基于第一超网络或第二超网络的性能信息反向传播获得的。具体地,可以基于第一超网络或第二超网络的误差、硬件延时、内存占用率等性能指标构建损失函数,计算损失函数关于超网络的各个参数的梯度,按照预设的梯度下降率(学习率)计算超网络的参数。
通过多次执行更新步骤,可以实现超网络参数的多次更新。
本申请的上述实施例提供的用于训练超网络的方法,通过将训练过程中得到的不同超网络进行对比,总是利用其中性能较优的超网络来更新超网络的参数。相比起现有的超网络训练方法,由于不必在训练过程中总是评估超网络的所有子网络的性能,使得执行该方法的硬件减少了在超网络训练过程中的计算量,提高了硬件的处理速度。另外,由于本实施例的方法,总是利用性能较优的超网络来更新超网络的参数,从而每次迭代都可以提升超网络的性能,使得性能更加优秀,即保持了超网络的训练与单独的子网络的训练的一致性。而且,由于超网络的性能的优秀,在将该超网络应用到具体的领域(如图像处理领域)时,可以通过NAS快速地提取出性能优越的子网络。
在本实施例的一些可选的实现方式中,在上述步骤201之前,执行主体还可以首先对建立的超网络进行初始化。在初始化时,执行主体可以随机初始化待训练的超网络的参数,或者将待训练的超网络的参数初始化为设定的值。
继续参见图3,其示出了根据本申请的用于训练超网络的方法中更新步骤的另一个实施例的流程300。如图3所示,本实施例的用于训练超网络的方法中更新步骤可以包括以下步骤:
步骤301,利用预设的性能预测模型预测多个子网络的性能,按照性能对多个子网络进行排序。
本实施例中,执行主体可以首先获取预设的性能预测模型。该性能预测模型用于预测网络的性能。其可以是各种算法构建而成,例如卷积神经网络等等。性能预测模型可以通过大量的训练样本训练得到。执行主体可以将各子网络的结构以及参数输入性能预测模型中,得到表示该子网络的性能的损失函数值。
执行主体可以根据性能预测模型的输出,对各子网络进行排序。性能越高,损失函数值越低的子网络排序越靠前。
执行主体可以根据上述排序,从多个子网络中选取至少一个子网络。
步骤302,在首次选取时,选取位于排序第一位的子网络。
在具体的实践中,执行主体可以通过计数器来控制选取哪些子网络。例如,如果计数器的值为初始值,表示当前为首次选取,则选取位于排序第一位的子网络。
步骤303,在非首次选取时,选取位于排序第K位以及第K-1位的子网络。
如果计数器的值不为初始值,表示当前并不是首次选取,则选取位于排序第K位和第K-1位的子网络。这里,K为第一预设值,K大于或等于2。可以理解的是,执行主体可以在选取完子网络后,在特定情况下更新计数器的值。
通过选取不同性能的子网络,基于这些子网络对超网络进行训练,可以得到不同性能的超网络。
步骤304,基于位于排序第一位的子网络训练超网络,将得到的超网络作为第三超网络。
在选取出子网络后,执行主体可以基于位于排序第一位的子网络训练超网络,将得到的超网络作为第三超网络。
步骤305,基于位于排序第K位的子网络训练第三超网络,得到第一超网络。
然后,执行主体再基于位于排序第K位的子网络训练第三超网络,得到第一超网络。
步骤306,基于位于排序第K位的子网络训练超网络,得到第四超网络。
同样的,执行主体还可以基于位于排序第K位的子网络训练超网络,得到第四超网络。
步骤307,基于位于排序第K-1位的子网络训练第四超网络,得到第二超网络。
然后,执行主体还可以基于位于排序第K-1位的子网络训练第四超网络,得到第二超网络。
这样,第一超网络和第二超网络分别基于不同的子网络训练得到。第一超网络由性能最好的子网络和性能排序第K的子网络训练得到。而第二超网络由性能排序第K的子网络和第K-1子网络训练得到。
步骤308,确定第一超网络提取的第一特征与第二超网络提取的第二特征之间的距离。
在得到第一超网络和第二超网络后,执行主体可以分别确定第一超网络提取的第一特征与第二超网络提取的第二特征。这里,第一超网络提取的第一特征可以是第一超网络的多个特征提取层所提取的特征,也可以是第一超网络的输出层之间得到的特征。同样的,第二超网络提取的第二特征可以是第二超网络的多个特征提取层所提取的特征,也可以是第二超网络的输出层之间得到的特征。
执行主体可以计算上述第一特征与第二特征之间的距离,上述距离例如可以是L2Norm(也称为L2范数,是指向量各元素的平方和然后开方)。可以理解的是,此距离用于比较第一特征与第二特征之间的差别。
步骤309,响应于确定上述距离小于或等于预设距离阈值,利用第一超网络或第二超网络更新第三超网络的参数。
如果执行主体确定上述计算得到的距离小于或等于预设距离阈值,则表明第一超网络与第二超网络的提取特征的能力相似,则可以利用第一超网络或第二超网络来更新第三超网络的参数。
步骤310,响应于确定距离大于预设距离阈值,预测第一超网络和第二超网络的性能。
如果执行主体确定上述计算得到的距离大于预设距离阈值,说明第一超网络与第二超网络提取特征的能力有差别。则可以分别预测第一超网络和第二超网络的性能。此处,在预测第一超网络和第二超网络的性能时,可以利用前面提到的性能预测模型来预测。
步骤311,利用性能最好的超网络更新第三超网络的参数。
通过对第一超网络和第二超网络性能的预测,可以确定二者中性能最好的超网络。执行主体可以利用该超网络来更新第三超网络的参数。
本申请的上述实施例提供的用于训练超网络的方法,在训练超网络时,可以选取性能不同的子网络来训练超网络。并且在训练过程中,比较通过不同子网络训练得到的超网络提取的特征之间的差异。并选取性能较好的超网络更新超网络的参数。从而能够较快的提升超网络的性能,使得超网络的精度更高。
继续参见图4,其示出了根据本申请的用于训练超网络的方法的又一个实施例的流程400。如图4所示,本实施例的用于训练超网络的方法可以包括以下步骤:
步骤401,根据预先建立的超网络的搜索空间,生成多个子网络。
步骤402,基于所述多个子网络,多次执行以下更新步骤:从多个子网络中选取至少一个子网络;基于所选取的子网络训练超网络,得到第一超网络和第二超网络;根据第一超网络和第二超网络,更新超网络的参数。
本实施例中,可以将步骤401和步骤402的操作作为一次迭代操作。即,一次迭代操作包括生成子网络的步骤和多次执行更新步骤的步骤。
步骤403,确定更新步骤的执行次数。
本实施例中,执行主体可以通过计数器计数每次迭代操作中更新步骤的执行次数。计数器的值可以表示更新步骤的执行次数。具体的,执行主体可以设置计数器的初始值为1,在选取完子网络后更新计数器的值。
步骤404,响应于确定执行次数等于第一预设次数阈值,再次执行生成多个子网络的步骤。
如果执行主体确定更新步骤的执行次数等于第一预设次数,则认定当前次迭代操作执行完成,需要执行下一次迭代操作,即再次执行生成多个子网络的步骤。
步骤405,响应于确定执行生成多个子网络的步骤的次数等于第二预设次数阈值,停止训练超网络。
执行生成多个子网络的步骤的次数即为执行迭代操作的次数,如果执行迭代操作的次数第二预设次数阈值,则不再训练超网络。
在本实施例的一些可选的实现方式中,在再次执行生成多个子网络的步骤前,上述方法还包括图4中未示出的以下步骤:预测参数更新后的超网络的性能;根据预设的性能与采样结构的对应关系以及预测得到的性能,确定再次执行生成多个子网络的步骤的采样结构。
本实现方式中,执行主体还可以预测参数更新后的超网络的性能。然后,根据预设的性能与采样结构的对应关系以及预测得到的性能,确定出下次生成多个子网络时所需的采样结构。这里采样结构用于表示如果从超网络的各层中采样出子结构以构建子网络。通过预先设置性能与采样结构的对应关系,可以确定出适合当前超网络性能的采样结构,快速提升超网络的性能。
本申请的上述实施例提供的用于训练超网络的方法,可以通过多次迭代来训练超网络,使得超网络的性能多次提升,从而提高了超网络的准确性。
进一步参考图5,作为对上述各图所示方法的实现,本申请提供了一种用于训练超网络的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的训练超网络装置500包括:生成单元501和更新单元502。其中,更新单元502包括:子网络选取模块5021、超网络训练模块5022和超网络更新模块5023。
生成单元501,被配置成根据预先建立的超网络的搜索空间,生成多个子网络。
更新单元502,被配置成基于所述多个子网络,多次通过以下模块执行更新步骤:
子网络选取模块5021,被配置成从多个子网络中选取至少一个子网络。
超网络训练模块5022,被配置成基于所选取的子网络训练超网络,得到第一超网络和第二超网络。
超网络更新模块5023,被配置成根据第一超网络和第二超网络,更新超网络的参数。
在本实施例的一些可选的实现方式中,子网络选取模块5021可以进一步被配置成:利用预设的性能预测模型预测多个子网络的性能,按照性能对多个子网络进行排序,性能预测模型用于预测网络的性能;根据排序,从多个子网络中选取至少一个子网络。
在本实施例的一些可选的实现方式中,子网络选取模块5021可以进一步被配置成:在首次选取时,选取位于排序第一位的子网络;在非首次选取时,选取位于排序第K位以及之前或之后的子网络,K为第一预设值。
在本实施例的一些可选的实现方式中,超网络训练模块5022可以进一步被配置成:基于位于排序第一位的子网络训练超网络,将得到的超网络作为第三超网络;基于位于排序第K位的子网络训练第三超网络,得到第一超网络。
在本实施例的一些可选的实现方式中,超网络训练模块5022可以进一步被配置成:基于位于排序第K位的子网络训练超网络,得到第四超网络;基于位于排序第K位之前或之后的子网络训练第四超网络,得到第二超网络。
在本实施例的一些可选的实现方式中,超网络更新模块5023可以进一步被配置成:确定第一超网络提取的第一特征与第二超网络提取的第二特征之间的距离;响应于确定距离小于或等于预设距离阈值,利用第一超网络或第二超网络更新第三超网络的参数。
在本实施例的一些可选的实现方式中,超网络更新模块5023可以进一步被配置成:响应于确定距离大于预设距离阈值,预测第一超网络和第二超网络的性能;利用性能最好的超网络更新第三超网络的参数。
在本实施例的一些可选的实现方式中,装置500还可以进一步包括图5中未示出的迭代单元,被配置成:确定更新步骤的执行次数;响应于确定执行次数等于第一预设次数阈值,再次执行生成多个子网络的步骤。
在本实施例的一些可选的实现方式中,迭代单元进一步被配置成:预测参数更新后的超网络的性能;根据预设的性能与采样结构的对应关系以及预测得到的性能,确定再次执行生成多个子网络的步骤的采样结构。
在本实施例的一些可选的实现方式中,迭代单元进一步被配置成:响应于确定执行生成多个子网络的步骤的次数等于第二预设次数阈值,停止训练超网络。
应当理解,用于训练超网络的装置500中记载的单元501至单元502以及单元502所包括的模块5021至模块5023分别与参考图2中描述的方法中的各个步骤相对应。由此,上文针对用于训练超网络的方法描述的操作和特征同样适用于装置500及其中包含的单元,在此不再赘述。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图6所示,是根据本申请实施例的执行用于训练超网络的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图6所示,该电子设备包括:一个或多个处理器601、存储器602,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图6中以一个处理器601为例。
存储器602即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的执行用于训练超网络的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的执行用于训练超网络的方法。
存储器602作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的执行用于训练超网络的方法对应的程序指令/模块(例如,附图5所示的生成单元501、更新单元502以及更新单元502包括的子网络选取模块5021、超网络训练模块5022和超网络更新模块5023)。处理器601通过运行存储在存储器602中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的执行用于训练超网络的方法。
存储器602可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据执行用于训练超网络的电子设备的使用所创建的数据等。此外,存储器602可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器602可选包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至执行用于训练超网络的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
执行用于训练超网络的方法的电子设备还可以包括:输入装置603和输出装置604。处理器601、存储器602、输入装置603和输出装置604可以通过总线或者其他方式连接,图6中以通过总线连接为例。
输入装置603可接收输入的数字或字符信息,以及产生与执行用于训练超网络的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置604可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,训练得到的超网络精度更高,从训练得到的超网络中采样出的子网络与独立训练相同结构的网络的性能一致。由此,在将本实现方式训练得到的超网络应用到图像处理领域时,基于超网络自动搜索模型结构可以快速地搜索出性能优越的子网络。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (22)
1.一种用于训练超网络的方法,包括:
根据预先建立的超网络的搜索空间,生成多个子网络;
基于所述多个子网络,多次执行以下更新步骤:
从所述多个子网络中选取至少一个子网络;
基于所选取的子网络训练所述超网络,得到第一超网络和第二超网络;
根据所述第一超网络和所述第二超网络,更新所述超网络的参数。
2.根据权利要求1所述的方法,其中,所述从所述多个子网络中选取至少一个子网络,包括:
利用预设的性能预测模型预测所述多个子网络的性能,按照所述性能对所述多个子网络进行排序,所述性能预测模型用于预测网络的性能;
根据所述排序,从所述多个子网络中选取至少一个子网络。
3.根据权利要求2所述的方法,其中,所述根据所述排序,从所述多个子网络中选取至少一个子网络,包括:
在首次选取时,选取位于所述排序第一位的子网络;
在非首次选取时,选取位于所述排序第K位以及第K-1位的子网络,K为第一预设值。
4.根据权利要求3所述的方法,其中,所述基于所选取的子网络训练所述超网络,得到第一超网络和第二超网络,包括:
基于位于所述排序首位的子网络训练所述超网络,将训练后的超网络作为第三超网络;
基于位于所述排序第K位的子网络训练所述第三超网络,得到所述第一超网络。
5.根据权利要求4所述的方法,其中,所述基于所选取的子网络训练所述超网络,得到第一超网络和第二超网络,包括:
基于位于所述排序第K位的子网络训练所述超网络,得到第四超网络;
基于位于所述排序第K-1位的子网络训练所述第四超网络,得到所述第二超网络。
6.根据权利要求5所述的方法,其中,所述根据所述第一超网络和所述第二超网络,更新所述超网络的参数,包括:
确定所述第一超网络提取的第一特征与所述第二超网络提取的第二特征之间的距离;
响应于确定所述距离小于或等于预设距离阈值,利用所述第一超网络或所述第二超网络更新所述第三超网络的参数。
7.根据权利要求6所述的方法,其中,所述根据所述第一超网络和所述第二超网络,更新所述超网络的参数,包括:
响应于确定所述距离大于预设距离阈值,预测所述第一超网络和所述第二超网络的性能;
利用性能最好的超网络更新所述第三超网络的参数。
8.根据权利要求1-7任一项所述的方法,其中,所述方法还包括:
确定所述更新步骤的执行次数;
响应于确定所述执行次数等于预设次数阈值,再次执行生成多个子网络的步骤。
9.根据权利要求8所述的方法,其中,在再次执行生成多个子网络的步骤前,所述方法还包括:
预测参数更新后的超网络的性能;
根据预设的性能与采样结构的对应关系以及预测得到的性能,确定再次执行生成多个子网络的步骤的采样结构。
10.根据权利要求8或9所述的方法,其中,所述方法还包括:
响应于确定执行生成多个子网络的步骤的次数等于第二预设阈值,停止训练所述超网络。
11.一种用于训练超网络的装置,包括:
生成单元,被配置成根据预先建立的超网络的搜索空间,生成多个子网络;
更新单元,被配置成基于所述多个子网络,多次通过以下模块执行更新步骤:
子网络选取模块,被配置成从所述多个子网络中选取至少一个子网络;
超网络训练模块,被配置成基于所选取的子网络训练所述超网络,得到第一超网络和第二超网络;
超网络更新模块,被配置成根据所述第一超网络和所述第二超网络,更新所述超网络的参数。
12.根据权利要求11所述的装置,其中,所述子网络选取模块进一步被配置成:
利用预设的性能预测模型预测所述多个子网络的性能,按照所述性能对所述多个子网络进行排序,所述性能预测模型用于预测网络的性能;
根据所述排序,从所述多个子网络中选取至少一个子网络。
13.根据权利要求12所述的装置,其中,所述子网络选取模块进一步被配置成:
在首次选取时,选取位于所述排序第一位的子网络;
在非首次选取时,选取位于所述排序第K位以及第K-1位的子网络,K为第一预设值。
14.根据权利要求13所述的装置,其中,所述超网络训练模块进一步被配置成:
基于位于所述排序第一位的子网络训练所述超网络,将得到的超网络作为第三超网络;
基于位于所述排序第K位的子网络训练所述第三超网络,得到所述第一超网络。
15.根据权利要求14所述的装置,其中,所述超网络训练模块进一步被配置成:
基于位于所述排序第K位的子网络训练所述超网络,得到第四超网络;
基于位于所述排序第K-1位的子网络训练所述第四超网络,得到所述第二超网络。
16.根据权利要求15所述的装置,其中,所述超网络更新模块进一步被配置成:
确定所述第一超网络提取的第一特征与所述第二超网络提取的第二特征之间的距离;
响应于确定所述距离小于或等于预设距离阈值,利用所述第一超网络或所述第二超网络更新所述第三超网络的参数。
17.根据权利要求16所述的装置,其中,所述超网络更新模块进一步被配置成:
响应于确定所述距离大于预设距离阈值,预测所述第一超网络和所述第二超网络的性能;
利用性能最好的超网络更新所述第三超网络的参数。
18.根据权利要求10-17任一项所述的装置,其中,所述装置还包括迭代单元,被配置成:
确定所述更新步骤的执行次数;
响应于确定所述执行次数等于第一预设次数阈值,再次执行生成多个子网络的步骤。
19.根据权利要求18所述的装置,其中,所述迭代单元进一步被配置成:
预测参数更新后的超网络的性能;
根据预设的性能与采样结构的对应关系以及预测得到的性能,确定再次执行生成多个子网络的步骤的采样结构。
20.根据权利要求18或19所述的装置,其中,所述迭代单元进一步被配置成:
响应于确定执行生成多个子网络的步骤的次数等于第二预设次数阈值,停止训练所述超网络。
21.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010478425.9A CN111639752B (zh) | 2020-05-29 | 2020-05-29 | 用于训练超网络的方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010478425.9A CN111639752B (zh) | 2020-05-29 | 2020-05-29 | 用于训练超网络的方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111639752A true CN111639752A (zh) | 2020-09-08 |
CN111639752B CN111639752B (zh) | 2023-09-26 |
Family
ID=72332278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010478425.9A Active CN111639752B (zh) | 2020-05-29 | 2020-05-29 | 用于训练超网络的方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111639752B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133651A (zh) * | 2017-05-12 | 2017-09-05 | 太原理工大学 | 基于超网络判别子图的功能磁共振影像数据分类方法 |
US20180048566A1 (en) * | 2016-08-15 | 2018-02-15 | Netflix, Inc. | Synthetic supernet compression |
US20190026639A1 (en) * | 2017-07-21 | 2019-01-24 | Google Llc | Neural architecture search for convolutional neural networks |
CN110288084A (zh) * | 2019-06-06 | 2019-09-27 | 北京小米智能科技有限公司 | 超网络训练方法和装置 |
CN110543944A (zh) * | 2019-09-11 | 2019-12-06 | 北京百度网讯科技有限公司 | 神经网络结构搜索方法、装置、电子设备和介质 |
CN110782034A (zh) * | 2019-10-31 | 2020-02-11 | 北京小米智能科技有限公司 | 神经网络的训练方法、装置及存储介质 |
CN110956262A (zh) * | 2019-11-12 | 2020-04-03 | 北京小米智能科技有限公司 | 超网络训练方法及装置、电子设备、存储介质 |
-
2020
- 2020-05-29 CN CN202010478425.9A patent/CN111639752B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180048566A1 (en) * | 2016-08-15 | 2018-02-15 | Netflix, Inc. | Synthetic supernet compression |
CN107133651A (zh) * | 2017-05-12 | 2017-09-05 | 太原理工大学 | 基于超网络判别子图的功能磁共振影像数据分类方法 |
US20190026639A1 (en) * | 2017-07-21 | 2019-01-24 | Google Llc | Neural architecture search for convolutional neural networks |
CN110288084A (zh) * | 2019-06-06 | 2019-09-27 | 北京小米智能科技有限公司 | 超网络训练方法和装置 |
CN110543944A (zh) * | 2019-09-11 | 2019-12-06 | 北京百度网讯科技有限公司 | 神经网络结构搜索方法、装置、电子设备和介质 |
CN110782034A (zh) * | 2019-10-31 | 2020-02-11 | 北京小米智能科技有限公司 | 神经网络的训练方法、装置及存储介质 |
CN110956262A (zh) * | 2019-11-12 | 2020-04-03 | 北京小米智能科技有限公司 | 超网络训练方法及装置、电子设备、存储介质 |
Non-Patent Citations (3)
Title |
---|
ZAN SHEN 等: "BS-NAS: Broadening-and-Shrinking One-Shot NAS with Searchable Numbers of Channels", 《ARXIV:2003.09821V1》, pages 1 - 17 * |
杨欣蓉: "基于超网络的网络舆情分析研究与应用", 《中国优秀硕士学位论文全文数据库社会科学Ⅱ辑》, no. 02, pages 123 - 43 * |
蒋冰青: "基于QUATRE算法的多目标卷积神经网络搜索方法研究", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 02, pages 140 - 231 * |
Also Published As
Publication number | Publication date |
---|---|
CN111639752B (zh) | 2023-09-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111582453B (zh) | 生成神经网络模型的方法和装置 | |
CN111667054B (zh) | 生成神经网络模型的方法、装置、电子设备以及存储介质 | |
CN111539479B (zh) | 生成样本数据的方法和装置 | |
CN111539514B (zh) | 用于生成神经网络的结构的方法和装置 | |
CN110633797B (zh) | 网络模型结构的搜索方法、装置以及电子设备 | |
CN111582454B (zh) | 生成神经网络模型的方法和装置 | |
CN111639753B (zh) | 用于训练图像处理超网络的方法、装置、设备以及存储介质 | |
CN111242306B (zh) | 量子主成分分析的方法、装置、电子设备以及计算机可读存储介质 | |
CN111667057B (zh) | 用于搜索模型结构的方法和装置 | |
CN111582479B (zh) | 神经网络模型的蒸馏方法和装置 | |
CN112559870B (zh) | 多模型融合方法、装置、电子设备和存储介质 | |
CN111950254B (zh) | 搜索样本的词特征提取方法、装置、设备以及存储介质 | |
CN111667056B (zh) | 用于搜索模型结构的方法和装置 | |
CN111563592B (zh) | 基于超网络的神经网络模型生成方法和装置 | |
CN111652354B (zh) | 用于训练超网络的方法、装置、设备以及存储介质 | |
CN111563593B (zh) | 神经网络模型的训练方法和装置 | |
CN111582477B (zh) | 神经网络模型的训练方法和装置 | |
CN110569969A (zh) | 网络模型结构的采样方法、装置以及电子设备 | |
CN110569973A (zh) | 网络结构的搜索方法、装置以及电子设备 | |
CN111680599B (zh) | 人脸识别模型处理方法、装置、设备和存储介质 | |
CN111522888B (zh) | 挖掘兴趣点之间的竞争关系的方法和装置 | |
CN111582452A (zh) | 生成神经网络模型的方法和装置 | |
CN111783951A (zh) | 基于超网络的模型获取方法、装置、设备及存储介质 | |
CN111639752B (zh) | 用于训练超网络的方法、装置、设备以及存储介质 | |
CN111563591B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |