神经网络的训练方法和装置与流程

    专利查询2023-06-02  111



    1.本技术涉及人工智能领域,具体的,涉及一种神经网络的训练方法和装置。


    背景技术:

    2.深度学习技术在计算机视觉中取得了巨大进展,以图形识别为例,深度神经网络模型自2012年就以巨大的优势在imagenet大规模图形识别竞赛(imagenet large scale visual recognition challenge,ilsvrc)中领先传统计算机视觉方法。imagenet(ilsvrc 2012)数据集大约有128万多张图片,使用resnet50神经网络在8块v100计算卡上训练90轮大约需要8小时。openai发布的gpt-3模型大约有1750亿个参数,使用45tb的数据进行训练,训练一次需要花费1300万美元。随着数据集规模越来越大,网络模型参数越来越多,在获得了更高精度的模型的同时,训练模型所花费的时间和金钱也越来越多。因此如何加速神经网络的训练,成为亟待解决的问题。


    技术实现要素:

    3.本技术提供一种神经网络的训练方法和装置,可以实现在迭代步维度对神经网络的参数组进行细粒度控制,在训练加速的同时提升了训练精度。
    4.第一方面,提供了一种神经网络的训练方法,该方法包括:获取待训练的神经网络;对待训练的神经网络的参数进行分组,以得到m组参数,m为大于或等于1的正整数;获取采样概率分布和训练迭代步排布方式,采样概率分布用于表征在每个训练迭代步中m组参数中的每组参数被采样的概率,训练迭代步排布方式包括间隔排布和周期排布;根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更;根据被冻结参数组或被停更的参数组对待训练的神经网络进行训练。
    5.本技术实施例的神经网络的训练方法在迭代步的维度对神经网络的参数组进行处理,实现对加速过程的细粒度控制,在训练加速的同时,提升训练精度。通过训练迭代步排布方式和采样概率分布对参数组进行采样和处理,在训练开销和训练精度之间可以更加灵活地选择,例如可以根据每一组参数的具体开销占比确定相应的采样概率。
    6.结合第一方面,在一些可能的实现方式中,根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更,包括:根据训练迭代步排布方式确定第一迭代步,第一迭代步为待采样的迭代步;根据采样概率分布确定第一迭代步中被采样的第m组参数,m小于或等于m-1;冻结第一迭代步中的第m组参数至第一组参数,冻结第一迭代步中的第m组参数至第一组参数表示对第m组参数至第一组参数不进行梯度计算,不进行参数更新。
    7.根据采样概率分布确定部分参数组进行冻结,不进行梯度计算,不进行参数更新,由此可以实现对神经网络训练的加速。对于冻结的参数组,在一个周期内,后续迭代步的参数组无需用到之前被冻结参数组的参数,由此可以避免动量偏移的问题。
    8.结合第一方面,在一些可能的实现方式中,根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更,包括:根据训练迭代步排布方式确定第一迭代步,第
    一迭代步为待采样的迭代步;根据采样概率分布确定第一迭代步中被采样的第m组参数,m小于或等于m-1;停更第一迭代步中的第m组参数至第一组参数,停更第一迭代步中的第m组参数至第一组参数表示对第m组参数至第一组参数进行梯度计算,不进行参数更新。
    9.根据采样概率分布确定部分参数组进行冻结,进行梯度计算,但不进行参数更新,由此可以实现对神经网络训练的精度提升。对于停更的参数组,依然进行梯度计算,使后续的迭代步的相应参数组的参数可以保持更新,由此可以避免动量偏移的问题。
    10.结合第一方面,在一些可能的实现方式中,当训练迭代步排布方式为间隔排布时,根据训练迭代步排布方式确定第一迭代步,包括:确定第一间隔;在多个训练迭代步中,每隔一个第一间隔确定一个或多个第一迭代步。
    11.结合第一方面,在一些可能的实现方式中,当训练迭代步排布方式为周期排布时,根据训练迭代步排布方式确定第一迭代步,包括:确定第一迭代步的数量为m-1;根据第一迭代步的数量和第一比例确定第一周期,第一周期包括第一迭代步和整网训练的迭代步,第一比例为第一迭代步在第一周期中所占的比例,第一迭代步为第一周期的后m-1个迭代步。
    12.本技术实施例的神经网络的训练方法可以通过上述两种方式确定要被采样的迭代步,其中周期排布方式可以有效提高神经网络训练的速度,间隔排布方式可以有效提高神经网络训练的精度。
    13.第二方面,提供一种数据处理的方法,该方法包括:获取待处理数据;根据目标神经网络对待处理数据进行处理,目标神经网络通过训练得到,目标神经网络的训练包括:获取待训练的神经网络;对待训练的神经网络的参数进行分组,以得到m组参数,m为大于或等于1的正整数;获取采样概率分布和训练迭代步排布方式,采样概率分布用于表征在每个训练迭代步中m组参数中的每组参数被采样的概率,训练迭代步排布方式包括间隔排布和周期排布;根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更;根据被冻结参数组或被停更的参数组对待训练的神经网络进行训练。
    14.本技术提供的数据处理方法,使用第一方面和第一方面中的任一种实施方式的神经网络训练方法训练得到的神经网络来处理数据,可以有效提高神经网络数据处理的能力。
    15.第三方面,提供一种神经网络的训练装置,该装置包括:获取模块,用于获取待训练的神经网络;处理模块,用于对待训练的神经网络的参数进行分组,以得到m组参数,m为大于或等于1的正整数;获取模块还用于获取采样概率分布和训练迭代步排布方式,采样概率分布用于表征在每个训练迭代步中m组参数中的每组参数被采样的概率,训练迭代步排布方式包括间隔排布和周期排布;处理模块还用于根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更;根据被冻结参数组或被停更的参数组对待训练的神经网络进行训练。
    16.本技术实施例还提供神经网络的训练装置,该装置可以用于实现第一方面的中的任意一种实现方式中的方法。
    17.结合第三方面,在一些可能的实现方式中,处理模块根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更,包括:根据训练迭代步排布方式确定第一迭代步,第一迭代步为待采样的迭代步;根据采样概率分布确定第一迭代步中被采样的第m组
    参数,m小于或等于m-1;冻结第一迭代步中的第m组参数至第一组参数,冻结第一迭代步中的第m组参数至第一组参数表示对第m组参数至第一组参数不进行梯度计算,不进行参数更新。
    18.结合第三方面,在一些可能的实现方式中,处理模块根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更,包括:根据训练迭代步排布方式确定第一迭代步,第一迭代步为待采样的迭代步;根据采样概率分布确定第一迭代步中被采样的第m组参数,m小于或等于m-1;停更第一迭代步中的第m组参数至第一组参数,停更第一迭代步中的第m组参数至第一组参数表示对第m组参数至第一组参数进行梯度计算,不进行参数更新。
    19.结合第三方面,在一些可能的实现方式中,当训练迭代步排布方式为间隔排布时,处理模块根据训练迭代步排布方式确定被采样的第一迭代步,包括:确定第一间隔;在多个训练迭代步中,每隔一个第一间隔确定一个或多个第一迭代步。
    20.结合第三方面,在一些可能的实现方式中,当训练迭代步排布方式为周期排布时,处理模块根据训练迭代步排布方式确定被采样的第一迭代步,包括:确定第一迭代步的数量为m-1;根据第一迭代步的数量和第一比例确定第一周期,第一周期包括第一迭代步和整网训练的迭代步,第一比例为第一迭代步在第一周期中所占的比例,第一迭代步为第一周期的后m-1个迭代步。
    21.第四方面,提供一种数据处理的装置,该装置包括:获取模块,用于获取待处理数据;处理模块,用于根据目标神经网络对待处理数据进行处理,目标神经网络通过训练得到,目标神经网络的训练包括:获取待训练的神经网络;对待训练的神经网络的参数进行分组,以得到m组参数,m为大于或等于1的正整数;获取采样概率分布和训练迭代步排布方式,采样概率分布用于表征在每个训练迭代步中m组参数中的每组参数被采样的概率,训练迭代步排布方式包括间隔排布和周期排布;根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更;根据被冻结参数组或被停更的参数组对待训练的神经网络进行训练。
    22.第五方面,提供一种电子设备,包括存储器和处理器,存储器用于存储程序指令;当程序指令在所述处理器中执行时,所述处理器用于执行第一方面中的任意一种实现方式和第二方面中所述的方法。
    23.上述第五方面中的处理器既可以是中央处理器(central processing unit,cpu),也可以是cpu与神经网络运算处理器的组合。
    24.第六方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第一方面中的任意一种实现方式和第二方面中的方法。
    25.第七方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面中的任意一种实现方式和第二方面中的方法。
    26.第八方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面中的任意一种实现方式和第二方面中的方法。
    27.可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于
    执行第一方面中的任意一种实现方式和第二方面中的方法。
    28.上述芯片具体可以是现场可编程门阵列(field-programmable gate array,fpga)或者专用集成电路(application-specific integrated circuit,asic)。
    附图说明
    29.图1是本技术实施例的一种卷积神经网络的示意性结构图;
    30.图2是本技术实施例的神经网络的训练方法应用的系统架构的示意性框图;
    31.图3是本技术实施例的训练迭代步间隔排布示意图;
    32.图4是本技术实施例的动量偏移的示意性说明图;
    33.图5是本技术实施例的训练迭代步周期排布示意图;
    34.图6是本技术实施例的神经网络的训练方法的示意性流程图;
    35.图7是本技术实施例的神经网络参数分组示意性框图;
    36.图8是本技术实施例的神经网络的训练方法的示意性框图;
    37.图9是本技术实施例的周期排布方式的训练迭代步采样示意图;
    38.图10是本技术实施例的静态图深度学习框架计算图的示意性框图;
    39.图11是本技术实施例的间隔排布方式的训练迭代步采样示意图;
    40.图12是本技术实施例的数据处理方法的示意性流程图;
    41.图13是本技术实施例的神经网络的训练装置的示意性框图;
    42.图14是本技术实施例的数据处理装置的示意性框图;
    43.图15是本技术实施例的神经网络的训练装置的硬件结构示意图;
    44.图16是本技术实施例的数据处理装置的硬件结构示意图。
    具体实施方式
    45.以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本技术以下各实施例中,“至少一个”、“一个或多个”是指一个、两个或两个以上。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
    46.在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
    47.为了便于理解本技术的技术方案,首先对本技术涉及的概念做简要介绍。
    48.深度学习(deep learning):一种基于深层次神经网络算法的机器学习技术,其主要特征是使用多重非线性变换对数据进行处理和分析。主要应用于人工智能领域的感知、
    决策等场景,例如图像识别、语音识别、自然语音翻译、计算机博弈等。
    49.训练(train):本技术实施例的训练特指神经网络的训练,一般包括前向计算模型输出、根据模型输出和标签计算损失、反向传播求梯度和参数更新。利用已有的数据集及其相应的标签,使用反向传播算法以及某种参数更新的方法,对模型进行优化,使得损失值尽可能减小。
    50.冻结(freeze):在神经网络训练过程中的反向传播步骤中,不计算某些参数的梯度且不更新这些参数,即为对这些参数进行反向冻结。
    51.停更:在神经网络训练过程中的反向步骤中,继续计算参数的梯度,但停止更新这些参数,即为对这些参数进行停更。
    52.开销(cost):本技术实施例的开销是指在神经网络训练过程中所消耗的资源,一般可以根据神经网络的计算量推算得出。
    53.下面将结合附图,对本技术中的技术方案进行描述。
    54.目前对于神经网络的训练加速,主要集中在硬件的升级和算法的优化方面。其中在硬件方面,gpu性能越高,但同时价格也越昂贵;采用多卡并行、多机并行和大规模集群,也是常用的训练加速方法。在算法方面,混合精度训练可以减少神经网络的计算量,在某些场景下对神经网络的训练起到有效的加速作用。本技术实施例的神经网络的训练方法主要涉及算法方面的改进,在硬件条件不变的情况下继续加速训练,降低实际开销。
    55.本技术实施例的神经网络的训练方法应用的对象可以是图1所示的卷积神经网络结构。在图1中,卷积神经网络(cnn)100可以包括输入层110,卷积层/池化层120(其中池化层为可选的),以及神经网络层130。其中,输入层110可以获取待处理数据,并将获取到的待处理数据交由卷积层/池化层120以及后面的神经网络层130进行处理,可以得到数据的处理结果。下面对图1中的cnn 100中内部的层结构进行详细的介绍。
    56.卷积层/池化层120:
    57.卷积层:
    58.如图1所示卷积层/池化层120可以包括如示例121-126层,举例来说:在一种实现中,121层为卷积层,122层为池化层,123层为卷积层,124层为池化层,125为卷积层,126为池化层;在另一种实现方式中,121、122为卷积层,123为池化层,124、125为卷积层,126为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
    59.下面将以卷积层121为例,介绍一层卷积层的内部工作原理。
    60.卷积层121可以包括很多个卷积算子,卷积算子也称为核,其在数据处理中的作用相当于一个从输入数据矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义。
    61.这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入数据中提取信息,从而使得卷积神经网络100进行正确的预测。
    62.当卷积神经网络100有多个卷积层的时候,初始的卷积层(例如121)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络100深度的加深,越往后的卷积层(例如126)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义
    越高的特征越适用于待解决的问题。
    63.池化层:
    64.由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图1中120所示例的121-126各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在数据处理过程中,池化层的唯一目的就是减少数据的空间大小。
    65.神经网络层130:
    66.在经过卷积层/池化层120的处理后,卷积神经网络100还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层120只会提取特征,并减少输入数据带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络100需要利用神经网络层130来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层130中可以包括多层隐含层(如图1所示的131、132至13n)以及输出层140,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括识别、分类等等。
    67.神经网络可以采用误差反向传播(back propagation,bp)算法在训练过程中修正初始的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
    68.在神经网络层130中的多层隐含层之后,也就是整个卷积神经网络100的最后层为输出层140,该输出层140具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络100的前向传播(如图1由110至140方向的传播为前向传播)完成,反向传播(如图1由140至110方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络100的损失,及卷积神经网络100通过输出层输出的结果和理想结果之间的误差。
    69.现有的一种神经网络的训练方法,在训练过程中,由前向后冻结网络各层,当某一层被冻结后,直到网络训练结束都不再训练该层。例如某神经网络的参数分为6个部分,总共训练90个时期(epoch),其中,第1个部分为epoch1-46,第2个部分为epoch47-53,第3个部分为54-61,第4个部分为epoch62-70,第5个部分为epoch71-79,第6个部分为epoch80-90,该神经网络的训练方法通过一定的计算规则,使第1部分中的每组参数都进行整网训练,即网络中每个参数在反向传播的过程中都计算梯度并进行参数更新;在第2部分中冻结神经网络的第一组参数,即只参与前向计算,在反向传播的过程中不计算梯度,不进行参数更新;在第3部分中,冻结神经网络的前两组参数;在第4部分中,冻结神经网络的前三组参数;在第5部分中,冻结神经网络的前四组参数;在第6部分中,冻结神经网络的前五组参数。每组参数的学习率根据该组参数训练时长占训练总时长的比例进行缩放,在上述神经网络的训练中,从最后一组参数到第一组参数的学习率递增。该方法只适用部分神经网络的训练,隔多个epoch冻结一组参数,粗粒度地控制训练过程中的参数冻结,精度损失较大,且需要根据每组参数冻结的时长占比进行学习率的缩放,增加了额外的工作量。
    70.现有的另一种神经网络的训练方法在神经网络训练过程中根据网络梯度的状态
    计算出一定的标准,然后根据该标准判断是否需要冻结。该方法引入额外的计算量,且在某些场景下训练速度不升反降。现有的神经网络的训练方法还通过在网络的训练过程中加入随机因子,随机跳过部分残差分支(residual branch)的前向和反向计算,来达到加速训练的目的。但是该方法只能使用在某些特定结构的网络上,局限性较大,使用范围较窄。
    71.本技术实施例的神经网络的训练方法,对用户网络的参数进行自动分组,引入采样概率分布对训练过程进行细粒度的冻结控制。在训练迭代步(training step)维度进行精细的间隔性或周期性排布,对动量偏移进行校正,使得网络的每一组参数在整个训练过程中都有一定的概率进行更新,不会存在某组参数前期训练,后期完全冻结不再更新的情况,从而保证训练精度。
    72.本技术实施例的神经网络的训练方法适用于mindspore、tensorflow、pytorch等深度学习框架,以及配合昇腾芯片、gpu等硬件平台需要对各种计算机视觉(computer vision)任务中的神经网络训练进行加速的场景,其中计算机视觉任务可以是目标识别、目标检测、语义分割等。
    73.图2示出了本技术实施例的神经网络的训练方法应用的系统架构的示意性框图,该系统架构可以实现对图1所示的神经网络的训练的加速。如图2所示,该系统架构包括概率分布模块和训练迭代步排布模块,以下分别进行介绍。
    74.概率分布模块,用于引入采样概率分布对训练过程进行细粒度的冻结控制,其中概率分布包括采样概率和冻结概率。采样概率控制神经网络每一组被采样到的概率,例如在某个训练迭代步采样到某一组参数,那么从该组参数到网络的第一组参数都将被反向冻结。一旦采样概率分布确定后,参数的冻结概率分布也随之确定。
    75.采样概率分布公式为:
    76.ps(i)=f(i)
    77.p(n-1)=0,
    78.冻结概率分布公式为:
    79.p
    freeze
    (0)=1-p080.其中,p0表示在神经网络训练过程中不冻结任何参数的概率,即整网训练的概率;n表示网络参数的分组数量,i表示参数组的指数,范围从0到n-1;公式f(x)既可以是连续函数,也可以是离散函数,例如根据每一组参数的实际测试开销占比确定相应的采样概率,第i组参数被冻结的概率为第i组到第n-1组参数的采样概率之和,所有组参数的采样概率之和为1。冻结概率分布曲线所包括的面积越大,训练开销降低得越多。
    81.训练迭代步排布模块,用于根据概率分布模块选定的概率分布公式对训练迭代步进行细粒度的排布,以确定在训练过程中每一次迭代时对哪些组参数进行冻结。图3示出了以整网训练概率p0为0.5的训练迭代步排布示意图,由于p0为0.5,则可以每隔一步进行一次整网训练,即在迭代步0、迭代步2、迭代步4都进行整网训练,而在迭代步1、迭代步3、迭代步5根据采样概率分布函数分布采样到第3、第5、第1组参数,则分别冻结前3、前5、前1组参数,该排布方式称为间隔排布。
    82.图3中的活动层表示前向计算和反向计算都进行,冻结层表示只进行前向计算,冻结反向计算,一个活动层或一个冻结层均表示一组参数。图3中的等间隔整网训练的排布方
    式在每一个迭代步均存在冻结层解冻的情况,这样会造成动量偏移。例如,在图4中,迭代步2的前3组参数由于在迭代步1中梯度缺失,不计算动量不进行参数更新,导致迭代步2使用的动量依然是基于迭代步0的动量。
    83.因此本技术实施例设计了如图5所示的周期性逐步冻结的排布方案(periodic mode),其中用指数为0表示整网训练,用指数为1、2、3、4、5分别表示在反向计算过程中冻结前1、前2、前3、前4、前5组参数,网络的最后一组参数不参与冻结。图5中的迭代步排布和指数曲线均为周期性的,采样概率为线性递减,表示越靠前的参数组被采样到的概率越大,由此可以得到图5左边的训练迭代步排布示意图。
    84.对于任何采样概率分布函数,根据每一步被采样的概率以及整网训练的概率,均可实现上述间隔排布和周期性排布的训练迭代步排列方式。对于间隔排布,在连续10个训练迭代中,每隔n个迭代步选择一个或多个迭代步冻结采样,n可以为人为预设的值,或者根据整网训练概率确定。例如图3中,当p0为0.5时,n则为1,因此每隔1个迭代步进行一次冻结采样。对于周期性排布,只需根据p0的大小,p0和1-p0的比例对整网训练的迭代步进行调整即可。例如图5中,当p0为0.5时,表示进行整网训练的迭代步数量和进行冻结采样的迭代步数量比例为1比1,则迭代步0至14为整网训练,迭代步15至29为冻结采样;然后根据采样概率曲线图可知,越靠前的参数组被采样的概率越大。
    85.图6示出了本技术实施例的神经网络的训练方法的示意性流程图,如图6所示,包括步骤601至步骤604,以下分别进行介绍。
    86.s601,获取待训练的神经网络。
    87.本技术实施例的神经网络的训练方法可以应用于目标检测、图像分割、自然语言处理、语音识别等任务,待训练的神经网络可以是如图1所示的卷积神经网络,具体可以是resnet、mobilenet等系列的神经网络,也可以是其他神经网络,本技术实施例在此不做具体限定。
    88.s602,对待训练的神经网络的参数进行分组,以得到m组参数,m为大于或等于1的正整数。
    89.本技术实施例的神经网络参数包括神经网络各层的算子,对神经网络的训练即对神经网络中各层算子权值的确定。本技术实施例的神经网络的训练方法可以实现对待训练的神经网络的参数进行自动分组,分组的标准可以预先进行设定。其中参数分组遵循从输入到输出的顺序原则,如图7所示,将离输入最近的一组参数确定为第一组参数,即图7中的组0,以此类推,将离输入最远的一组参数确定为最后一组参数,即图7中的组5。参数分组时,可以将单个算子分为一组参数,也可以将连续多个连续算子分为一组参数,一般卷积算子与其后的批标准化(batch normalization,bn)算子分为一组参数,例如对于s601中的resnet、mobilenet等系列的神经网络,可以预先设定将每个卷积算子和bn算子分为一组,则在获取了待训练的resnet、mobilenet等系列的神经网络后,神经网络的训练方法可以自动根据预先的设定对这些神经网络的参数进行分组。图8示出了本技术实施例的神经网络的训练方法的示意性框图,如图8所示,在参数自动分组步骤,将输入的数据可以自动分为组0至组5。
    90.s603,获取采样概率分布和训练迭代步排布方式,采样概率分布用于表征在每个训练迭代步中所述m组参数中的每组参数被采样的概率,训练迭代步排布方式包括间隔排
    布和周期排布。
    91.具体的,首先确定训练迭代步排布方式,本技术实施例的神经网络的训练方法中,对部分迭代步进行整网训练,整网训练表示对迭代步中的每组参数都进行梯度计算和参数更新,其中神经网络训练中,需要使用训练数据来最小化损失函数,从而确定神经网络参数的值,而最小化损失函数,即需要求得损失函数的极值,而向量场的梯度指向的方向是函数值上升最快的方向,也就是说其相反方向是函数值下降最快的方向,因此通过计算出损失函数的梯度(即计算所有参数的偏导数)并在其反方向更新参数,经过迭代后损失函数即可很快达到一个极小值。对部分迭代步进行采样,因此需要确定对哪些迭代步进行采样,训练迭代步排布方式包括间隔排布和周期排布,其中间隔排布表示对多个训练迭代步,每隔一定的间隔确定一个或多个被采样的训练迭代步,例如可以根据如下方式确定:确定整网训练概率p0,将待训练的多个迭代步的数量乘以p0,可以得到被整网训练的迭代步数量,然后将被整网训练的迭代步均匀地分布在待训练的多个迭代步中,其中p0为人为预设的值,范围在(0,1),表1示出了一些根据整网训练概率确定训练迭代步排布方式的示例:
    92.表1
    [0093] p0=0p0=0.1p0=0.2p0=0.3p0=0.4p0=0.5p0=0.6p0=0.7p0=0.8p0=0.9p0=1step0
    ◆◆◆◆◆◆◇◇◇◇◇
    step1
    ◆◆◆◆◇◇◆◇◇◇◇
    step2
    ◆◆◆◇◆◆◇◆◇◇◇
    step3
    ◆◆◆◆◇◇◆◇◇◇◇
    step4
    ◆◆◇◆◆◆◇◇◆◇◇
    step5
    ◆◆◆◇◇◇◆◆◇◇◇
    step6
    ◆◆◆◆◆◆◇◇◇◇◇
    step7
    ◆◆◆◆◇◇◆◇◇◇◇
    step8
    ◆◆◆◇◆◆◇◆◇◇◇
    step9
    ◆◇◇◆◆◇◇◇◆◆◇
    [0094]
    表1中以10个迭代步为例,即step0至step9,

    表示将对该迭代步进行采样,

    表示不对该迭代步进行采样,该迭代步整网训练。例如p0=0时,则被整网训练的迭代步数量为0,则step0至step9都将被采样;例如p0=0.3时,则被整网训练的迭代步数量为3,将3个被整网训练的迭代步均匀地分别在10个迭代步中,则step2、step5、step8为被整网训练的迭代步,而step0、step1、step3、step4、step6、step7、step9为将被采样的迭代步。应理解,表1中的根据整网训练概率确定训练迭代步排布方式只是对本技术实施例中间隔排布方式的举例,并不构成对本技术实施例的限定。
    [0095]
    周期排布表示将多个训练迭代步作为一个周期,首先确定将被采样的迭代步的数量为m-1;融合根据将被采样的迭代步的数量和一定的比例确定周期,其中一个周期包括将被采样的迭代步和整网训练的迭代步,一定的比例为将被采样的迭代步在该周期中所占的比例,将被采样的迭代步为该周期的后m-1个迭代步。例如可以确定整网训练概率p0,整网训练概率p0可以是人为预设的值,而上述的一定比例则为1-p0。对应于图8中使用的是间隔排布方式,迭代步0、2、4为整网训练,迭代步1、3、5为被采样的迭代步。
    [0096]
    根据训练迭代步排布方式确定了要被采样的迭代步后,对于要被采样的每个迭代步,再确定其中要被采样的参数组。本技术实施例的神经网络的训练方法用采样概率分布确定在每个训练迭代步中m组参数中的每组参数被采样的概率,即根据采样概率分布确定
    某一迭代步中被采样的第m组参数,m小于或等于m-1,在某一迭代步中确定了被采样的第m组参数后,该第m组参数至第一组参数都会进行相同的处理。
    [0097]
    s604,根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更。
    [0098]
    在s603中,处理包括冻结和停更,其中冻结表示表示对第m组参数至第一组参数不进行梯度计算,不进行参数更新,停更表示对第m组参数至第一组参数进行梯度计算,不进行参数更新。相应的采样概率分布公式和冻结/停更概率分布公式可以参照上述对于图2的描述。例如图8中,在p0为0.5时,根据采样概率分布公式可以得到多条采样概率分布曲线图,横坐标表示参数组,纵坐标表示被采样的概率,选取其中一条曲线对迭代步1、3、5进行采样,可以得到如图8所示的训练迭代步采样分布图,其中迭代步1被采样的参数组为组2,则将组0至组1冻结;迭代步3被采样的参数组为组0,则将组0冻结;迭代步5被采样的参数组为组4,则将组0至组4冻结。
    [0099]
    s605,根据被冻结参数组或被停更的参数组对待训练的神经网络进行训练。
    [0100]
    根据上述采样概率分布和所述训练迭代步排布方式可以得到训练迭代步采样分布,对其中未被冻结或停更的参数组进行梯度计算和参数更新;对被冻结的参数组不进行梯度计算,不进行参数更新;对被停更的参数组只进行梯度计算,但不进行参数更新。由此对待训练的神经网络进行迭代训练。
    [0101]
    应理解,本技术实施例的神经网络的训练方法可以用于相应的神经网络的训练,该神经网络可以是如图1所示的神经网络。本技术实施例的神经网络的训练方法可以应用于目标检测、图像分割等视觉任务,也可以应用于自然语言处理、语音识别等非视觉任务。
    [0102]
    由于一个epoch表示使用训练集的全部数据对神经网络模型进行一次完整的训练,而一个训练迭代步表示更新一次神经网络模型的参数,在某些情况下,一个epoch可能包括一万个训练迭代步,因此在训练迭代步的维度对神经网络的训练进行控制比在epoch的维度具有更高的精度。
    [0103]
    本技术实施例的神经网络的训练方法在迭代步的维度对神经网络的参数组进行处理,实现对加速过程的细粒度控制,在训练加速的同时,提升训练精度。通过训练迭代步排布方式和采样概率分布对参数组进行采样和处理,在训练开销和训练精度之间可以更加灵活地选择,例如可以根据每一组参数的具体开销占比确定相应的采样概率;校正了动量偏移的问题,对于冻结的参数组,在一个周期内,后续迭代步的参数组无需用到之前被冻结参数组的参数,对于停更的参数组,依然进行梯度计算,使后续的迭代步的参数组的参数可以保持更新。
    [0104]
    以下结合具体示例对本技术实施例的神经网络的训练方法做详细介绍。
    [0105]
    本技术实施例的神经网络的训练方法可以应用于根据imagenet数据集,分别在多个网络上进行目标识别任务的精度验证。在使用静态图深度学习框架的场景下,计算图可以构建多条反向路径,以配合本技术实施例的神经网络的训练方法进行训练加速,例如tensorflow、mindspore等静态图深度学习框架;在使用动态图深度学习框架的场景下,可以在每一次反向过程中进行反向截断,例如pytorch等动态图深度学习框架。
    [0106]
    步骤一:输入resnet50、resnet18、mobilenetv2等神经网络;
    [0107]
    步骤二:参数自动分组,将每个卷积算子和批标准化(batch normalization,bn)算子分为一组;
    [0108]
    步骤三:选择开销降低最多的均匀采样概率分布,表示每组参数被采样到的概率相同;并且选择周期性的排布方式。图9示出了本技术实施例的使用周期性排布方式的训练迭代步采样示意图,在一个周期内,迭代步0至迭代步4进行整网训练,迭代步5冻结第一组参数,迭代步6冻结前两组参数,迭代步7冻结前三组参数,迭代步8冻结前四组参数,迭代步9冻结前五组参数。
    [0109]
    步骤四:使用tensorflow深度学习框架,计算图构建多条路径,开始迭代训练。计算图如图10所示。
    [0110]
    使用上述神经网络的训练方法在imagenet数据集上对不同的网络进行训练和评测,得到的精度测试结果如下表所示:
    [0111]
    表2
    [0112] 基线(%)精度(%)resnet5076.8176.92(+0.11)resnet3474.4374.38(-0.05)resnet1870.770.98(+0.28)resnet10178.8478.85(+0.01)mobilenetv271.9672.04(+0.08)vgg16_bn73.8273.55(-0.27)resnext5077.6877.64(-0.04)densenet12175.8475.82(-0.02)alexnet57.0256.98(-0.04)inceptionv376.2076.15(-0.05)
    [0113]
    由表2可知,使用上述神经网络的训练方法在imagenet数据集上对不同的网络进行训练得到的精度与基线基本持平,但神经网络训练的速度提高20%。
    [0114]
    本技术实施例的神经网络的训练方法可以在识别类任务中起到一定的正则化效果,在小幅度降低开销的同时,一定程度上起到提升模型精度的效果。以下介绍另一种使用本技术实施例的神经网络的训练方法进行网络训练的过程。
    [0115]
    步骤一:输入resnet50、resnet18、mobilenetv2等神经网络;
    [0116]
    步骤二:参数自动分组,将每个卷积算子和批标准化(batch normalization,bn)算子分为一组;
    [0117]
    步骤三:选择线性递减的采样概率分布,越靠前的参数组被采样的概率越大;训练迭代步排布方式选择间隔排布。被采样到的参数依然计算梯度和动量,如此可以避免下一个迭代步中对应的参数组动量偏移,但不进行参数更新。由于随机梯度下降(stochastic gradient descent,sgd)的随机性会引入一定的噪声,在网络正常训练过程中,由损失传递到前面层的梯度所带来的有用信号已经非常微弱,导致网络前面层的信噪比较高,间隔排布方式随机停止前面层的梯度更新有利于减小高信噪比带来的负作用,起到一定的优化作用,由此可以提升训练的神经网络的精度。图11示出了本技术实施例的使用间隔排布方式的训练迭代步采样示意图。
    [0118]
    使用上述神经网络的训练方法在imagenet数据集上对不同的网络进行训练和评测,得到的精度测试结果如下表所示:
    [0119]
    表3
    [0120][0121][0122]
    由表3可知,使用上述神经网络的训练方法在imagenet数据集上对不同的网络进行训练得到的精度与基线相比基本都有一定提升。
    [0123]
    与现有的正则化方法不同,本技术实施例的神经网络的训练方法可以在不改变用户网络结构的基础上,小幅度降低开销的同时,通过一定的采样概率分布和参数停更进行精度的提升。
    [0124]
    图12示出了表示实施例提供的一种数据处理方法的示意性流程图,包括步骤1201至步骤1202。
    [0125]
    s1201,获取待处理数据。
    [0126]
    s1202,根据目标神经网络对待处理数据进行处理,目标神经网络通过训练得到,目标神经网络的训练包括:获取待训练的神经网络;对待训练的神经网络的参数进行分组,以得到m组参数,m为大于或等于1的正整数;获取采样概率分布和训练迭代步排布方式,采样概率分布用于表征在每个训练迭代步中m组参数中的每组参数被采样的概率,训练迭代步排布方式包括间隔排布和周期排布;根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更;根据被冻结参数组或被停更的参数组对待训练的神经网络进行训练。
    [0127]
    图12中的数据处理所使用的神经网络为根据图6的神经网络的训练方法训练得到,其中神经网络的训练可以参照上述对于图6的描述,为了简洁,本技术实施例在此不再赘述。
    [0128]
    上文详细介绍了本技术实施例的神经网络的训练方法,下面结合图13至图16对本技术实施例的相关装置进行介绍。
    [0129]
    图13示出了本技术实施例的神经网络的训练装置的示意性框图,包括存储模块1310、获取模块1320、处理模块1330,以下分别进行介绍。
    [0130]
    存储模块1310用于存储程序。
    [0131]
    获取模块1320,用于获取待训练的神经网络。
    [0132]
    处理模块1330,用于对待训练的神经网络的参数进行分组,以得到m组参数,m为大于或等于1的正整数。
    [0133]
    获取模块1320还用于获取采样概率分布和训练迭代步排布方式,采样概率分布用
    于表征在每个训练迭代步中m组参数中的每组参数被采样的概率,训练迭代步排布方式包括间隔排布和周期排布。
    [0134]
    处理模块1330还用于根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更;根据被冻结参数组或被停更的参数组对待训练的神经网络进行训练。
    [0135]
    可选的,处理模块1330根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更,具体用于:根据训练迭代步排布方式确定第一迭代步;根据采样概率分布确定第一迭代步中被采样的第m组参数,m小于或等于m-1;冻结第一迭代步中的第m组参数至第一组参数,冻结第一迭代步中的第m组参数至第一组参数表示对第m组参数至第一组参数不进行梯度计算,不进行参数更新。
    [0136]
    可选的,处理模块1330根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更,具体用于:根据训练迭代步排布方式确定被采样的第一迭代步;根据采样概率分布确定第一迭代步中被采样的第m组参数,m小于或等于m-1;停更第一迭代步中的第m组参数至第一组参数,停更第一迭代步中的第m组参数至第一组参数表示对第m组参数至第一组参数进行梯度计算,不进行参数更新。
    [0137]
    可选的,当训练迭代步排布方式为间隔排布时,处理模块1130根据训练迭代步排布方式确定被采样的第一迭代步,具体用于:确定第一间隔;在多个训练迭代步中,每隔一个第一间隔确定一个或多个第一迭代步。可选的,当训练迭代步排布方式为周期排布时,处理模块1130根据训练迭代步排布方式确定被采样的第一迭代步,包括:确定第一迭代步的数量为m-1;根据第一迭代步的数量和第一比例确定第一周期,第一周期包括第一迭代步和整网训练的迭代步,第一比例为第一迭代步在第一周期中所占的比例,第一迭代步为第一周期的后m-1个迭代步。
    [0138]
    应理解,本技术实施例的神经网络的训练装置1300可以用于实现图6的方法中的各个步骤,具体实现可以参照上述对于图6的方法的描述,为了简洁,本技术实施例在此不再赘述。
    [0139]
    图14示出了本技术实施例的数据处理装置的示意性框图,包括存储模块1410、获取模块1420、处理模块1430,以下分别进行介绍。
    [0140]
    存储模块1410用于存储程序。
    [0141]
    获取模块1420,用于获取待处理数据。
    [0142]
    处理模块1430,用于根据目标神经网络对待处理数据进行处理,目标神经网络通过训练得到,目标神经网络的训练包括:获取待训练的神经网络;对待训练的神经网络的参数进行分组,以得到m组参数,m为大于或等于1的正整数;获取采样概率分布和训练迭代步排布方式,采样概率分布用于表征在每个训练迭代步中m组参数中的每组参数被采样的概率,训练迭代步排布方式包括间隔排布和周期排布;根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更;根据被冻结参数组或被停更的参数组对待训练的神经网络进行训练。
    [0143]
    应理解,本技术实施例的神经网络的训练装置1400可以用于实现图12的方法中的各个步骤,具体实现可以参照上述对于图12的方法的描述,为了简洁,本技术实施例在此不再赘述。
    [0144]
    图15是本技术实施例的神经网络的训练装置1500的硬件结构示意图,如图15所
    示,包括存储器1501、处理器1502、通信接口1503以及总线1504。其中,存储器1501、处理器1502、通信接口1503通过总线1504实现彼此之间的通信连接。
    [0145]
    存储器1501可以是rom,静态存储设备和ram。存储器1501可以存储程序,当存储器1501中存储的程序被处理器1502执行时,处理器1502和通信接口1503用于执行本技术实施例的神经网络的训练方法的各个步骤。
    [0146]
    处理器1502可以采用通用的,cpu,微处理器,asic,gpu或者一个或多个集成电路,用于执行相关程序,以实现本技术实施例的神经网络的训练装置中的单元所需执行的功能,或者执行本技术方法实施例的神经网络的训练方法。
    [0147]
    处理器1502还可以是一种集成电路芯片,具有信号的处理能力,例如,可以是图4所示的芯片。在实现过程中,本技术实施例的神经网络的训练方法的各个步骤可以通过处理器1502中的硬件的集成逻辑电路或者软件形式的指令完成。
    [0148]
    上述处理器1502还可以是通用处理器、dsp、asic、fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1501,处理器1502读取存储器1501中的信息,结合其硬件完成本技术实施例的神经网络的训练装置中包括的单元所需执行的功能,或者执行本技术方法实施例的神经网络的训练方法。
    [0149]
    通信接口1503使用例如但不限于收发器一类的收发装置,来实现装置1500与其他设备或通信网络之间的通信。例如,可以通过通信接口1503获取待训练的神经网络。
    [0150]
    总线1504可包括在装置1500各个部件(例如,存储器1501、处理器1502、通信接口1503)之间传送信息的通路。
    [0151]
    图16示出了本技术实施例的一种数据处理装置的1600的硬件结构示意图,包括存储器1601、处理器1602、通信接口1603以及总线1604。其中,存储器1601、处理器1602、通信接口1603通过总线1604实现彼此之间的通信连接。
    [0152]
    存储器1601可以是rom,静态存储设备和ram。存储器1601可以存储程序,当存储器1601中存储的程序被处理器1602执行时,处理器1602和通信接口1603用于执行本技术实施例的数据处理方法的各个步骤。
    [0153]
    处理器1602可以采用通用的,cpu,微处理器,asic,gpu或者一个或多个集成电路,用于执行相关程序,以实现本技术实施例的数据处理处理装置中的单元所需执行的功能,或者执行本技术方法实施例的数据处理方法。
    [0154]
    处理器1602还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术实施例的数据处理方法的各个步骤可以通过处理器1602中的硬件的集成逻辑电路或者软件形式的指令完成。
    [0155]
    上述处理器1602还可以是通用处理器、dsp、asic、fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的
    处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1601,处理器1602读取存储器1601中的信息,结合其硬件完成本技术实施例的数据处理装置中包括的单元所需执行的功能,或者执行本技术方法实施例的数据处理方法。
    [0156]
    通信接口1603使用例如但不限于收发器一类的收发装置,来实现装置1600与其他设备或通信网络之间的通信。例如,可以通过通信接口1603获取待处理数据。
    [0157]
    总线1604可包括在装置1600各个部件(例如,存储器1601、处理器1602、通信接口1603)之间传送信息的通路。
    [0158]
    应注意,尽管上述1500和1600仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置1500和1600还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置1500和1600还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置1500和1600也可仅仅包括实现本技术实施例所必须的器件,而不必包括图15和图16中所示的全部器件。
    [0159]
    应理解,本技术实施例中的处理器可以为中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
    [0160]
    还应理解,本技术实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,ram)可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
    [0161]
    本技术实施例还提供了一种计算机程序产品,该计算机程序产品被处理器1502和1602执行时实现本技术中任一方法实施例的方法。该计算机程序产品可以存储在存储器1501和1601中,程序经过预处理、编译、汇编和链接等处理过程最终被转换为能够被处理器1502和1602执行的可执行目标文件。
    [0162]
    本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现本技术中任一方法实施例的方法。该计算机程序可以是高级语言程序,也可以是可执行目标程序。该计算机可读存储介质例如是存储器1501和1601。
    [0163]
    本技术实施例还提供一种芯片,该芯片包括处理器与数据接口,处理器通过数据接口读取存储器上存储的指令,执行本技术中任一方法实施例的方法。
    [0164]
    上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘。
    [0165]
    应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况,其中a,b可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
    [0166]
    本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
    [0167]
    应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
    [0168]
    本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
    [0169]
    所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
    [0170]
    在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
    [0171]
    所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个
    网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
    [0172]
    另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
    [0173]
    所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
    [0174]
    以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。

    技术特征:
    1.一种神经网络的训练方法,其特征在于,包括:获取待训练的神经网络;对所述待训练的神经网络的参数进行分组,以得到m组参数,所述m为大于或等于1的正整数;获取采样概率分布和训练迭代步排布方式,所述采样概率分布用于表征在每个训练迭代步中所述m组参数中的每组参数被采样的概率,所述训练迭代步排布方式包括间隔排布和周期排布;根据所述采样概率分布和所述训练迭代步排布方式,对被采样的参数组冻结或停更;根据被冻结的参数组或被停更的参数组对所述待训练的神经网络进行训练。2.根据权利要求1所述的方法,其特征在于,所述根据所述采样概率分布和所述训练迭代步排布方式,对被采样的参数组冻结或停更,包括:根据所述训练迭代步排布方式确定第一迭代步,所述第一迭代步为待采样的迭代步;根据所述采样概率分布确定所述第一迭代步中被采样的第m组参数,所述m小于或等于m-1;冻结所述第一迭代步中的第m组参数至第一组参数,所述冻结所述第一迭代步中的第m组参数至第一组参数表示对所述第m组参数至所述第一组参数不进行梯度计算,不进行参数更新。3.根据权利要求1所述的方法,其特征在于,所述根据所述采样概率分布和所述训练迭代步排布方式,对被采样的参数组冻结或停更,包括:根据所述训练迭代步排布方式确定第一迭代步,所述第一迭代步为待采样的迭代步;根据所述采样概率分布确定所述第一迭代步中被采样的第m组参数,所述m小于或等于m-1;停更所述第一迭代步中的第m组参数至第一组参数,所述停更所述第一迭代步中的第m组参数至第一组参数表示对所述第m组参数至所述第一组参数进行梯度计算,不进行参数更新。4.根据权利要求2或3所述的方法,其特征在于,当所述训练迭代步排布方式为间隔排布时,所述根据所述训练迭代步排布方式确定第一迭代步,包括:确定第一间隔;在多个训练迭代步中,每隔一个所述第一间隔确定一个或多个所述第一迭代步。5.根据权利要求2或3所述的方法,其特征在于,当所述训练迭代步排布方式为周期排布时,所述根据所述训练迭代步排布方式确定第一迭代步,包括:确定第一迭代步的数量为m-1;根据所述第一迭代步的数量和第一比例确定第一周期,所述第一周期包括所述第一迭代步和整网训练的迭代步,所述第一比例为所述第一迭代步在所述第一周期中所占的比例,所述第一迭代步为所述第一周期的后m-1个迭代步。6.一种数据处理的方法,其特征在于,包括:获取待处理数据;根据目标神经网络对所述待处理数据进行处理,所述目标神经网络通过训练得到,所述目标神经网络的训练包括:
    获取待训练的神经网络;对所述待训练的神经网络的参数进行分组,以得到m组参数,所述m为大于或等于1的正整数;获取采样概率分布和训练迭代步排布方式,所述采样概率分布用于表征在每个训练迭代步中所述m组参数中的每组参数被采样的概率,所述训练迭代步排布方式包括间隔排布和周期排布;根据所述采样概率分布和所述训练迭代步排布方式,对被采样的参数组冻结或停更;根据被冻结参数组或被停更的参数组对所述待训练的神经网络进行训练。7.一种神经网络的训练装置,其特征在于,包括:获取模块,用于获取待训练的神经网络;处理模块,用于对所述待训练的神经网络的参数进行分组,以得到m组参数,所述m为大于或等于1的正整数;所述获取模块还用于获取采样概率分布和训练迭代步排布方式,所述采样概率分布用于表征在每个训练迭代步中所述m组参数中的每组参数被采样的概率,所述训练迭代步排布方式包括间隔排布和周期排布;所述处理模块还用于根据所述采样概率分布和所述训练迭代步排布方式,对被采样的参数组冻结或停更;根据被冻结参数组或被停更的参数组对所述待训练的神经网络进行训练。8.根据权利要求7所述的装置,其特征在于,所述处理模块根据所述采样概率分布和所述训练迭代步排布方式,对被采样的参数组冻结或停更,包括:根据所述训练迭代步排布方式确定第一迭代步,所述第一迭代步为待采样的迭代步;根据所述采样概率分布确定所述第一迭代步中被采样的第m组参数,所述m小于或等于m-1;冻结所述第一迭代步中的第m组参数至第一组参数,所述冻结所述第一迭代步中的第m组参数至第一组参数表示对所述第m组参数至所述第一组参数不进行梯度计算,不进行参数更新。9.根据权利要求7所述的装置,其特征在于,所述处理模块根据所述采样概率分布和所述训练迭代步排布方式,对被采样的参数组冻结或停更,包括:根据所述训练迭代步排布方式确定第一迭代步,所述第一迭代步为待采样的迭代步;根据所述采样概率分布确定所述第一迭代步中被采样的第m组参数,所述m小于或等于m-1;停更所述第一迭代步中的第m组参数至第一组参数,所述停更所述第一迭代步中的第m组参数至第一组参数表示对所述第m组参数至所述第一组参数进行梯度计算,不进行参数更新。10.根据权利要求8或9所述的装置,其特征在于,当所述训练迭代步排布方式为间隔排布时,所述处理模块根据所述训练迭代步排布方式确定第一迭代步,包括:确定第一间隔;在多个训练迭代步中,每隔一个所述第一间隔确定一个或多个所述第一迭代步。11.根据权利要求8或9所述的装置,其特征在于,当所述训练迭代步排布方式为周期排
    布时,所述处理模块根据所述训练迭代步排布方式确定第一迭代步,包括:确定第一迭代步的数量为m-1;根据所述第一迭代步的数量和第一比例确定第一周期,所述第一周期包括所述第一迭代步和整网训练的迭代步,所述第一比例为所述第一迭代步在所述第一周期中所占的比例,所述第一迭代步为所述第一周期的后m-1个迭代步。12.一种数据处理的装置,其特征在于,包括:获取模块,用于获取待处理数据;处理模块,用于根据目标神经网络对所述待处理数据进行处理,所述目标神经网络通过训练得到,所述目标神经网络的训练包括:获取待训练的神经网络;对所述待训练的神经网络的参数进行分组,以得到m组参数,所述m为大于或等于1的正整数;获取采样概率分布和训练迭代步排布方式,所述采样概率分布用于表征在每个训练迭代步中所述m组参数中的每组参数被采样的概率,所述训练迭代步排布方式包括间隔排布和周期排布;根据所述采样概率分布和所述训练迭代步排布方式,对被采样的参数组冻结或停更;根据被冻结参数组或被停更的参数组对所述待训练的神经网络进行训练。13.一种芯片,其特征在于,所述芯片包括处理器与存储器,所述处理器和所述存储器耦合,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行如权利要求1至5或权利要求6中任一项所述的方法。14.一种计算机可读存储介质,其特征在于,所述计算机可读介质存储用于设备执行的程序代码,该程序代码被所述设备执行时,所述设备执行如权利要求1至5或权利要求6中任一项所述的方法。

    技术总结
    本申请涉及人工智能领域,提供了一种神经网络的训练方法和装置,可以实现在迭代步维度对神经网络的参数组进行细粒度控制,在训练加速的同时提升了训练精度。该方法包括:获取待训练的神经网络;对待训练的神经网络的参数进行分组,以得到M组参数,M为大于或等于1的正整数;获取采样概率分布和训练迭代步排布方式,采样概率分布用于表征在每个训练迭代步中M组参数中的每组参数被采样的概率,训练迭代步排布方式包括间隔排布和周期排布;根据采样概率分布和训练迭代步排布方式,对被采样的参数组冻结或停更;根据被冻结的参数组或被停更的参数组对待训练的神经网络进行训练。数组对待训练的神经网络进行训练。数组对待训练的神经网络进行训练。


    技术研发人员:刘大勇 黄泽毅
    受保护的技术使用者:华为技术有限公司
    技术研发日:2020.11.23
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-16729.html

    最新回复(0)