技术新讯 > 计算推算,计数设备的制造及其应用技术 > 深度学习模型的压缩方法及装置、电子设备、存储介质与流程  >  正文

深度学习模型的压缩方法及装置、电子设备、存储介质与流程

  • 国知局
  • 2024-07-31 22:40:44

本申请涉及机器学习,特别涉及一种深度学习模型的压缩方法及装置、电子设备、计算机可读存储介质。

背景技术:

1、深度学习模型在越来越多的场景下得到了广泛的应用。对于低功耗或者实时性要求较高的应用场景中,规模过大的深度学习模型无法满足需要,一般需要对深度学习模型进行压缩。其中,压缩方式包括量化(quantization)和剪枝(prune);量化的目的是将模型的权重、输入和输出由浮点数转换为定点数,由于定点运算的速度一般比浮点运算块,因此,量化可以提高计算速度;剪枝的目的是将深度学习模型的权重做修饰,剪掉对模型结果影响较小或者基本没有影响的权重,从而将模型的权重由密集转为稀疏,稀疏的权重可以更好地被支持稀疏运算的硬件支持,从而提高模型的计算速度。

2、相关技术中,一般可以在不同场景中选择量化或者剪枝的方式来压缩模型,两者无法协同进行,也就是说,量化和剪枝之间的关系不是确定的。这种情况下,如果只选择量化,则无法充分利用支持稀疏运算的硬件产品的功能;如果只选择剪枝,则无法利用定点运算快速、低位宽的优势。

技术实现思路

1、本申请实施例的目的在于提供一种深度学习模型的压缩方法及装置、电子设备、计算机可读存储介质,用于协同执行量化和剪枝操作,压缩得到的深度学习模型既可以充分利用支持稀疏运算的硬件产品的功能,又可能利用定点运算快速、低位宽的优势。

2、一方面,本申请提供了一种深度学习模型的压缩方法,包括:

3、控制深度学习模型对输入参数执行定点前向计算,得到输出参数;

4、基于所述输入参数和所述输出参数计算损失,并以所述损失执行浮点后向计算,得到所述深度学习模型中每一网络层中权重的梯度;

5、根据每一网络层中权重的梯度,更新所述深度学习模型的每一网络层的权重;

6、根据每一网络层中权重的梯度,对所述深度学习模型逐个网络层进行权重剪枝;

7、重复从执行定点前向计算到进行权重剪枝的步骤,直至所述深度学习模型收敛。

8、在一实施例中,所述根据每一网络层中张量的梯度,对所述深度学习模型逐个网络层进行权重剪枝,包括:

9、根据第i个网络层中权重的梯度,确定第i个网络层的剪枝参数;

10、根据第i个网络层的剪枝参数,确定第i个网络层的剪枝掩码;

11、根据第i个网络层的剪枝掩码,对第i个网络层的权重进行剪枝处理。

12、在一实施例中,所述根据第i个网络层中权重的梯度,确定第i个网络层的剪枝参数,包括:

13、根据第i个网络层中权重的梯度、预设常量,确定第i个网络层的剪枝参数;所述剪枝参数表示为:

14、

15、其中,wi表示第i个网络层的权重;p(wi)表示第i个网络层的剪枝参数;为第i个网络层中权重的梯度;t为常量;std(x)代表求x的标准差。

16、在一实施例中,所述根据第i个网络层的剪枝参数,确定第i个网络层的剪枝掩码,包括:

17、根据第i个网络层的剪枝参数,确定第i个网络层对应的采样次数;

18、基于所述采样次数和第i个网络层的权重中元素被采样概率的多项式分布,确定第i个网络层的权重的剪枝元素集合;

19、根据所述剪枝元素集合,确定第i个网络层的剪枝掩码。

20、在一实施例中,所述根据第i个网络层的剪枝参数,确定第i个网络层对应的采样次数,包括:

21、根据第i个网络层的剪枝参数,以及第i个网络层中权重的元素总量,确定第i个网络层对应的采样次数;所述采样次数表示为:

22、c=ceil(p(wi)n))

23、其中,c为所述采样次数;p(wi)表示第i个网络层的剪枝参数;n为第i个网络层中权重的元素总量;ceil(x)代表对x向上取整。

24、在一实施例中,所述第i个网络层的权重中元素被采样概率,表示为:

25、

26、其中,pj表示第i个网络层的权重被展开为向量后的第j个元素被采样的概率;flatten(wi)j表示第i个网络层的权重被展开为向量后的第j个元素。

27、在一实施例中,所述根据所述剪枝元素集合,确定第i个网络层的剪枝掩码,包括:

28、确定第i个网络层的剪枝掩码中与所述剪枝元素集合中元素对应的元素为0;所述剪枝掩码表示为:

29、

30、其中,m(wi)k表示第i个网络层的剪枝掩码中第k个元素;k为所述剪枝元素集合;k为向量形式的剪枝掩码中元素的序号。

31、另一方面,本申请提供了一种深度学习模型的压缩装置,包括:

32、控制模块,用于控制深度学习模型对输入参数执行定点前向计算,得到输出参数;

33、计算模块,用于基于所述输入参数和所述输出参数计算损失,并以所述损失执行浮点后向计算,得到所述深度学习模型中每一网络层中权重的梯度;

34、第一更新模块,用于根据每一网络层中权重的梯度,更新所述深度学习模型的每一网络层的权重;

35、第二更新模块,用于根据每一网络层中权重的梯度,对所述深度学习模型逐个网络层进行权重剪枝;

36、迭代模块,用于重复从执行定点前向计算到进行权重剪枝的步骤,直至所述深度学习模型收敛。

37、进一步的,本申请提供了一种电子设备,所述电子设备包括:

38、处理器;

39、用于存储处理器可执行指令的存储器;

40、其中,所述处理器被配置为执行上述深度学习模型的压缩方法。

41、此外,本申请提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述深度学习模型的压缩方法。

42、本申请方案,在对深度学习模型的训练过程中,可以协同执行量化和剪枝操作,由于量化和剪枝协同进行,量化过程可以将有限的量化范围集中重要的权重参数上,忽略被修剪的不重要的权重参数,同时,梯度的反向传播可以将量化和剪枝所代理的误差在权重更新的过程中逐步消解,从而在保证深度学习模型的训练效果的前提下,可以有效压缩深度学习模型。经过本方案压缩得到的深度学习模型,既可以充分利用支持稀疏运算的硬件产品(后续搭载深度学习模型的硬件产品)的功能,又可能利用定点运算快速、低位宽的优势。

技术特征:

1.一种深度学习模型的压缩方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述根据每一网络层中张量的梯度,对所述深度学习模型逐个网络层进行权重剪枝,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据第i个网络层中权重的梯度,确定第i个网络层的剪枝参数,包括:

4.根据权利要求2所述的方法,其特征在于,所述根据第i个网络层的剪枝参数,确定第i个网络层的剪枝掩码,包括:

5.根据权利要求4所述的方法,其特征在于,所述根据第i个网络层的剪枝参数,确定第i个网络层对应的采样次数,包括:

6.根据权利要求4所述的方法,其特征在于,所述第i个网络层的权重中元素被采样概率,表示为:

7.根据权利要求4所述的方法,其特征在于,所述根据所述剪枝元素集合,确定第i个网络层的剪枝掩码,包括:

8.一种深度学习模型的压缩装置,其特征在于,包括:

9.一种电子设备,其特征在于,所述电子设备包括:

10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成权利要求1-7任意一项所述的深度学习模型的压缩方法。

技术总结本申请提供一种深度学习模型的压缩方法及装置、电子设备、存储介质,包括:控制深度学习模型对输入参数执行定点前向计算,得到输出参数;基于所述输入参数和所述输出参数计算损失,并以所述损失执行浮点后向计算,得到所述深度学习模型中每一网络层中权重的梯度;根据每一网络层中权重的梯度,更新所述深度学习模型的每一网络层的权重;根据每一网络层中权重的梯度,对所述深度学习模型逐个网络层进行权重剪枝;重复从执行定点前向计算到进行权重剪枝的步骤,直至所述深度学习模型收敛。本申请方案,可以协同执行量化和剪枝操作,对深度学习模型进行有效压缩。技术研发人员:巩宁,李倩受保护的技术使用者:恒玄科技(上海)股份有限公司技术研发日:技术公布日:2024/7/29

本文地址:https://www.jishuxx.com/zhuanli/20240730/194094.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。