一种网络模型的训练方法、装置及设备与流程

文档序号:31537504发布日期:2022-09-16 22:56阅读:54来源:国知局
一种网络模型的训练方法、装置及设备与流程

1.本技术涉及人工智能领域,尤其是一种网络模型的训练方法、装置及设备。


背景技术:

2.机器学习是实现人工智能的一种途径,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。机器学习用于研究计算机如何模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习更加注重算法设计,使计算机能够自动地从数据中学习规律,并利用规律对未知数据进行预测。
3.机器学习已经有了十分广泛的应用,如深度学习、数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、语音和手写识别等。
4.为了采用机器学习实现人工智能处理,服务器需要获取大量样本数据,并基于这些样本数据训练出机器学习模型,并将该机器学习模型部署到终端设备(如摄像机等),以使终端设备基于该机器学习模型实现人工智能处理。
5.但是,由于机器学习模型的训练过程涉及大量复杂运算,因此,导致机器学习模型的训练时间长,训练速度慢,运算量大,且资源消耗大。


技术实现要素:

6.本技术提供一种网络模型的训练方法,初始网络模型包括多个网络层,每个网络层包括初始模型权重,针对每个网络层,所述方法包括:
7.获取所述网络层对应的浮点型激活梯度值,对所述浮点型激活梯度值进行量化,得到定点型激活梯度值和激活值量化超参;
8.基于所述定点型激活梯度值对所述网络层的初始模型权重进行调整,将调整后的模型权重更新为所述网络层的初始模型权重;
9.若所述网络层不是首个网络层,则对所述网络层的初始模型权重进行量化,得到反向定点型权重和反向权重值量化超参;基于所述定点型激活梯度值、所述反向定点型权重、所述激活值量化超参和所述反向权重值量化超参,确定所述网络层的前一个网络层对应的浮点型激活梯度值。
10.本技术提供一种网络模型的训练装置,初始网络模型包括多个网络层,每个网络层均包括初始模型权重,针对每个网络层,所述装置包括:
11.获取模块,用于获取所述网络层对应的浮点型激活梯度值,对所述浮点型激活梯度值进行量化,得到定点型激活梯度值和激活值量化超参;
12.训练模块,用于基于所述定点型激活梯度值对所述网络层的初始模型权重进行调整,将调整后的模型权重更新为所述网络层的初始模型权重;
13.处理模块,用于若所述网络层不是首个网络层,则对所述网络层的初始模型权重进行量化,得到反向定点型权重和反向权重值量化超参;基于所述定点型激活梯度值、所述
反向定点型权重、所述激活值量化超参和所述反向权重值量化超参,确定所述网络层的前一个网络层对应的浮点型激活梯度值。
14.本技术提供一种网络模型的训练设备,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述的网络模型的训练方法。
15.由以上技术方案可见,本技术实施例中,可以对浮点型激活梯度值进行量化得到定点型激活梯度值,对初始模型权重进行量化得到反向定点型权重,基于定点型激活梯度值和反向定点型权重实现网络模型的训练,由于是基于定点型数据实现网络模型的训练,而定点型数据的运算复杂度较低,因此,可以减轻运算复杂度,运算量较小,资源消耗较小,能够对网络模型的训练过程进行加速,减少网络模型的训练时间,提高网络模型的训练速度,能够实现轻量化训练,可以同时实现前向加速和反向加速,同时网络模型的性能比较大,可以广泛应用于人工智能的各业务场景,如图像分类、目标检测、分割、姿态估计等业务场景。通过将高比特的浮点数据转化为低比特的定点数据进行存储和计算,能够大大的减小网络模型训练过程中的资源消耗,加快训练速度。
附图说明
16.为了更加清楚地说明本技术实施例或者现有技术中的技术方案,下面将对本技术实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本技术实施例的这些附图获得其他的附图。
17.图1是本技术一种实施方式中的网络模型的训练方法的流程示意图;
18.图2是本技术一种实施方式中的初始网络模型的结构示意图;
19.图3是本技术一种实施方式中的网络模型的训练过程示意图;
20.图4是本技术一种实施方式中的网络模型的训练装置的结构示意图;
21.图5是本技术一种实施方式中的网络模型的训练设备的硬件结构图。
具体实施方式
22.在本技术实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本技术。本技术和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
23.应当理解,尽管在本技术实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
24.本技术实施例中提出一种网络模型的训练方法,用于对初始网络模型进行训练,从而得到已训练的目标网络模型。其中,初始网络模型可以包括多个网络层,每个网络层均可以包括初始模型权重(即需要进行调整优化的模型权重)。
25.参见图1所示,为该方法的流程示意图,该方法可以包括:
26.步骤101、针对每个网络层,获取该网络层对应的浮点型激活梯度值,对该浮点型激活梯度值进行量化,得到定点型激活梯度值和激活值量化超参。
27.步骤102、基于定点型激活梯度值对该网络层的初始模型权重进行调整,将调整后的模型权重更新为该网络层的初始模型权重。
28.示例性的,基于定点型激活梯度值对该网络层的初始模型权重进行调整,可以包括但不限于:可以基于定点型激活梯度值确定定点型权重梯度值,并基于定点型权重梯度值和激活值量化超参确定浮点型权重梯度值;可以基于浮点型权重梯度值对网络层的初始模型权重进行调整,得到调整后的模型权重。
29.步骤103、若该网络层不是首个网络层,则可以对该网络层的初始模型权重进行量化,得到反向定点型权重和反向权重值量化超参;基于该定点型激活梯度值、该反向定点型权重、该激活值量化超参和该反向权重值量化超参,确定该网络层的前一个网络层对应的浮点型激活梯度值。
30.示例性的,对该网络层的初始模型权重进行量化,得到反向定点型权重和反向权重值量化超参,可以包括但不限于:若该网络层的输入通道数为cin,输出通道数为cout,则将该网络层的初始模型权重划分为cin个子模型权重;其中,每个子模型权重表示为cout*m*n,m*n为子模型权重的尺寸,cout为子模型权重的通道数;然后,对cin个子模型权重中的每个子模型权重进行量化,得到该子模型权重对应的反向定点型权重和反向权重值量化超参。
31.示例性的,基于该定点型激活梯度值、该反向定点型权重、该激活值量化超参和该反向权重值量化超参,确定该网络层的前一个网络层对应的浮点型激活梯度值,可以包括但不限于:基于该网络层对应的定点型激活梯度值和反向定点型权重,确定该网络层的前一个网络层对应的定点型激活梯度值;然后,基于前一个网络层对应的定点型激活梯度值、该激活值量化超参和该反向权重值量化超参,确定前一个网络层对应的浮点型激活梯度值。
32.示例性的,获取该网络层对应的浮点型激活梯度值可以包括:若该网络层是最后一个网络层,则获取该网络层对应的浮点型激活值,基于浮点型激活值和已标定的浮点型真值确定目标损失值,基于该目标损失值确定该网络层对应的浮点型激活梯度值。若该网络层不是最后一个网络层,则将该网络层的后一个网络层输出的浮点型激活梯度值确定为该网络层对应的浮点型激活梯度值。
33.在一种可能的实施方式中,在获取该网络层对应的浮点型激活梯度值之前,还可以获取该网络层对应的浮点型输入数据,对浮点型输入数据进行量化,得到定点型输入数据和输入数据量化超参;对该网络层的初始模型权重进行量化,得到正向定点型权重和正向权重值量化超参。然后,基于正向定点型权重对定点型输入数据进行处理,得到定点型激活值,并基于定点型激活值、输入数据量化超参和正向权重值量化超参确定该网络层对应的浮点型激活值。
34.示例性的,若该网络层不是最后一个网络层,则该网络层对应的浮点型激活值作为该网络层的后一个网络层对应的浮点型输入数据。
35.示例性的,对该网络层的初始模型权重进行量化,得到正向定点型权重和正向权
重值量化超参,可以包括但不限于:若该网络层的输入通道数为cin,输出通道数为cout,则将该网络层的初始模型权重划分为cout个子模型权重;其中,每个子模型权重表示为cin*m*n,m*n为子模型权重的尺寸,cin为子模型权重的通道数。然后,对cout个子模型权重中的每个子模型权重进行量化,得到子模型权重对应的正向定点型权重和正向权重值量化超参。
36.由以上技术方案可见,本技术实施例中,可以对浮点型激活梯度值进行量化得到定点型激活梯度值,对初始模型权重进行量化得到反向定点型权重,基于定点型激活梯度值和反向定点型权重实现网络模型的训练,由于是基于定点型数据实现网络模型的训练,而定点型数据的运算复杂度较低,因此,可以减轻运算复杂度,运算量较小,资源消耗较小,能够对网络模型的训练过程进行加速,减少网络模型的训练时间,提高网络模型的训练速度,能够实现轻量化训练,可以同时实现前向加速和反向加速,同时网络模型的性能比较大,可以广泛应用于人工智能的各业务场景,如图像分类、目标检测、分割、姿态估计等业务场景。通过将高比特的浮点数据转化为低比特的定点数据进行存储和计算,能够大大的减小网络模型训练过程中的资源消耗,加快训练速度。
37.以下结合具体应用场景,对本技术实施例的技术方案进行说明。
38.在介绍本技术的技术方案之前,先介绍与本技术实施例有关的概念。
39.机器学习:机器学习是实现人工智能的一种途径,用于研究计算机如何模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身性能。深度学习和神经网络属于机器学习的子类,深度学习是一种使用数学模型对真实世界中的特定问题进行建模,以解决该领域内相似问题的过程。神经网络是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型,这种神经网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。为了方便描述,以神经网络的结构和功能为例,机器学习的其它子类与神经网络的结构和功能类似。
40.神经网络:神经网络可以包括但不限于卷积神经网络(简称cnn)、循环神经网络(简称rnn)、全连接网络等,神经网络的结构单元可以包括但不限于卷积层(conv)、池化层(pool)、激励层、全连接层(fc)等。
41.在实际应用中,可以根据不同需求,将一个或多个卷积层,一个或多个池化层,一个或多个激励层,以及一个或多个全连接层进行组合构建神经网络。
42.在卷积层中,通过使用卷积核对输入数据特征进行卷积运算,使输入数据特征增强,该卷积核可以是m*n大小的矩阵,卷积层的输入数据特征与卷积核进行卷积,可以得到卷积层的输出数据特征,卷积运算实际是一个滤波过程。
43.在池化层中,通过对输入数据特征(如卷积层的输出)进行取最大值、取最小值、取平均值等操作,从而利用局部相关性的原理,对输入数据特征进行子抽样,减少处理量,并保持特征不变性,池化层运算实际是一个降采样过程。
44.在激励层中,可以使用激活函数(如非线性函数)对输入数据特征进行映射,从而引入非线性因素,使得神经网络通过非线性的组合增强表达能力。
45.该激活函数可以包括但不限于relu(rectified linear units,整流线性单元)函数,该relu函数用于将小于0的特征置0,而大于0的特征保持不变。
46.在全连接层中,用于将输入给本全连接层的所有数据特征进行全连接处理,从而
得到一个特征向量,且该特征向量中可以包括多个数据特征。
47.网络模型:可以预先构建一个网络模型,称为初始网络模型,初始网络模型是未完成训练的网络模型,初始网络模型可以是机器学习模型,如基于深度学习的机器学习模型或者基于神经网络的机器学习模型,对此不做限制。
48.针对初始网络模型的训练过程,可以利用样本数据训练初始网络模型,也就是对初始网络模型中的模型权重(即网络参数)进行调整优化的过程。比如说,初始网络模型可以包括多个网络层,每个网络层均包括初始模型权重,初始模型权重是需要进行调整优化的模型权重,如针对基于神经网络的初始网络模型,初始模型权重可以是卷积层参数(如卷积核参数)、池化层参数、激励层参数、全连接层参数等,针对初始网络模型的训练过程,可以利用样本数据对初始网络模型的多个网络层中的初始模型权重进行调整优化。
49.在初始网络模型训练完成后,已经完成训练的网络模型称为目标网络模型,目标网络模型的多个网络层中的模型权重称为目标模型权重,即目标模型权重是已经完成调整优化的模型权重。在得到目标网络模型之后,就可以将目标网络模型部署到终端设备,以使终端设备基于目标网络模型实现人工智能处理。
50.比如说,目标网络模型可以广泛应用于人工智能的各业务场景,如图像分类、目标检测、分割、姿态估计等业务场景,以目标检测为例,可以基于目标网络模型实现人脸检测、人体检测、车辆检测等功能,例如,针对人脸检测功能来说,可以将包括人脸的图像输入给目标网络模型,通过目标网络模型对该图像进行人工智能处理,而人工智能处理结果就是人脸检测结果。针对车辆检测功能来说,可以将包括车辆的图像输入给目标网络模型,通过目标网络模型对该图像进行人工智能处理,而人工智能处理结果就是车辆检测结果。
51.初始网络模型的量化:将浮点数表示的初始模型权重(即网络层的初始模型权重,也可以称为模型参数或者网络参数)、输入特征和输出特征,使用定点值近似表示,从而提高初始网络模型的运算速度,对初始网络模型进行压缩。
52.比如说,初始网络模型可以包括大量初始模型权重(如数百万等),这些初始模型权重是浮点数类型,浮点数类型的初始模型权重会占用大量存储空间,浮点数类型的初始模型权重的运算会消耗大量计算资源,如果在不影响初始网络模型准确率的情况下,可以采用定点数类型的初始模型权重进行计算,则能够提高计算速度,节约计算资源,节省存储空间,由此引入量化技术,即通过减少表示每个初始模型权重所需的比特数来压缩初始网络模型,基于量化技术,能够将浮点数类型的初始模型权重转换为定点数类型的初始模型权重。例如,针对初始网络模型的同一个网络层(如卷积层,池化层,激励层等),该网络层的初始模型权重分布在一个较小区间内,如区间[-10,30],-10表示该网络层的初始模型权重的最小值,30表示该网络层的初始模型权重的最大值。基于此,在采用8位数量化(可以有其它选择)的情况下,可以将该网络层的所有初始模型权重都线性映射(也可以采用非线性映射以压缩空间)到区间[-10,30]。
[0053]
本技术实施例提出一种网络模型的训练方法,通过将高比特的浮点数据(如32比特的浮点数据)转化为低比特的定点数据(如8比特的定点数据)进行存储和计算,能够减小网络模型训练过程中的资源消耗,加快训练速度。本实施例提出的是在轻量化训练中的权重量化算法,可以广泛应用到各人工智能的业务场景中,如对于图像分类、目标检测、分割、姿态估计等任务进行训练加速,可以同时实现前向加速和反向加速,同时性能相比浮点训
练基本无下降。
[0054]
本实施例中,可以预先构建一个网络模型,将这个网络模型称为初始网络模型,初始网络模型可以包括多个网络层,每个网络层均可以包括初始模型权重,参见图2所示,为初始网络模型的结构示意图,初始网络模型可以包括网络层21、网络层22和网络层23,当然,这里只是以3个网络层为例,初始网络模型的网络层数量会远远大于3个。网络层21是初始网络模型的第一个网络层,网络层23是初始网络模型的最后一个网络层,网络层22是初始网络模型的中间网络层,中间网络层的数量会远远大于1个,每个中间网络层的处理过程相同,本实施例中以一个中间网络层为例进行说明。此外,可以将网络层21的初始模型权重记为初始模型权重a1,将网络层22的初始模型权重记为初始模型权重a2,将网络层23的初始模型权重记为初始模型权重a3。
[0055]
示例性的,初始模型权重a1、初始模型权重a2和初始模型权重a3可以高精度权重,可以是随机生成或者预训练模型导入,对此来源不做限制。
[0056]
本实施例中,可以预先构建一个训练集合,该训练集合可以包括大量样本数据以及每个样本数据对应的标定数据,基于该训练集合对初始网络模型进行训练。为了方便说明,后续以一个样本数据的处理过程为例进行说明。
[0057]
其中,该样本数据可以是浮点数类型的样本数据,因此,将该样本数据称为浮点型样本数据,该样本数据对应的标定数据是浮点数类型的标定数据,因此,将该标定数据称为浮点型标定数据,也就是该样本数据的浮点型真值。
[0058]
在上述应用场景下,参见图3所示,网络模型的训练方法可以包括:
[0059]
步骤s11、获取网络层21对应的浮点型输入数据,对该浮点型输入数据进行量化,得到定点型输入数据d11和输入数据量化超参d12。对网络层21的初始模型权重a1进行量化,得到正向定点型权重d13和正向权重值量化超参d14。
[0060]
示例性的,由于网络层21是第一个网络层,因此,可以将浮点型样本数据作为网络层21对应的浮点型输入数据,对该浮点型输入数据进行量化,就可以得到定点型输入数据d11和输入数据量化超参d12。针对浮点型输入数据的量化过程,浮点型输入数据包括大量浮点数值,先确定输入数据量化超参d12,这个输入数据量化超参d12表示缩放系数,针对每个浮点数值,可以基于该缩放系数将该浮点数值转换为指定区间内的定点数值,而所有浮点数值对应的定点数值就组成定点型输入数据d11,当然,上述只是示例,对此量化过程不做限制。
[0061]
示例性的,针对初始模型权重a1的量化过程,初始模型权重a1包括大量浮点数值,先确定初始模型权重a1对应的正向权重值量化超参d14,这个正向权重值量化超参d14表示缩放系数,针对每个浮点数值,可以基于该缩放系数将该浮点数值转换为指定区间内的定点数值,而所有浮点数值对应的定点数值就组成正向定点型权重d13,当然,上述只是示例,对此量化过程不做限制。
[0062]
在一种可能的实施方式中,可以将网络层21的输入通道数记为cin1,可以将网络层21的输出通道数记为cout1,显然,网络层21对应的浮点型输入数据的通道数为cin1,即,浮点型输入数据的通道数与网络层21的输入通道数相同。以及,网络层21的初始模型权重a1可以为四维张量,初始模型权重a1的四个维度可以分别为cin1、cout1、m1、n1,m1和n1为初始模型权重a1的尺寸。
[0063]
在此基础上,对网络层21的初始模型权重a1进行量化,得到正向定点型权重d13和正向权重值量化超参d14,可以包括但不限于:将初始模型权重a1划分为cout1个子模型权重,每个子模型权重表示为cin1*m1*n1,m1*n1为子模型权重的尺寸,cin1为子模型权重的通道数。然后,对cout1个子模型权重中的每个子模型权重进行量化,得到该子模型权重对应的正向定点型权重d13和正向权重值量化超参d14。综上所述,可以得到cout1个子模型权重、cout1个正向定点型权重d13和cout1个正向权重值量化超参d14。针对每个子模型权重,该子模型权重对应一个正向定点型权重d13和一个正向权重值量化超参d14。
[0064]
综上可以看出,对于模型训练过程的前向方向,是按照初始模型权重a1的输出通道数cout1进行量化,每个输出通道对应一个正向权重值量化超参。
[0065]
步骤s12、针对网络层21,基于正向定点型权重d13对定点型输入数据d11进行处理,得到定点型激活值d15,并基于定点型激活值d15、输入数据量化超参d12和正向权重值量化超参d14确定网络层21对应的浮点型激活值d16。
[0066]
示例性的,针对定点型输入数据d11的处理过程,可以与网络层21的功能有关,比如说,若网络层21用于实现卷积功能,则可以基于定点型输入数据d11和正向定点型权重d13进行卷积运算,得到定点型激活值d15,若网络层21用于实现池化功能,则可以基于定点型输入数据d11和正向定点型权重d13进行池化运算,得到定点型激活值d15,以此类推。显然,由于是基于定点型数据(如定点型输入数据d11和正向定点型权重d13)进行运算,而不是基于浮点型数据进行运算,因此,可以加速网络层21的处理过程,实现运算加速功能。
[0067]
示例性的,在得到定点型激活值d15之后,还可以将定点型激活值d15转换为浮点型激活值d16,即对定点型激活值d15进行反量化,得到浮点型激活值d16。比如说,基于输入数据量化超参d12和正向权重值量化超参d14对定点型激活值d15进行反量化,得到浮点型激活值d16。其中,关于反量化的实现方式,是上述量化方式的反向操作,本实施例中对此反量化的实现方式不做限制。
[0068]
在一种可能的实施方式中,可以采用如下公式表示上述过程。
[0069][0070]
在上述公式中,w表示初始模型权重a1,x表示浮点型输入数据,y表示浮点型激活值d16,∑wx表示基于初始模型权重a1和浮点型输入数据进行处理,与网络层21的功能有关,如网络层21用于实现卷积功能时,∑wx表示基于初始模型权重a1和浮点型输入数据进行卷积运算,得到浮点型激活值d16。
[0071]
参见上述实施例,可以对初始模型权重a1进行量化,得到正向定点型权重d13和正向权重值量化超参d14,因此,浮点型的w可以转换为alpha和wq,alpha表示正向权重值量化超参d14,wq表示正向定点型权重d13。
[0072]
参见上述实施例,可以对浮点型输入数据进行量化,得到定点型输入数据d11和输入数据量化超参d12,因此,浮点型输入数据x可以转换为和xq,表示输入数据
量化超参d12,xq表示定点型输入数据d11。
[0073]
显然,基于上述转换关系,初始模型权重a1和浮点型输入数据的运算过程,就可以转换为定点型输入数据d11和正向定点型权重d13的运算过程,即浮点型数据的运算过程转换为定点型数据的运算过程,从而简化运算复杂度。
[0074]
比如说,在中,∑wqxq表示定点型输入数据d11和正向定点型权重d13的运算过程,这个运算过程是定点型数据的运算过程,运算结果就是定点型激活值d15,然后,基于输入数据量化超参d12和正向权重值量化超参d14对定点型激活值d15进行反量化,就可以得到浮点型激活值d16。
[0075]
在一种可能的实施方式中,网络层21的输入通道数为cin1,网络层21的输出通道数为cout1,浮点型输入数据的通道数为cin1,初始模型权重a1的四个维度分别为cin1、cout1、m1、n1,浮点型输入数据的三个维度分别为cin1、h和w,h和w表示浮点型输入数据的尺寸。以及,初始模型权重a1对应cout1个子模型权重,每个子模型权重表示为cin1*m1*n1,在此基础上:
[0076]
针对每个子模型权重,可以基于该子模型权重对应的正向定点型权重d13对定点型输入数据d11进行处理,得到定点型激活值d15,由于正向定点型权重d13的维度是cin1*m1*n1,定点型输入数据d11的维度(与浮点型输入数据的维度相同)是cin1*h*w,即二者的输入通道数相同,均为cin1,以卷积运算为例,在对二者进行卷积运算之后,定点型激活值d15的维度可以是h*w,也就是说,每个子模型权重对应一个h*w维度的定点型激活值d15。进一步的,在将定点型激活值d15转换为浮点型激活值d16之后,浮点型激活值d16也是h*w维度,即,每个子模型权重对应一个h*w维度的浮点型激活值d16。
[0077]
由于初始模型权重a1对应cout1个子模型权重,因此,cout1个子模型权重就对应cout1个h*w维度的浮点型激活值d16,也就是说,浮点型激活值d16的维度是cout1*h*w,cout1表示浮点型激活值d16的通道数,h*w表示尺寸。
[0078]
步骤s13、获取网络层22对应的浮点型输入数据,对该浮点型输入数据进行量化,得到定点型输入数据d21和输入数据量化超参d22。对网络层22的初始模型权重a2进行量化,得到正向定点型权重d23和正向权重值量化超参d24。
[0079]
由于网络层22是第二个网络层,因此,可以将第一个网络层输出的浮点型激活值(即浮点型激活值d16)作为网络层22对应的浮点型输入数据,对浮点型输入数据进行量化,可以得到定点型输入数据d21和输入数据量化超参d22。
[0080]
在一种可能的实施方式中,可以将网络层22的输入通道数记为cin2,将网络层22的输出通道数记为cout2,网络层22的输入通道数cin2与网络层21的输出通道数cout1相同,即浮点型激活值d16(浮点型输入数据)的通道数cout1与网络层22的输入通道数cin21相同。初始模型权重a2可以为四维张量,四个维度可以分别为cin2、cout2、m2、n2,m2和n2为初始模型权重a2的尺寸。
[0081]
在此基础上,对网络层22的初始模型权重a2进行量化,得到正向定点型权重d23和正向权重值量化超参d24,可以包括但不限于:将初始模型权重a2划分为cout2个子模型权重,每个子模型权重表示为cin2*m2*n2,m2*n2为子模型权重的尺寸,cin2为子模型权重的通道数。然后,对cout2个子模型权重中的每个子模型权重进行量化,得到该子模型权重对应的正向定点型权重d23和正向权重值量化超参d24。综上所述,可以得到cout2个子模型权
重、cout2个正向定点型权重d23和cout2个正向权重值量化超参d24。
[0082]
步骤s14、针对网络层22,基于正向定点型权重d23对定点型输入数据d21进行处理,得到定点型激活值d25,并基于定点型激活值d25、输入数据量化超参d22和正向权重值量化超参d24确定网络层22对应的浮点型激活值d26。
[0083]
示例性的,步骤s14的处理过程可以参见步骤s12,在此不再重复赘述。
[0084]
在一种可能的实施方式中,网络层22的输入通道数为cin2,网络层22的输出通道数为cout2,浮点型输入数据(即浮点型激活值d16)的通道数为cout1,且cout1与cin2相同,后续将浮点型输入数据的通道数记为cin2,因此,初始模型权重a2的四个维度分别为cin2、cout2、m2、n2,浮点型输入数据的三个维度分别为cin2、h和w,h和w表示浮点型输入数据的尺寸,初始模型权重a2对应cout2个子模型权重,每个子模型权重表示为cin2*m2*n2,在此基础上:
[0085]
针对每个子模型权重,可以基于该子模型权重对应的正向定点型权重d23对定点型输入数据d21进行处理,得到定点型激活值d25,由于正向定点型权重d23的维度是cin2*m2*n2,定点型输入数据d21的维度是cin2*h*w,即二者的输入通道数均为cin2,因此,定点型激活值d25的维度是h*w,即每个子模型权重对应h*w维度的定点型激活值d25,并且,浮点型激活值d26也是h*w维度,即,每个子模型权重对应一个h*w维度的浮点型激活值d26。
[0086]
由于初始模型权重a2对应cout2个子模型权重,因此,cout2个子模型权重就对应cout2个h*w维度的浮点型激活值d26,也就是说,浮点型激活值d26的维度是cout2*h*w,cout2表示浮点型激活值d26的通道数,h*w表示尺寸。
[0087]
步骤s15、获取网络层23对应的浮点型输入数据(将第二个网络层输出的浮点型激活值d26作为该浮点型输入数据),对该浮点型输入数据进行量化,得到定点型输入数据d31和输入数据量化超参d32。对网络层23的初始模型权重a3进行量化,得到正向定点型权重d33和正向权重值量化超参d34。
[0088]
示例性的,可以将网络层23的输入通道数记为cin3,将网络层23的输出通道数记为cout3,网络层23的输入通道数cin3与网络层22的输出通道数cout2相同,初始模型权重a3可以为四维张量,四个维度分别为cin3、cout3、m3、n3,m3和n3为初始模型权重a2的尺寸。在此基础上,将初始模型权重a3划分为cout3个子模型权重,每个子模型权重表示为cin3*m3*n3,cin3为子模型权重的通道数。然后,对cout3个子模型权重中的每个子模型权重进行量化,得到该子模型权重对应的正向定点型权重d33和正向权重值量化超参d34。
[0089]
步骤s16、针对网络层23,基于正向定点型权重d33对定点型输入数据d31进行处理,得到定点型激活值d35,并基于定点型激活值d35、输入数据量化超参d32和正向权重值量化超参d34确定网络层23对应的浮点型激活值d36。
[0090]
示例性的,步骤s16的处理过程可以参见步骤s12,在此不再重复赘述。
[0091]
在一种可能的实施方式中,网络层23的输入通道数为cin3,网络层23的输出通道数为cout3,浮点型输入数据(即浮点型激活值d26)的通道数为cout2,且cout2与cin3相同,因此,初始模型权重a3的四个维度分别为cin3、cout3、m3、n3,浮点型输入数据的三个维度分别为cin3、h和w,初始模型权重a3对应cout3个子模型权重,每个子模型权重表示为cin3*m3*n3,在此基础上:
[0092]
针对每个子模型权重,基于该子模型权重对应的正向定点型权重d33对定点型输
入数据d31进行处理,得到定点型激活值d35,由于正向定点型权重d33的输入通道数和定点型输入数据d31的输入通道数均为cin3,因此,定点型激活值d35和浮点型激活值d36均是h*w维度,即,每个子模型权重对应一个h*w维度的浮点型激活值d36。由于初始模型权重a3对应cout3个子模型权重,因此,cout3个子模型权重就对应cout3个h*w维度的浮点型激活值d36,即,浮点型激活值d36的维度是cout3*h*w,cout3表示浮点型激活值d36的通道数。
[0093]
步骤s17、网络层23是最后一个网络层,基于网络层23对应的浮点型激活值d36和已标定的浮点型真值(步骤s11中浮点型样本数据对应的标定数据)确定目标损失值,基于目标损失值确定网络层23对应的浮点型激活梯度值e31。
[0094]
示例性的,可以预先配置损失函数,该损失函数的输入是浮点型激活值和浮点型真值,该损失函数的输出是目标损失值,对此损失函数不做限制。
[0095]
示例性的,由于网络层23是最后一个网络层,因此,在得到网络层23对应的浮点型激活值d36之后,就可以将浮点型激活值d36和浮点型激活值d36对应的浮点型真值代入该损失函数,得到目标损失值,对此过程不做限制。
[0096]
在得到目标损失值后,基于目标损失值采用梯度下降法等算法,确定网络层23对应的浮点型激活梯度值e31,浮点型激活梯度值e31是梯度(gradient),用于对网络层23的初始模型权重a3进行调整优化,对此过程不做限制。
[0097]
步骤s18、针对网络层23,对浮点型激活梯度值e31进行量化,得到定点型激活梯度值e32和激活值量化超参e33。基于定点型激活梯度值e32对网络层23的初始模型权重a3进行调整,得到调整后的模型权重,将调整后的模型权重更新为网络层23的初始模型权重,即调整后的模型权重作为初始模型权重a3。
[0098]
示例性的,针对浮点型激活梯度值e31的量化过程,浮点型激活梯度值e31包括大量浮点数值,先确定激活值量化超参e33,激活值量化超参e33表示缩放系数,针对每个浮点数值,可以基于该缩放系数将该浮点数值转换为指定区间内的定点数值,而所有浮点数值对应的定点数值就组成定点型激活梯度值e32。
[0099]
示例性的,在得到定点型激活梯度值e32之后,就可以基于定点型激活梯度值e32对初始模型权重a3进行调整,比如说,可以基于定点型激活梯度值e32确定定点型权重梯度值e34,并基于定点型权重梯度值e34和激活值量化超参e33确定浮点型权重梯度值e35,然后,可以基于浮点型权重梯度值e35对网络层23的初始模型权重a3进行调整,从而得到调整后的模型权重。
[0100]
比如说,基于定点型激活梯度值e32,可以采用梯度下降法等算法,确定定点型权重梯度值e34,如基于定点型激活梯度值e32和定点型输入数据d31等信息,确定出定点型权重梯度值e34,对此确定过程不做限制。由于是基于定点型数据(如定点型激活梯度值e32和定点型输入数据d31)进行运算,而不是基于浮点型数据进行运算,因此,可以加速网络层23的处理过程,实现运算加速。
[0101]
比如说,在得到定点型权重梯度值e34之后,还可以将定点型权重梯度值e34转换为浮点型权重梯度值e35,即对定点型权重梯度值e34进行反量化,得到浮点型权重梯度值e35。比如说,基于激活值量化超参e33对定点型权重梯度值e34进行反量化,得到浮点型权重梯度值e35。其中,关于反量化的实现方式,是上述量化方式的反向操作,本实施例中对此反量化的实现方式不做限制。
[0102]
比如说,在得到浮点型权重梯度值e35之后,就可以基于浮点型权重梯度值e35对初始模型权重a3进行调整,从对此调整过程不做限制。
[0103]
在一种可能的实施方式中,可以采用如下公式表示上述过程。
[0104][0105]
在上述公式中,wg用于表示浮点型权重梯度值e35,yg用于表示浮点型激活梯度值e31,x用于表示网络层23对应的浮点型输入数据,∑ygx用于表示基于浮点型激活梯度值e31和浮点型输入数据进行处理,如卷积运算等。
[0106]
在上述公式中,xq用于表示浮点型输入数据x对应的定点型输入数据d31,y
gq
用于表示浮点型激活梯度值e31对应的定点型激活梯度值e32,∑x
qygq
表示基于定点型激活梯度值e32和定点型输入数据d31确定定点型权重梯度值e34。
[0107]
表示输入定点型输入数据d31对应的数据量化超参d32,表示定点型激活梯度值e32对应的激活值量化超参e33,基于数据量化超参d32和激活值量化超参e33,就可以将定点型权重梯度值e34转换为浮点型权重梯度值e35。
[0108]
步骤s19、由于网络层23不是首个网络层,因此,针对网络层23,对网络层23的初始模型权重a3进行量化,得到反向定点型权重e36和反向权重值量化超参e37;基于定点型激活梯度值e32、反向定点型权重e36、激活值量化超参e33和反向权重值量化超参e37,确定网络层23的前一个网络层22对应的浮点型激活梯度值e21,将网络层22对应的浮点型激活梯度值e21输出给网络层22。
[0109]
示例性的,针对初始模型权重a3的量化过程,初始模型权重a3包括大量浮点数值,先确定初始模型权重a3对应的反向权重值量化超参e37,反向权重值量化超参e37表示缩放系数,可以基于该缩放系数将每个浮点数值转换为指定区间内的定点数值,而所有浮点数值对应的定点数值就组成反向定点型权重e36。
[0110]
其中,网络层23的输入通道数为cin3,网络层23的输出通道数为cout3,网络层23的初始模型权重a3可以为四维张量,初始模型权重a3的四个维度可以分别为cin3、cout3、m3、n3,m3和n3为初始模型权重a3的尺寸。
[0111]
在此基础上,对网络层23的初始模型权重a3进行量化,得到反向定点型权重e36和反向权重值量化超参e37,可以包括但不限于:将初始模型权重a3划分为cin3个子模型权重,每个子模型权重表示为cout3*m3*n3,m3*n3为子模型权重的尺寸,cout3为子模型权重的通道数。然后,对cin3个子模型权重中的每个子模型权重进行量化,得到该子模型权重对应的反向定点型权重e36和反向权重值量化超参e37。综上所述,可以得到cin3个子模型权重、cin3个反向定点型权重e36和cin3个反向权重值量化超参e37。针对每个子模型权重,该子模型权重对应一个反向定点型权重e36和一个反向权重值量化超参e37。
[0112]
综上可以看出,对于模型训练过程的反向方向,是按照初始模型权重a3的输入通道数cin3进行量化,每个输入通道对应一个反向权重值量化超参。
[0113]
示例性的,针对“基于定点型激活梯度值e32、反向定点型权重e36、激活值量化超参e33和反向权重值量化超参e37确定网络层22对应的浮点型激活梯度值e21”的过程,可以
包括:基于定点型激活梯度值e32和反向定点型权重e36确定网络层22对应的定点型激活梯度值e22;基于定点型激活梯度值e22、激活值量化超参e33和反向权重值量化超参e37确定浮点型激活梯度值e21。
[0114]
其中,针对定点型激活梯度值e32和反向定点型权重e36的处理过程,可以与网络层23的功能有关,比如说,若网络层23用于实现卷积功能,则可以基于定点型激活梯度值e32和反向定点型权重e36进行卷积运算,得到网络层22对应的定点型激活梯度值e22,以此类推。显然,由于是基于定点型数据(如定点型激活梯度值e32和反向定点型权重e36)进行运算,而不是基于浮点型数据进行运算,因此,可以加速网络层23的处理过程,实现运算加速功能。
[0115]
其中,在得到定点型激活梯度值e22之后,还可以将定点型激活梯度值e22转换为浮点型激活梯度值e21,即对定点型激活梯度值e22进行反量化,得到浮点型激活梯度值e21。比如说,基于激活值量化超参e33和反向权重值量化超参e37对定点型激活梯度值e22进行反量化,得到浮点型激活梯度值e21。
[0116]
在一种可能的实施方式中,可以采用如下公式表示上述过程。
[0117][0118]
在上述公式中,xg用于表示网络层22对应的浮点型激活梯度值e21,w用于表示初始模型权重a3,yg表示网络层23对应的浮点型激活梯度值e31。∑y
g w表示基于初始模型权重a3和浮点型激活梯度值e31进行处理,该处理过程与网络层23的功能有关,如网络层23用于实现卷积功能时,则表示基于初始模型权重a3和浮点型激活梯度值e31进行卷积运算,得到浮点型激活梯度值e21。
[0119]
参见上述实施例,可以对初始模型权重a3进行量化,得到反向定点型权重e36和反向权重值量化超参e37,因此,浮点型的w可以转换为alpha
in
和wq,alpha
in
表示反向权重值量化超参e37,wq表示反向定点型权重e36。
[0120]
参见上述实施例,可以对浮点型激活梯度值e31进行量化,得到定点型激活梯度值e32和激活值量化超参e33,因此,浮点型的yg可以转换为和y
gq
,表示激活值量化超参e33,y
gq
表示定点型激活梯度值e32。
[0121]
显然,基于上述转换关系,初始模型权重a3和浮点型激活梯度值e31的运算过程,就可以转换为反向定点型权重e36和定点型激活梯度值e32的运算过程,即浮点型数据的运算过程转换为定点型数据的运算过程,从而简化运算复杂度。
[0122]
比如说,在中,∑w
qygq
表示反向定点型权重e36和定点型激活梯度值e32的运算过程,显然,这个运算过程是定点型数据的运算过程,运算结果就是网络层22对应的定点型激活梯度值e22,然后,基于反向权重值量化超参e37和激活值量化超参e33对定点型激活梯度值e22进行反量化,就可以得到网络层22对应的浮点型激活梯度值e21。
[0123]
在一种可能的实施方式中,网络层23的输入通道数为cin3,网络层23的输出通道数为cout3,浮点型激活梯度值e31由网络层23输出,即浮点型激活梯度值e31的通道数为cout3,初始模型权重a3的四个维度分别为cin3、cout3、m3、n3,浮点型激活梯度值e31的三个维度分别为cout3、h和w,初始模型权重a3对应cin3个子模型权重,每个子模型权重表示为cout3*m3*n3,基于此:
[0124]
针对每个子模型权重,可以基于该子模型权重对应的反向定点型权重e36和定点型激活梯度值e32确定浮点型激活梯度值e21,由于反向定点型权重e36的维度是cout3*m3*n3,定点型激活梯度值e32的维度(与浮点型激活梯度值e31的维度相同)是cout3*h*w,即二者的输入通道数相同,均为cout3,以卷积运算为例,在对二者进行卷积运算之后,浮点型激活梯度值e21的维度可以是h*w,也就是说,每个子模型权重对应一个h*w维度的浮点型激活梯度值e21。
[0125]
由于初始模型权重a3对应cin3个子模型权重,因此,cin3个子模型权重就对应cin3个h*w维度的浮点型激活梯度值e21,即,浮点型激活梯度值e21的维度是cin3*h*w,cin3表示浮点型激活梯度值e21的通道数,h*w表示尺寸。
[0126]
步骤s20、针对网络层22,将网络层22的后一个网络层23输出的浮点型激活梯度值e21确定为网络层22对应的浮点型激活梯度值e21。然后,对浮点型激活梯度值e21进行量化,得到定点型激活梯度值e22和激活值量化超参e23。基于定点型激活梯度值e22对网络层22的初始模型权重a2进行调整,得到调整后的模型权重,将调整后的模型权重更新为网络层22的初始模型权重a2。
[0127]
示例性的,可以基于定点型激活梯度值e22确定定点型权重梯度值e24,并基于定点型权重梯度值e24和激活值量化超参e23确定浮点型权重梯度值e25,基于浮点型权重梯度值e25对初始模型权重a2进行调整,得到调整后的模型权重。比如说,基于定点型激活梯度值e22,可以采用梯度下降法等算法,确定定点型权重梯度值e24,如基于定点型激活梯度值e22和定点型输入数据d21等信息,确定出定点型权重梯度值e24。在得到定点型权重梯度值e24之后,可以将定点型权重梯度值e24转换为浮点型权重梯度值e25,即对定点型权重梯度值e24进行反量化,得到浮点型权重梯度值e25。在得到浮点型权重梯度值e25之后,就可以基于浮点型权重梯度值e25对初始模型权重a2进行调整。
[0128]
步骤s21、由于网络层22不是首个网络层,因此,针对网络层22,对网络层22的初始模型权重a2进行量化,得到反向定点型权重e26和反向权重值量化超参e27;基于定点型激活梯度值e22、反向定点型权重e26、激活值量化超参e23和反向权重值量化超参e27,确定网络层22的前一个网络层21对应的浮点型激活梯度值e11,将网络层21对应的浮点型激活梯度值e11输出给网络层21。
[0129]
其中,网络层22的输入通道数为cin2,输出通道数为cout2,网络层22的初始模型权重a2可以为四维张量,初始模型权重a2的四个维度可以分别为cin2、cout2、m2、n2。在此基础上,对初始模型权重a2进行量化,得到反向定点型权重e26和反向权重值量化超参e27,可以包括但不限于:将初始模型权重a2划分为cin2个子模型权重,每个子模型权重表示为cout2*m2*n2,对cin2个子模型权重中的每个子模型权重进行量化,得到该子模型权重对应的反向定点型权重e26和反向权重值量化超参e27。综上所述,可以得到cin2个子模型权重、cin2个反向定点型权重e26和cin2个反向权重值量化超参e27。
[0130]
其中,浮点型激活梯度值e21的通道数为网络层23的输入通道数cin3,网络层23的输入通道数cin3与网络层22的输出通道数cout2相同,将浮点型激活梯度值e21的通道数记为cout2。综上所述,初始模型权重a2的四个维度为cin2、cout2、m2、n2,浮点型激活梯度值e21的三个维度为cout2、h和w,初始模型权重a2对应cin2个子模型权重,每个子模型权重表示为cout2*m2*n2。
[0131]
针对每个子模型权重,基于该子模型权重对应的反向定点型权重e26和定点型激活梯度值e22确定浮点型激活梯度值e11,由于反向定点型权重e26的维度是cout2*m2*n2,定点型激活梯度值e22的维度(与浮点型激活梯度值e21的维度相同)是cout2*h*w,即输入通道数相同,均为cout2,因此,浮点型激活梯度值e11的维度是h*w,也就是说,每个子模型权重对应一个h*w维度的浮点型激活梯度值e11。由于初始模型权重a2对应cin2个子模型权重,因此,cin2个子模型权重就对应cin2个h*w维度的浮点型激活梯度值e11,即浮点型激活梯度值e11的维度是cin2*h*w,cin2表示浮点型激活梯度值e11的通道数。
[0132]
步骤s22、针对网络层21,将网络层21的后一个网络层22输出的浮点型激活梯度值e11确定为网络层21对应的浮点型激活梯度值e11。然后,对浮点型激活梯度值e11进行量化,得到定点型激活梯度值e12和激活值量化超参e13。基于定点型激活梯度值e12对网络层21的初始模型权重a1进行调整,得到调整后的模型权重,将调整后的模型权重更新为网络层21的初始模型权重a1。
[0133]
示例性的,可以基于定点型激活梯度值e12确定定点型权重梯度值e14,基于定点型权重梯度值e14和激活值量化超参e13确定浮点型权重梯度值e15,基于浮点型权重梯度值e15对初始模型权重a1进行调整,得到调整后的模型权重。
[0134]
示例性的,由于网络层21已经是首个网络层,因此,不再确定网络层21的前一个网络层对应的浮点型激活梯度值,结束浮点型激活梯度值的传输。
[0135]
至此,已经对所有网络层的初始模型权重进行调整,得到调整后的模型权重,然后,基于调整后的模型权重返回步骤s11,重复执行上述步骤。
[0136]
在一种可能的实施方式中,可以判断初始网络模型是否已收敛,如果已收敛,则将已收敛的网络模型作为目标网络模型,完成网络模型的训练过程,如果未收敛,则重复上述步骤,继续对各网络层中的初始模型权重进行调整。
[0137]
在一种可能的实施方式中,在得到目标网络模型之后,还可以在终端设备部署目标网络模型,以通过目标网络模型对应用数据(如图像数据等)进行处理,即通过目标网络模型对应用数据进行人工智能处理。比如说,针对待处理的应用数据,可以将应用数据输入给目标网络模型,通过目标网络模型对应用数据进行处理,得到处理结果(如人工智能处理结果)。比如说,假设目标网络模型用于实现目标检测(如人脸检测、人体检测、车辆检测等),则将应用数据提供给目标网络模型之后,由目标网络模型确定目标检测结果。
[0138]
由以上技术方案可见,本技术实施例中,可以对浮点型激活梯度值进行量化得到定点型激活梯度值,对初始模型权重进行量化得到反向定点型权重,基于定点型激活梯度值和反向定点型权重实现网络模型的训练,由于是基于定点型数据实现网络模型的训练,而定点型数据的运算复杂度较低,因此,可以减轻运算复杂度,运算量较小,资源消耗较小,能够对网络模型的训练过程进行加速,减少网络模型的训练时间,提高网络模型的训练速度,能够实现轻量化训练,可以同时实现前向加速和反向加速,同时网络模型的性能比较
大,可以广泛应用于人工智能的各业务场景,如图像分类、目标检测、分割、姿态估计等业务场景。通过将高比特的浮点数据转化为低比特的定点数据进行存储和计算,能够大大的减小网络模型训练过程中的资源消耗,加快训练速度。上述方式是一种轻量化训练算法,能够对模型权重,模型激活值,权重的梯度,激活值的梯度等参数进行量化,在前向和反向过程中对权重按照cout和cin两个不同维度进行量化,从而可以同时实现前向和反向加速,效率大大提升。
[0139]
基于与上述方法同样的申请构思,本技术实施例中提出一种网络模型的训练装置,初始网络模型包括多个网络层,每个网络层均包括初始模型权重,参见图4所示,为所述装置的结构示意图,针对每个网络层,所述装置可以包括:
[0140]
获取模块41,用于获取所述网络层对应的浮点型激活梯度值,对所述浮点型激活梯度值进行量化,得到定点型激活梯度值和激活值量化超参;
[0141]
训练模块42,用于基于所述定点型激活梯度值对所述网络层的初始模型权重进行调整,将调整后的模型权重更新为所述网络层的初始模型权重;
[0142]
处理模块43,用于若所述网络层不是首个网络层,则对所述网络层的初始模型权重进行量化,得到反向定点型权重和反向权重值量化超参;基于所述定点型激活梯度值、所述反向定点型权重、所述激活值量化超参和所述反向权重值量化超参,确定所述网络层的前一个网络层对应的浮点型激活梯度值。
[0143]
示例性的,所述处理模块43对网络层的初始模型权重进行量化,得到反向定点型权重和反向权重值量化超参时具体用于:若所述网络层的输入通道数为cin,输出通道数为cout,则将所述网络层的初始模型权重划分为cin个子模型权重;其中,每个子模型权重表示为cout*m*n,m*n为所述子模型权重的尺寸,cout为所述子模型权重的通道数;对所述cin个子模型权重中的每个子模型权重进行量化,得到所述子模型权重对应的反向定点型权重和反向权重值量化超参。
[0144]
示例性的,所述训练模块42基于所述定点型激活梯度值对所述网络层的初始模型权重进行调整时具体用于:基于所述定点型激活梯度值确定定点型权重梯度值;基于所述定点型权重梯度值和所述激活值量化超参确定浮点型权重梯度值;基于所述浮点型权重梯度值对所述网络层的初始模型权重进行调整。
[0145]
示例性的,所述处理模块43基于定点型激活梯度值、反向定点型权重、激活值量化超参和反向权重值量化超参,确定所述网络层的前一个网络层对应的浮点型激活梯度值时具体用于:基于所述网络层对应的所述定点型激活梯度值和所述反向定点型权重,确定所述网络层的前一个网络层对应的定点型激活梯度值;基于所述前一个网络层对应的定点型激活梯度值、所述激活值量化超参和所述反向权重值量化超参,确定所述前一个网络层对应的浮点型激活梯度值。
[0146]
示例性的,所述获取模块41获取所述网络层对应的浮点型激活梯度值时具体用于:若所述网络层是最后一个网络层,则获取所述网络层对应的浮点型激活值,基于所述浮点型激活值和已标定的浮点型真值确定目标损失值,并基于所述目标损失值确定所述网络层对应的浮点型激活梯度值;或者,若所述网络层不是所述初始网络模型的最后一个网络层,则将所述网络层的后一个网络层输出的浮点型激活梯度值确定为所述网络层对应的浮点型激活梯度值。
[0147]
示例性的,所述获取模块41,还用于获取所述网络层对应的浮点型输入数据,对所述浮点型输入数据进行量化,得到定点型输入数据和输入数据量化超参;对所述网络层的初始模型权重进行量化,得到正向定点型权重和正向权重值量化超参;所述处理模块43,还用于基于所述正向定点型权重对所述定点型输入数据进行处理,得到定点型激活值,并基于所述定点型激活值、所述输入数据量化超参和所述正向权重值量化超参确定所述网络层对应的浮点型激活值;其中,若所述网络层不是所述初始网络模型的最后一个网络层,则所述网络层对应的浮点型激活值作为所述网络层的后一个网络层对应的浮点型输入数据。
[0148]
示例性的,所述处理模块43对网络层的初始模型权重进行量化,得到正向定点型权重和正向权重值量化超参时具体用于:若所述网络层的输入通道数为cin,输出通道数为cout,则将所述网络层的初始模型权重划分为cout个子模型权重;其中,每个子模型权重表示为cin*m*n,m*n为所述子模型权重的尺寸,cin为所述子模型权重的通道数;对所述cout个子模型权重中的每个子模型权重进行量化,得到所述子模型权重对应的正向定点型权重和正向权重值量化超参。
[0149]
基于与上述方法同样的申请构思,本技术实施例提出一种网络模型的训练设备,参见图5所示,网络模型的训练设备包括处理器51和机器可读存储介质52,机器可读存储介质52存储有能够被处理器81执行的机器可执行指令;处理器51用于执行机器可执行指令,以实现上述示例公开的网络模型的训练方法。
[0150]
基于与上述方法同样的申请构思,本技术实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本技术上述示例公开的网络模型的训练方法。
[0151]
其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0152]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0153]
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0154]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0155]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一
流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0156]
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
[0157]
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0158]
以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1