一种网络模型训练方法、装置及存储介质
技术领域
本申请属于网络模型技术领域,具体涉及一种网络模型训练方法、装置及存储介质。
背景技术
深度学习近年迅速发展,已经广泛应用于图像处理和自然语言处理等领域。基于深度学习的网络模型被广泛应用,如卷积神经网络、分割网络等,在使用这些网络模型时,需要事先利用样本数据对其进行训练,使其能满足需求,这其中就涉及确定模型—训练模型—使用模型等过程。当前的模型训练方法大都是基于大量样本数据对确定的初始网络模型进行多次训练,通过不断的优化初始网络模型的网络参数(也即权重)的方式来实现。该训练方法训练出来的模型整体来说,性能并不是最优的,还存在一定的改进空间,例如,现有的图像语义分割网络,例如,FCN(Fully Convolutional Networks)、CRF-RNN(Conditional Random Fields-Recurrent Neural Networks)等,在分割区域边缘处的训练识别效果比较差,语义分割准确率低。
发明内容
鉴于此,本申请的目的在于提供一种网络模型训练方法、装置及存储介质,以提高网络模型的性能,让该模型有更优的效果。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供了一种网络模型训练方法,包括:获取携带有标注的样本数据;利用所述样本数据对当前网络模型进行训练;获取训练后的所述当前网络模型中的各个层结构的权重变化量;根据所述各个层结构的权重变化量变更所述当前网络模型的层结构;利用所述样本数据对层结构变更后的所述当前网络模型进行训练。
本申请实施例中,在对网络模型进行训练时,先利用样本数据对网络模型进行训练,后获取训练后的网络模型中的各个层结构的权重变化量,并基于获取到的各个层结构的权重变化量变更网络模型的层结构,然后再利用样本数据对层结构变更后的网络模型进行训练,通过调整网络模型的网络结构,以及各个层级的参数,以得到性能更优的网络模型,让该模型有更优的效果。
结合第一方面实施例的一种可能的实施方式,根据所述各个层结构的权重变化量变更所述当前网络模型的层结构,包括:根据所述各个层结构的权重变化量,选出权重变化量大于第一阈值的目标层结构;若所述目标层结构为中间层,在所述目标层结构的前面和/或后面插入预设层结构;若所述目标层结构为第一层,在所述目标层结构的后面插入预设层结构;若所述目标层结构为最后一层,在所述目标层结构的前面插入预设层结构。本申请实施例中,通过在权重变化量大于第一阈值的目标层结构的前面和/或后面插入预设层结构来改变网络模型的结构,由于权重变化量值较大,说明该目标层结构对损失值的影响较大,结构还可以进一步优化,使得性能更优。
结合第一方面实施例的一种可能的实施方式,根据所述各个层结构的权重变化量,选出权重变化量大于第一阈值的目标层结构,包括:根据所述各个层结构的权重变化量,选出权重变化量大于所述第一阈值的层结构;确定选出的层结构中权重变化量值最大的层结构为所述目标层结构。本申请实施例中,只在权重变化量最大,且大于第一阈值目标层结构的前面和/或后面插入预设层结构来改变网络模型的结构,以此来较少层结构的数量,进而减少计算量,提高优化效率。
结合第一方面实施例的一种可能的实施方式,在所述当前网络模型不为初始网络模型时,根据所述各个层结构的权重变化量变更所述当前网络模型的层结构,包括:根据所述各个层结构的权重变化量,选出权重变化量小于第二阈值的新增的层结构,得到目标新增层结构,其中,所述新增的层结构为在所述初始网络模型中新插入的层结构;删除所述目标新增层结构,或者更换所述目标新增层结构。本申请实施例中,若当前网络模型不为初始网络模型时,通过删除权重变化量小于第二阈值的新增的层结构,或者更换权重变化量小于第二阈值的新增的层结构以此来变更当前网络模型的层结构,删除新增加的对网络模型的性能影响较小的层结构,以提高训练效率。
结合第一方面实施例的一种可能的实施方式,根据所述各个层结构的权重变化量,选出权重变化量小于第二阈值的新增的层结构,得到目标新增层结构,包括:根据所述各个层结构的权重变化量,选出权重变化量小于所述第二阈值的新增的层结构;确定选出的新增的层结构中权重变化量值最小的层结构为所述目标新增层结构。本申请实施例中,若当前网络模型不为初始网络模型时,通过删除权重变化量最小,且小于第二阈值的目标新增层结构,或者更换权重变化量最小且小于第二阈值的目标新增层结构,以此来变更当前网络模型的层结构,删除新增加的对网络模型的性能影响较小的层结构,通过慢慢的更变网络模型的层机构,避免反复插入、删除或更换的次数,以提高训练效率。
结合第一方面实施例的一种可能的实施方式,在利用所述样本数据对层结构变更后的所述当前网络模型进行训练之后,所述方法还包括:确定训练后的所述层结构变更后的所述当前网络模型满足预设条件;从所有训练得到的网络模型中确定出最优网络模型。本申请实施例中,在确定训练后的层结构变更后的网络模型满足预设条件时,便通过对比所有训练得到的网络模型的参数,从中确定出最优网络模型,以此保证最终得到的模型的性能最优。
结合第一方面实施例的一种可能的实施方式,在利用所述样本数据对层结构变更后的所述当前网络模型进行训练之后,所述方法还包括:确定训练后的所述层结构变更后的所述当前网络模型不满足预设条件;获取训练后的所述层结构变更后的所述当前网络模型中的各个层结构的权重变化量;根据所述层结构变更后的所述当前网络模型中的各个层结构的权重变化量变更所述层结构变更后的所述当前网络模型的层结构;利用所述样本数据对层结构再次变更后的所述当前网络模型进行训练。本申请实施例中,在对变更了层结构的网络模型进行训练后,判断该模型是否满足预设条件,若不满足时,则继续变更层结构,并继续对再次变更层结构的模型进行训练,以便训练得到性能最优的网络模型。
结合第一方面实施例的一种可能的实施方式,所述当前网络模型为U-net网络,所述样本数据为CT扫描的体数据,对应的标注为血管体标注。
第二方面,本申请实施例还提供了一种网络模型训练装置,包括:样本获取模块、训练模块、权重变化量获取模块以及变更模块;样本获取模块,用于获取携带有标注的样本数据;训练模块,用于利用所述样本数据对当前网络模型进行训练;权重变化量获取模块,用于获取训练后的所述当前网络模型中的各个层结构的权重变化量;变更模块,用于根据所述各个层结构的权重变化量变更所述当前网络模型的层结构;所述训练模块,还用于利用所述样本数据对层结构变更后的所述当前网络模型进行训练。
第三方面,本申请实施例还提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器连接;所述存储器用于存储程序;所述处理器用于调用存储于所述存储器中的程序,以执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
第四方面,本申请实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被计算机运行时执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
图1示出了本申请实施例提供的一种网络模型训练方法的流程示意图。
图2示出了本申请实施例提供的一种网络模型训练方法的原理示意图。
图3示出了本申请实施例提供的一种网络模型训练装置的模块示意图。
图4示出了本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
第一实施例
请参阅图1,为本申请实施例提供的一种网络模型训练方法,下面将结合图1对其所包含的步骤进行说明。
步骤S101:获取携带有标注的样本数据。
在对网络模型进行训练时,首先需要获取训练模型的样本数据,由于网络模型训练的过程是有监督的学习过程,因此该样本数据需要为携带有标注(标签)的样本数据,这样训练出的网络模型才能满足要求。例如,在冠脉分割中,其样本数据为CT扫描的体数据,对应的标注为血管体标注。
其中,需要说明的是,不同的应用场景下,对应的样本数据不同,例如,对于冠脉分割时,其样本数据为CT扫描的体数据,对应的标注为血管体标注,对应的网络模型可以是分割网络为U-net网络;而对于图像分类时,其样本数据为图像,对应的标注为图像中的物体类别的标注,对应的网络模型可以是多标签分类模型。
其中,样本数据按照作用不同可以分为用于训练的样本和用于验证的样本,也即在获得携带有标注的样本数据后,可以按照一定的比例如3:1:1分别将样本数据划分为训练集、交叉验证集和测试集,然后对需要训练的网络模型进行训练。其中,交叉验证验证集,顾名思义,就是重复的使用数据,把得到的样本数据进行切分,组合为不同的训练集和测试集,用训练集来训练模型,用测试集来评估模型预测的好坏。在此基础上可以得到多组不同的训练集和测试集,某次训练集中的某样本在下次可能成为测试集中的样本,即所谓“交叉”。
步骤S102:利用所述样本数据对当前网络模型进行训练。
在获取到样本数据后,利用获取到样本数据对选定的当前网络模型进行训练。其中,不同的应用需求所对应的网络模型不同,也即不同的应用需求下,所选用的网络模型存在差异,例如在冠脉分割中,其网络模型可以是U-net网络;在图像分类时,其网络模型可以是多标签分类模型。其中,当前网络模型可以是根据应用需求所选定的初始网络模型,也可以是在所选的初始网络模型的基础上变更了层结构的初始网络模型。
步骤S103:获取训练后的所述当前网络模型中的各个层结构的权重变化量。
利用样本数据对当前网络模型进行训练后,获取训练后的所述当前网络模型中的各个层结构的权重变化量。由于所有的网络模型都对应有损失函数,也就对用有损失值,在网络模型BP(Back Propagation,逆向传播)的时候,LOSS值会回传,进而可以求得每个层结构的权重,通过前后权重的变化可以求得权重变化量dw。其中,Loss=f(O,L),O是网络的输出,L是标注,f是loss函数,Loss是计算的损失值。
其中,需要说明的是,上述的每个层结构的权重变化量可以是一次训练周期(其中,一次训练周期是值,所有的样本数据均使用一次)后的权重变化量,例如,对于层结构A来说,有30个样本数据,假设每使用10个样本数据会更新一次层结构的权重,那么一共可以得到4次权重(初始权重a1、使用第10个样本数据时更新的权重a2、使用第20个样本数据时更新的权重a3、使用第30个样本数据时更新的权重a4),则该权重变化量可以是用最后一次的权重a4减去初始权重a1,即(a4-a1),也可以是(|a2-a1|+|a3-a2|+|a4-a3|)/3。当然也可以是若干次训练后的权重变化量,例如对于层结构A来说,假设初始时的权重为A0,第一次训练周期后得到的权重为A1,第二次训练周期后得到的权重为A2,第三次训练周期后得到的权重为A3,则层结构A的权重变化量可以为(A3-A0),当然也可以是(|A1-A0|+|A2-A1|+|A3-A2|)/3。上述仅以若干训练周期为3次训练周期为例进行示例的,其数值可以是除3外的其他数值,如2、4、5等数值。
步骤S104:根据所述各个层结构的权重变化量变更所述当前网络模型的层结构。
在得到训练后的所述当前网络模型中的各个层结构的权重变化量后,根据所述各个层结构的权重变化量变更所述当前网络模型的层结构。
作为一种实施方式,根据所述各个层结构的权重变化量变更所述当前网络模型的层结构的过程可以是:根据所述各个层结构的权重变化量,选出权重变化量大于第一阈值的目标层结构;若所述目标层结构为第一层,在所述目标层结构的后面插入预设层结构;若所述目标层结构为最后一层,在所述目标层结构的前面插入预设层结构;若所述目标层结构为中间层,在所述目标层结构的前面和/或后面插入预设层结构。一种实施方式下,根据所述各个层结构的权重变化量,选出权重变化量大于第一阈值的目标层结构可以是:所有权重变化量大于第一阈值的层结构均为目标层结构,也即该实施方式下目标层结构的数量为至少一个;另一种实施方式下,根据所述各个层结构的权重变化量,选出权重变化量大于第一阈值的目标层结构可以是:根据所述各个层结构的权重变化量,选出权重变化量大于所述第一阈值的层结构;确定选出的层结构中权重变化量值最大的层结构为所述目标层结构,也即该实施方式下,目标层结构的数量只有一个。
为了便于理解,下面举例进行说明,假设当前网络模型的层结构为5层,依次为A层、B层、C层、D层、E层,其中,A层为第一层,B层、C层、D层为中间层,E层为最后一层。假设选出的权重变化量大于第一阈值的目标层结构为A层、C层和E层,则在变更当前网络模型的层结构时,在A层的后面插入预设层结构,假设为X层,在C层的前面和后面都插入预设层结构,假设为Y层,在E层的前面插入预设层结构,假设为Z层,此时变更后的网络模型的层结构为9层,分别为A层、X层、B层、Y层、C层、Y层、D层、Z层、E层。
上述示例方式是将所有权重变化量大于第一阈值的层结构均作为目标层结构。作为另一种实施方式,只在权重变化量值最大,且权重变化量大于所述第一阈值的层结构的前面和后面都插入预设层结构,例如,从上述选出的权重变化量大于第一阈值的A层、C层和E层中选出权重变化量值最大的层结构为目标层结构,假设为C层,则仅在C层的前面和/或后面都插入预设层结构,例如在C层的前面和后面都插入预设层结构,假设为Y层。
其中,若目标层结构为中间层时,其可以是仅在目标层结构的前面插入预设层结构,也可以是仅在目标层结构的后面插入预设层结构,也可以是在目标层结构的前面和后面都插入预设层结构。
其中,所插入的预设层结构来自于预设层结构集中的层结构,如预设层结构集为{X-ception、Res、BottelNeck},则所插入的预设层结构可以是X-ception、Res或BottelNeck。不同的目标层结构所插入的预设层机构可以相同也可以不同,例如,在A层的后面插入X-ception这一层结构、在C层的前面插入Res这一层结构,在C层的后面插入BottelNeck这一层结构,在E层的前面插入Res这一层结构。其中,目标层结构的前后和/或后面所插入的预设层结构的数量可以是一个,也可以是两个或两个以上。可以理解的是,上述的预设层结构集仅是为了便于理解所示出的示例而已,并不能将其理解成是对本申请的限制,其预设层结构集中的预设层结构并不限于上述的示例。
若所述当前网络模型不为初始网络模型时,作为另一种实施方式,根据所述各个层结构的权重变化量变更所述当前网络模型的层结构可以是:根据所述各个层结构的权重变化量,选出权重变化量小于第二阈值的新增的层结构,得到目标新增层结构;删除所述目标新增层结构,或者更换所述目标新增层结构。一种实施方式下,根据所述各个层结构的权重变化量,选出权重变化量小于第二阈值的新增的层结构,得到目标新增层结构的过程可以是:将所有权重变化量小于第二阈值的新增的层结构均作为目标新增层结构,也即该方式下得到的目标新增层结构的数量为至少一个;另一种实施方式下,该过程可以是:根据所述各个层结构的权重变化量,选出权重变化量小于所述第二阈值的新增的层结构;确定选出的新增的层结构中权重变化量值最小的层结构为所述目标新增层结构。也即该实施方式下,目标新增层结构的数量只有一个。
其中,所述新增的层结构为在所述初始网络模型中新插入的层结构,为了便于理解,假设初始网络模型的层结构为5层,依次为A层、B层、C层、D层、E层,假设当前网络模型的层机构为9层,分别为A层、X层、B层、Y层、C层、Y层、D层、Z层、E层,则新增的层结构为X层、位于C层前面的Y层、位于C层后面的Y层以及Z层。假设选出的权重变化量小于第二阈值的目标新增层结构为X层和位于C层后面的Y层,则变更该目标新增层结构可以是将X层和位于C层后面的Y层均删除;也可以是将X层删除,替换位于C层后面的Y层;也可以是替换X层,将位于C层后面的Y层删除,也可以是将X层和位于C层后面的Y层均替换。假设X层为BottelNeck这一层结构,则替换时,可以将其替换为Res、X-ception;假设位于C层后面的Y层为Res这一层结构,则替换时,可以将其替换为BottelNeck、X-ception。
上述示例方式是将所有权重变化量小于第二阈值的新增的层结构均作为目标新增层结构。作为另一种实施方式,只将权重变化量值最小,且权重变化量小于所述第二阈值的新增的层结构作为目标新增层结构。例如,从上述选出的权重变化量小于第二阈值的X层和位于C层后面的Y层中选出权重变化量值最小的层结构为目标新增层结构,假设为位于C层后面的Y层,则在变更的当前网络模型的层结构时,仅将位于C层后面的Y层替换掉或者删除。
其中,第二阈值和第一阈值可以通过预设规则确定,且第二阈值小于第一阈值。例如,确定第一阈值的预设规则可以是a*w,确定第二阈值的预设规则可以是b*w,其中,a、b均为系数,且b小于a,例如,a为大于1的系数,b为小于1的系数;w为一次训练周期后,求得的各个层结构权重变化量的平均值,或者为若干训练周期后,求得的各个层结构权重变化量平均值的平均值。例如,以上述的A层、B层、C层、D层、E层结构为例,当w为一次训练周期后,求得的各个层结构权重变化量的平均值时,假设一次训练周期后,层结构A、B、C、D、E对应的权重变化量分别为A1、B1、C1、D1、E1,则其平均值为(A1+B1+C1+D1+E1)/5,则该种实施方式下w为(A1+B1+C1+D1+E1)/5,对应的第一阈值可以是1.5*(A1+B1+C1+D1+E1)/5;第二阈值可以是0.8*(A1+B1+C1+D1+E1)/5。当w为若干训练周期后,求得的各个层结构权重变化量平均值的平均值时,以若干训练周期为2次训练周期为例,假设第一次训练周期后,层结构A、B、C、D、E对应的权重变化量分别为A1、B1、C1、D1、E1,假设第二次训练周期后,层结构A、B、C、D、E对应的权重变化量分别为A2、B2、C2、D2、E2,则w为[(A1+B1+C1+D1+E1)/5+(A2+B2+C2+D2+E2)/5]/2,对应的第一阈值可以是1.2*[(A1+B1+C1+D1+E1)/5+(A2+B2+C2+D2+E2)/5]/2;第二阈值可以是0.9*[(A1+B1+C1+D1+E1)/5+(A2+B2+C2+D2+E2)/5]/2。由上述的示例不难看出,第一阈值和第二阈值是实时变化的,并不是一个固定的值。
其中,需要说明的是,上述示例的a、b的具体数值仅是为了便于理解,其还可以是其他数值,不能将其理解成是对本申请的限制。
其中,需要说明的是,现有的训练方式是不会改变网络模型的结构的,只是在训练的过程中优化各层结构的权重变化量,例如初始网络模型的层结构为5层,则训练好的网络模型的层结构仍然还是为5层;而本申请所采用的训练方法通过不断的调整网络模型的网络结构,以及各个层级的参数,以此确定出性能最优的网络模型,由于刚开始选定的初始网络模型的层结构并不是最优的,因此该方法使得训练出的网络模型的性能要优于现有方法训练出的网络模型的性能。
步骤S105:利用所述样本数据对层结构变更后的所述当前网络模型进行训练。
在根据所述各个层结构的权重变化量变更所述当前网络模型的层结构后,继续利用样本数据对层结构变更后的所述当前网络模型进行训练,直至训练结束。例如,继续用样本数据对上述的层结构变更后为9层的网络模型进行训练。
作为另一种实施方式,在利用所述样本数据对层结构变更后的所述当前网络模型进行训练之后,所述方法还包括:判断训练后的所述层结构变更后的所述当前网络模型是否满足预设条件;若不满足预设条件,则重复上述的步骤S103-S105,也即在确定训练后的所述层结构变更后的所述当前网络模型不满足预设条件时;获取训练后的所述层结构变更后的所述当前网络模型中的各个层结构的权重变化量;根据所述层结构变更后的所述当前网络模型中的各个层结构的权重变化量变更所述层结构变更后的所述当前网络模型的层结构;利用所述样本数据对层结构再次变更后的所述当前网络模型进行训练。若满足预设条件,则从所有训练得到的网络模型中确定出最优网络模型,也即在确定训练后的所述层结构变更后的所述当前网络模型满足预设条件时,从所有训练得到的网络模型中确定出最优网络模型。其中,从所有训练得到的网络模型中确定出最优网络模型的过程为:获取所有训练得到的网络模型各自对应的损失值;从所有训练得到的网络模型中筛选出损失值最小的网络模型;确定所述损失值最小的网络模型为最优网络模型。
为了便于理解上述过程,下面将结合图2所示的示意图进行举例说明,刚开始时,用样本数据对初始网络模型进行训练,获取训练后的初始网络模型中的各个层结构的权重变化量,然后根据各个层结构的权重变化量变更初始网络模型的层结构(变更后为第一网络模型),然后利用样本数据对第一网络模型进行训练,然后判断训练后的第一网络模型是否满足预设条件,若不满足,则获取训练后的第一网络模型中的各个层结构的权重变化量,然后根据各个层结构的权重变化量变更第一网络模型的层结构(变更后为第二网络模型),然后利用样本数据对第二网络模型进行训练,然后判断训练后的第二网络模型是否满足预设条件,若不满足,获取训练后的第二网络模型中的各个层结构的权重变化量,然后根据各个层结构的权重变化量变更第二网络模型的层结构(变更后为第三网络模型),然后利用样本数据对第三网络模型进行训练,然后判断训练后的第三网络模型是否满足预设条件,若不满足则继续循环下去,直至满足预设条件为止,若满足,则停止迭代,并从训练得到的所有网络模型中选出最优网络模型,如此例中从训练后的初始网络模型、训练后第一网络模型、训练后第二网络模型以及训练后第三网络模型中选出最优网络模型,如为训练后第三网络模型。
其中,上述的预设满足条件可以是迭代次数(其中,一次迭代为一次训练周期)满足条件,例如迭代次数为100次时则满足预设条件。当然该预设满足条件也可以是网络模型的损失值满足设定要求,只要训练的网络模型的损失值小于或者大于设置的阈值时,则满足阈值条件。由于有可能该网络模型的损失值永远无法逼近设定的阈值,导致训练一直持续下去,无法结束,作为另一种实施方式,该预设条件也可以是综合上述两种方式即迭代次数+损失值的方式,如设置迭代次数为100次时则满足预设条件,同时也设置损失值小于或者大于设置的阈值时,满足阈值条件,这样迭代的过程中,只要损失值达到设置阈值就结束,而不用管是否迭代到100次,当然若迭代到100次,损失值仍没有达到设置的阈值,由于迭代次数达到的,同样也结束。
第二实施例
本申请实施例还提供了一种网络模型训练装置100,如图3所示。该网络模型训练装置100包括:样本获取模块110、训练模块120、权重变化量获取模块130、变更模块140。
其中,样本获取模块110,用于获取携带有标注的样本数据。
其中,训练模块120,用于利用所述样本数据对当前网络模型进行训练。
其中,权重变化量获取模块130,用于获取训练后的所述当前网络模型中的各个层结构的权重变化量。
其中,变更模块140,用于根据所述各个层结构的权重变化量变更所述当前网络模型的层结构。可选地,所述变更模块140具体用于:根据所述各个层结构的权重变化量,选出权重变化量大于第一阈值的目标层结构;若所述目标层结构为中间层,在所述目标层结构的前面和/或后面插入预设层结构;若所述目标层结构为第一层,在所述目标层结构的后面插入预设层结构;若所述目标层结构为最后一层,在所述目标层结构的前面插入预设层结构。以及还具体用于:根据所述各个层结构的权重变化量,选出权重变化量大于所述第一阈值的层结构;确定选出的层结构中权重变化量值最大的层结构为所述目标层结构。在所述当前网络模型不为初始网络模型时,可选地,所述变更模块140具体用于:根据所述各个层结构的权重变化量,选出权重变化量小于第二阈值的新增的层结构,得到目标新增层结构,其中,所述新增的层结构为在所述初始网络模型中新插入的层结构;删除所述目标新增层结构,或者更换所述目标新增层结构。以及还具体用于:根据所述各个层结构的权重变化量,选出权重变化量小于所述第二阈值的新增的层结构;确定选出的新增的层结构中权重变化量值最小的层结构为所述目标新增层结构。
所述训练模块,还用于利用所述样本数据对层结构变更后的所述当前网络模型进行训练。
可选地,所述网络模型训练装置100还包括:第一确定模块以及第二确定模块;
第一确定模块,用于确定训练后的所述层结构变更后的所述当前网络模型满足预设条件。
第二确定模块,用于从所有训练得到的网络模型中确定出最优网络模型。
可选地,所述网络模型训练装置100还包括:第三确定模块。
第三确定模块,用于确定训练后的所述层结构变更后的所述当前网络模型不满足预设条件。
此时,所述权重变化量获取模块130,还用于获取训练后的所述层结构变更后的所述当前网络模型中的各个层结构的权重变化量。
所述变更模块140,还用于根据所述层结构变更后的所述当前网络模型中的各个层结构的权重变化量变更所述层结构变更后的所述当前网络模型的层结构;
所述训练模块120,还用于利用所述样本数据对层结构再次变更后的所述当前网络模型进行训练。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本申请实施例所提供的网络模型训练装置100,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
第三实施例
如图4所示,图4示出了本申请实施例提供的一种电子设备200的结构框图。所述电子设备200包括:收发器210、存储器220、通讯总线230以及处理器240。
所述收发器210、所述存储器220、处理器240各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线230或信号线实现电性连接。其中,收发器210用于收发数据。存储器220用于存储计算机程序,如存储有图3中所示的软件功能模块,即网络模型训练装置100。其中,网络模型训练装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器220中或固化在所述电子设备200的操作系统(operating system,OS)中的软件功能模块。所述处理器240,用于执行存储器220中存储的可执行模块,例如网络模型训练装置100包括的软件功能模块或计算机程序。例如,处理器240,用于获取携带有标注的样本数据;以及还用于利用所述样本数据对当前网络模型进行训练;以及还用于获取训练后的所述当前网络模型中的各个层结构的权重变化量;以及还用于根据所述各个层结构的权重变化量变更所述当前网络模型的层结构;以及还用于利用所述样本数据对层结构变更后的所述当前网络模型进行训练。
其中,存储器220可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器240可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器240也可以是任何常规的处理器等。
其中,上述的电子设备200,包括但不限于网络服务器、数据库服务器、云端服务器等。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
第四实施例
本申请实施例还提供了一种非易失性计算机可读取存储介质(以下简称存储介质),其上存储有计算机程序,该计算机程序被计算机如上述的电子设备200运行时执行本申请实施例所提供的网络模型训练方法所包含的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。