神经网络模型的重训练方法和相关产品技术

技术编号:29791939 阅读:13 留言:0更新日期:2021-08-24 18:11
本申请实施例公开了一种神经网络模型重训练方法和相关产品,该方法包括:基于第一神经网络模型进行第一迭代,得到第二神经网络模型,其中,在所述第一迭代中,所述第一神经网络模型中包括的至少一个第一网络层的权重被量化,所述第一神经网络模型中包括的多个第二网络层的权重为浮点数;基于所述第二神经网络模型进行第二迭代,得到第三神经网络模型,其中,在所述第二迭代中,所述至少一个第一网络层和所述多个第二网络层中与所述至少一个第一网络层相邻的至少一个第二网络层的权重被量化;采用分层量化的方式进行迭代训练,可以保证神经网络模型的预测精度。

【技术实现步骤摘要】
神经网络模型的重训练方法和相关产品
本申请涉及神经网络
,尤其涉及一种神经网络模型量化方法和相关产品。
技术介绍
随着神经网络技术的发展,出现了神经网络量化技术,主要是对神经网络中每个网络层(如卷积层和全连接层)中的权重等进行压缩,降低权重的位宽等,从而实现压缩神经网络模型的数据量、降低神经网络模型在预测过程中的计算资源需求等目的。当前,通常采用的神经网络量化方案是将神经网络训练好之后将各个网络层的权重量化,这种方式得到的网络精度较低。因此,需要研究使得量化后的神经网络的网络精度较高的量化方案。
技术实现思路
本申请实施例公开了一种神经网络模型的重训练方法和相关产品。第一方面,本申请实施例提供了一种神经网络模型的重训练方法,该方法包括:基于第一神经网络模型进行第一迭代,得到第二神经网络模型,其中,在所述第一迭代中,所述第一神经网络模型中包括的至少一个第一网络层的权重被量化,所述第一神经网络模型中包括的多个第二网络层的权重为浮点数;基于所述第二神经网络模型进行第二迭代,得到第三神经网络模型,其中,在所述第二迭代中,所述至少一个第一网络层和所述多个第二网络层中与所述至少一个第一网络层相邻的至少一个第二网络层的权重被量化。本申请实施例中,采用分层量化的方式进行迭代训练,可以保证神经网络模型的预测精度。在一个可选的实现方式中,所述至少一个第一网络层的网络深度大于所述至少一个第二网络层的网络深度。经验表明,大多数神经网络模型越靠近输入端对精度越敏感,因此重训练神经网络模型可采取从后向前的顺序进行分层训练。例如,神经网络模型中共50个网络层,可依据训练收敛情况分多轮进行微调(finetune)。如每轮对5~10个网络层的网络参数进行量化,其他网络层采用浮点表达,直到对神经网络模型的所有网络层均完成量化,微调流程结束。在该实现方式中,可以提高重训练的效率。在一个可选的实现方式中,所述基于第一神经网络模型进行第一迭代,得到第二神经网络模型包括:通过所述第一神经网络模型对第一样本进行第一预测处理,得到第一预测结果;基于所述第一预测结果,对所述至少一个第一网络层的量化权重数据和所述多个第二网络层的浮点权重数据进行更新处理,得到所述第二神经网络模型。在该实现方式中,可以准确、快速地量化至少一个第一网络层待更新的权重。在一个可选的实现方式中,所述第一网络层的浮点权重数据的量化包括:基于所述第一网络层的浮点权重数据,确定第一参考值;基于所述第一参考值,确定多个数值区间;所述多个数值区间中每个数值区间对应一个能够被F比特表示的数值,所述F为大于1且小于8的整数;基于所述多个数值区间,对所述浮点权重数据中的权重进行第一量化处理,得到所述第一网络层的量化权重数据。在该实现方式中,可以准确、快速地将权重均量化为一个用F个比特表示的数值。在一个可选的实现方式中,所述基于所述第一网络层的浮点权重数据,确定第一参考值之前,所述方法还包括:基于所述第一网络层的浮点权重数据包括的多个数值的分布离散度,确定所述第一量化处理的比特数F;所述基于所述第一参考值,确定多个数值区间包括:基于所述第一参考值和所述F,确定R个数值区间。在该实现方式中,基于待量化的第一权重数据包括的多个数值的分布离散度,确定第一量化处理的比特数F;能够减少量化后的数据所占用的比特数,进而节省计算资源。在一个可选的实现方式中,所述基于所述第二神经网络模型进行第二迭代,得到第三神经网络模型之后,所述方法还包括:响应于所述第二神经网络模型中包括的所有网络层的权重均已被量化,基于所述第三神经网络模型进行第三迭代,得到第四神经网络模型,其中,在所述第三迭代中,所述第三神经网络模型的至少一个第三网络层的激活数据被量化后输入至下一网络层,所述第三神经网络模型的至少一个第四网络层的激活数据未被量化。在该实现方式中,对激活数据进行量化,并利用基于量化后的激活数据得到的第二预测结果来更新权重数据,以便于在利用得到的第三神经网络模型进行预测处理且对激活数据进行量化时可以得到准确的预测结果。在一个可选的实现方式中,在所述得到第四神经网络模型之后,所述方法还包括:基于所述第四神经网络模型进行第四迭代,得到目标神经网络模型;其中,在所述第四迭代中,所述至少一个第三网络层的激活数据和所述至少一个第四网络层的激活数据均被量化后输入到下一网络层。在该实现方式中,采用分层量化激活数据的方式,能够快速地优化权重数据。在一个可选的实现方式中,所述基于所述第三神经网络模型进行第三迭代,得到第四神经网络模型,包括:获得第一运算处理所需的第一运算参数,所述第一运算处理为通过合并所述第一神经网络模型中的至少一个第三网络层执行的网络模型处理和用于对所述至少一个第三网络层的激活数据进行量化的第二量化处理得到的运算处理,所述第一运算参数包括所述第二量化处理对应的量化参数;对所述第一运算参数中的浮点数进行定点化处理,得到第二运算参数;基于所述第二运算参数,执行所述第一运算处理,得到所述至少一个第三网络层的处理结果;基于所述至少一个第三网络层的处理结果,得到所述第四神经网络模型。在该实现方式中,整个流程采用定点数实现,能够减少计算资源的开销。在一个可选的实现方式中,所述对所述第一运算参数中的浮点数进行定点化处理,得到第二运算参数包括:将所述第一运算参数中包括的每个浮点数扩大K倍,得到扩大数值,所述K为大于1的整数;将所述扩大数值转换为定点数,得到所述第二运算参数。在该实现方式中,先将第一运算参数中的浮点数扩大K倍,再将扩大K倍后的浮点数转换为定点数,可以保证第一运算处理的精度。在一个可选的实现方式中,所述第二量化处理对应的量化参数为基于量化最大值和量化最小值得到的,所述量化最大值和所述量化最小值为基于对样本图像得到的激活数据包括的多个数值进行聚类得到的。在一个可选的实现方式中,在所述第一迭代中,所述第一神经网络模型中包括的至少一个第四网络层的激活数据被量化,所述第一神经网络模型中包括的多个第五网络层的激活数据为浮点数;在所述第二迭代中,所述至少一个第四网络层和所述多个第五网络层中与所述至少一个第四网络层相邻的至少一个第五网络层的激活数据被量化。在一个可选的实现方式中,在所述第一预测处理中,所述第一神经网络模型包括的至少一个第六网络层的激活数据被量化。在该实现方式中,在第一预测处理中对至少一个第六网络层的激活数据进行量化,在利用得到的目标神经网络模型进行预测处理且对激活数据进行量化时可以得到准确的预测结果。第二方面,本申请实施例提供了一种数据处理装置,包括:第一迭代单元,用于基于第一神经网络模型进行第一迭代,得到第二神经网络模型,其中,在所述第一迭代中,所述第一神经网络模型中包括的至少一个第一网络层的权重被量化,所述第一神经网络模型中包括的多个第二网络层的权重为浮点数;第二迭代单元,用于基于所述第二神经网络模型进行第二迭代,得到第三神经网络模型本文档来自技高网...

【技术保护点】
1.一种神经网络模型的重训练方法,其特征在于,包括:/n基于第一神经网络模型进行第一迭代,得到第二神经网络模型,其中,在所述第一迭代中,所述第一神经网络模型中包括的至少一个第一网络层的权重被量化,所述第一神经网络模型中包括的多个第二网络层的权重为浮点数;/n基于所述第二神经网络模型进行第二迭代,得到第三神经网络模型,其中,在所述第二迭代中,所述至少一个第一网络层和所述多个第二网络层中与所述至少一个第一网络层相邻的至少一个第二网络层的权重被量化。/n

【技术特征摘要】
1.一种神经网络模型的重训练方法,其特征在于,包括:
基于第一神经网络模型进行第一迭代,得到第二神经网络模型,其中,在所述第一迭代中,所述第一神经网络模型中包括的至少一个第一网络层的权重被量化,所述第一神经网络模型中包括的多个第二网络层的权重为浮点数;
基于所述第二神经网络模型进行第二迭代,得到第三神经网络模型,其中,在所述第二迭代中,所述至少一个第一网络层和所述多个第二网络层中与所述至少一个第一网络层相邻的至少一个第二网络层的权重被量化。


2.根据权利要求1所述的方法,其特征在于,所述至少一个第一网络层的网络深度大于所述至少一个第二网络层的网络深度。


3.根据权利要求1或2所述的方法,其特征在于,所述基于第一神经网络模型进行第一迭代,得到第二神经网络模型包括:
通过所述第一神经网络模型对第一样本进行第一预测处理,得到第一预测结果;
基于所述第一预测结果,对所述至少一个第一网络层的量化权重数据和所述多个第二网络层的浮点权重数据进行更新处理,得到所述第二神经网络模型。


4.根据权利要求1至3中任一项所述的方法,其特征在于,所述第一网络层的浮点权重数据的量化包括:
基于所述第一网络层的浮点权重数据,确定第一参考值;
基于所述第一参考值,确定多个数值区间;所述多个数值区间中每个数值区间对应一个能够被F比特表示的数值,所述F为大于1且小于8的整数;
基于所述多个数值区间,对所述浮点权重数据中的权重进行第一量化处理,得到所述第一网络层的量化权重数据。


5.根据权利要求4所述的方法,其特征在于,所述基于所述第一网络层的浮点权重数据,确定第一参考值之前,所述方法还包括:
基于所述第一网络层的浮点权重数据包括的多个数值的分布离散度,确定所述第一量化处理的比特数F;
所述基于所述第一参考值,确定多个数值区间包括:
基于所述第一参考值和所述F,确定R个数值区间。


6.根据权利要求1至5任一项所述的方法,其特征在于,在所述第一迭代中,所述第一神经网络模型中包括的至少一个第四网络层的激活数据被量化,所述第一神经网络模型中包括的多个第五网络层的激活数据为浮点数;
在所述第二迭代中,所述至少一个第四网络层和所述多个第五网络层中与所述至少一个第四网络层相邻的至少一个第五网络层的激活数据被量化。


7.根据权利要求1至5任一项所述的方法,其特征在于,所述基于所述第二神经网络模型进行第二迭代,得到第三神经网络模型之后,所述方法还包括:
响应于所述第二神经网络模型中包括的所有网络层的权重均已被量化,基于所述第三神经网络模型进行第三迭代,得到第四神经网络模型,其中,在所述第三迭代中,所述第三神经网络模型的至少一个第三网络层的激活数据被量化,所述第三神经网络模型的至少一个第四网络层的激活数据未被量化。


8.根据权利要求7所述的方法,其特征在于,在所述得到第四神经网络模型之后,所述方法还包括:
基于所述第四神经网络模型进行第四迭代,得到目标神经网络模型;其中,在所述第四迭代中,所述至少一个第三网络层的激活数据和所述至少一个第四网络层的激活数据均被量化。


9.根据权利要求7或8所述的方法,其特征在于,所述基于所述第三神经网络模型进行第三迭代,得到第四神经网络模型,包括:
获得第一运算处理所需的第一运算参数,所述第一运算处理为通过合并所述第一神经网络模型中的至少一个第三网络层执行的网络模型处理和用于对所述至少一个第三网...

【专利技术属性】
技术研发人员:沈煜胡英俊蒋科其他发明人请求不公开姓名
申请(专利权)人:上海商汤智能科技有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1