System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及神经网络训练,尤其涉及一种卷积神经网络量化训练方法、装置、设备及介质。
技术介绍
1、随着卷积神经网络技术以及基于神经网络加速的硬件的发展,大量应用将神经网络部署在专用芯片以及现场可编程逻辑门阵列(field programmable gate array,fpga)上。为了降低能耗以及减少计算单元使用,基于这一类平台部署的卷积神经网络算法通常使用量化技术量化为定点数,并使用定点数在硬件上进行推理。在网络卷积层以及全连接层的具体实现过程中,需要进行大量的乘累加实现卷积,乘累加的结果即部分和需要保存在硬件的寄存器,即累加器中。然而,累加器的位宽是有限的,大量的乘累加结果可能导致存储的数据超过累加器的位宽表示上限,造成数据溢出从而引发结果产生误差,无法实现算法所需要实现的功能。因此,基于硬件部署平台的需求,在神经网络算法的训练过程中对包括累加器在内的位宽进行感知,以减少数据的溢出情况,成为提升神经网络精度的重要研究方向。
技术实现思路
1、(一)要解决的技术问题
2、为解决现有技术中卷积神经网络所出现的上述技术问题至少之一,本专利技术的实施例提供了一种卷积神经网络量化训练方法、装置、设备及介质,在量化感知训练(quantization aware training,qat)的基础上,进一步对量化后的权重分布实施了约束,有利于降低卷积层、全连接层乘累加部分和的绝对值大小,以减少固定位宽的累加器上的数据溢出情况,提升量化算法在部署平台上的目标精度。
3
4、针对上述技术问题,本专利技术的实施例提出一种卷积神经网络量化训练方法、装置、设备及介质。
5、根据本专利技术的第一个方面提供了一种卷积神经网络量化训练方法,包括:获取初始卷积神经网络,初始卷积神经网络包括卷积层和全连接层;基于量化感知训练方法,对卷积层以及全连接层进行训练,得到卷积层以及全连接层量化后的权重;按照预设条件判断权重是否满足预设的累加器感知的优化目标;将不满足优化目标的权重输入到惩罚函数中,得到惩罚损失;定义满足优化目标的权重对应的惩罚损失为0;将惩罚损失和任务损失按照预设权重相加得到总损失函数;基于总损失函数,进行联合训练;以及完成所有轮次训练后,将批归一化层的参数融合进前级卷积层,以更新前级卷积层中权重的缩放因子和偏置的缩放因子,得到训练完成的卷积神经网络。
6、在一些示例性的实施例中,初始卷积神经网络包括经过初始化的浮点数表示的网络或经过预训练的浮点数表示的网络中的一种。
7、在一些示例性的实施例中,基于量化感知训练方法,对卷积层以及全连接层进行训练包括:对卷积层以及全连接层的输入特征图、权重和偏置添加量化节点和反量化节点;基于输入特征图的缩放因子、权重的缩放因子、偏置的缩放因子和量化节点,利用量化函数对用浮点数表示的输入特征图、权重和偏置进行量化,将浮点数转化为定点整数;基于输入特征图的缩放因子、权重的缩放因子和偏置的缩放因子,利用反量化节点将定点整数转化为伪量化的浮点数;将伪量化的浮点数按照训练得到的缩放因子进行量化,得到定点数量化权重;以及将定点数量化权重进行分组,得到卷积层以及全连接层量化后的权重,其中,输入特征图的缩放因子、权重的缩放因子和偏置的缩放因子通过加入反向传播链参与训练,是量化感知训练中可学习的一部分。
8、在一些示例性的实施例中,权重的缩放因子是逐通道设定的,每个输出通道的权重共享该通道的一个缩放因子;输入特征图的缩放因子对应于整个输入特征图,整个输入特征图共用一个缩放因子;以及偏置的缩放因子通过权重的缩放因子和输入特征图的缩放因子计算得到。
9、在一些示例性的实施例中,量化函数能够对输入数据进行舍入和截断,其中,舍入的舍入方式根据神经网络需要部署的平台来确定;以及截断的上下界根据输入数据的位宽来确定。
10、在一些示例性的实施例中,将惩罚损失和任务损失按照预设权重相加得到总损失函数包括:将每一卷积层的所有通道的惩罚损失相加,得到一层卷积层的惩罚损失;将所有卷积层的惩罚损失相加,得到总惩罚损失;以及将总惩罚损失按照预设比例与神经网络的任务损失相加,得到总损失函数。
11、在一些示例性的实施例中,将批归一化层的参数融合进前级卷积层,以更新前级卷积层中权重的缩放因子和偏置的缩放因子,得到训练完成的卷积神经网络包括:对卷积神经网络进行逐层判断,选出批归一化层;获取批归一化层的可训练参数以及批归一化层统计的均值和方差;从当前批归一化层向前搜索找到当前批归一化层最近邻的卷积层;基于可训练参数、均值和方差对最近邻的卷积层的权重的缩放因子进行更新,得到更新后的权重缩放因子;获取最近邻的卷积层伪量化的浮点数权重和伪量化的偏置;基于伪量化的浮点数权重、可训练参数、均值和方差计算得到融合权重;基于更新后的权重缩放因子,利用量化函数对融合权重进行量化,得到更新的量化权重;基于伪量化的偏置、可训练参数、均值和方差计算得到融合偏置;基于更新后的权重缩放因子和输入特征图的缩放因子,计算得到更新后的偏置缩放因子;基于更新后的偏置缩放因子,利用量化函数对融合偏置进行量化,得到更新的量化偏置;以及基于更新的量化权重以及更新的量化偏置,更新卷积神经网络中的参数,得到训练完成的卷积神经网络。
12、根据本专利技术的第二个方面提供了一种卷积神经网络量化训练装置,包括:获取模块,用于获取初始卷积神经网络,卷积神经网络包括卷积层和全连接层;第一训练模块,用于基于量化感知训练方法,对卷积层以及全连接层进行训练,得到卷积层以及全连接层量化后的权重;判断模块,用于按照预设条件判断权重是否满足预设的累加器感知的优化目标;第一计算模块,用于将不满足优化目标的权重输入到惩罚函数中,得到惩罚损失;损失定义模块,定义满足优化目标的权重对应的惩罚损失为0;第二计算模块,用于将惩罚损失和任务损失按照预设权重相加得到总损失函数;第二训练模块,用于基于总损失函数,进行联合训练;以及第三训练模块,用于在完成所有轮次训练后,将批归一化层的参数融合进前级卷积层,以更新前级卷积层中权重的缩放因子和偏置的缩放因子,得到训练完成的卷积神经网络。
13、根据本专利技术的第三个方面提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器运行计算机程序时执行以实现上述的方法。
14、根据本专利技术的第四个方面提供了一种存储介质,其特征在于:存储介质中存储有计算机可读指令,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述的方法。
15、(三)有益效果
16、从上述技术方案可以看出,本专利技术实施例提供的一种卷积神经网络量化训练方法、装置、设备及介质,至少具有如下有益效果:
17、(1)在量化感知训练(quantization aware training,qat)的基础上,进一步对量化后的权重分布实施了约束,有利于降低卷积层、全连接层乘累加部分和的绝对值大本文档来自技高网...
【技术保护点】
1.一种卷积神经网络量化训练方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述初始卷积神经网络包括经过初始化的浮点数表示的网络或经过预训练的浮点数表示的网络中的一种。
3.根据权利要求1所述的方法,其特征在于,所述基于量化感知训练方法,对所述卷积层以及所述全连接层进行训练包括:
4.根据权利要求3所述的方法,其特征在于,
5.根据权利要求3所述的方法,其特征在于,
6.根据权利要求1所述的方法,其特征在于,所述将惩罚损失和任务损失按照预设权重相加得到总损失函数包括:
7.根据权利要求3所述的方法,其特征在于,所述将批归一化层的参数融合进前级卷积层,以更新前级卷积层中权重的缩放因子和偏置的缩放因子,得到训练完成的卷积神经网络包括:
8.一种卷积神经网络量化训练装置,其特征在于,所述装置包括:
9.一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行以实现如权利要求1至7中任一项所述的
10.一种存储介质,其特征在于:所述存储介质中存储有计算机可读指令,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述的方法。
...【技术特征摘要】
1.一种卷积神经网络量化训练方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述初始卷积神经网络包括经过初始化的浮点数表示的网络或经过预训练的浮点数表示的网络中的一种。
3.根据权利要求1所述的方法,其特征在于,所述基于量化感知训练方法,对所述卷积层以及所述全连接层进行训练包括:
4.根据权利要求3所述的方法,其特征在于,
5.根据权利要求3所述的方法,其特征在于,
6.根据权利要求1所述的方法,其特征在于,所述将惩罚损失和任务损失按照预设权重相加得到总损失函数包括:
7.根据权利要求3所述的方法...
【专利技术属性】
技术研发人员:刘力源,张弛,杨旭,王哲,窦润江,于双铭,刘剑,吴南健,
申请(专利权)人:中国科学院半导体研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。