System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及神经网络,特别是涉及一种扩散模型的轻量化方法、装置、电子设备和存储介质。
技术介绍
1、扩散模型(diffusion models)是一种通过加入噪声和迭代去噪来学习底层数据分布的生成模型,它在许多任务上如文生图、文生视频都取得了令人瞩目的效果,是近年来非常受欢迎的研究领域之一。
2、然而,庞大的计算开销是制约扩散模型应用的主要原因之一。相关技术通过设计更有效的采样器来降低采样步数,从而减小计算开销。然而,此种方法无法降低扩散模型本身的复杂度。
技术实现思路
1、鉴于上述问题,本公开实施例提供了一种扩散模型的轻量化方法、装置、电子设备和存储介质,以便克服上述问题或者至少部分地解决上述问题。
2、本公开实施例的第一方面,提供了一种扩散模型的轻量化方法,所述方法包括:
3、获取目标数据和预训练的老师模型;其中,所述目标数据为添加了噪声的数据;所述老师模型为扩散模型的噪声去除网络,所述老师模型包括多个中间块,所述老师模型的多个中间块与学生超网的多个块一一对应;所述学生超网的每个块包含多个操作;
4、将所述目标数据输入所述老师模型,得到所述多个中间块分别输出的第一结果;
5、将每个所述中间块的输入,输入所述中间块对应的所述块,得到每个所述块在采用不同的路径操作的情况下,输出的多个第二结果;所述不同路径操作包括:多个操作以及多个操作的先后顺序;
6、根据每个所述中间块输出的第一结果,以及所述中间块对应的所述块输
7、根据每个所述目标块,生成子网;
8、对所述子网进行子网重训,得到训练好的目标子网;
9、根据所述目标子网,建立目标扩散模型。
10、可选地,所述块采用的多个路径操作中包括老师路径操作,所述老师路径操作为所述块对应的中间块采用的路径操作;
11、所述根据每个所述中间块输出的第一结果,以及所述中间块对应的所述块输出的多个第二结果,对每个所述块进行分块搜索,得到每个所述块对应的目标块,包括:
12、针对所述学生超网的每个块:
13、根据所述块输出的每个第二结果,与所述块对应的所述中间块输出的第一结果,确定每个所述第二结果对应的蒸馏损失函数值;
14、从每个所述第二结果对应的蒸馏损失函数值中,确定所述块在采用所述老师路径操作的情况下,得到的参考蒸馏损失函数值;
15、将每个所述第二结果对应的蒸馏损失函数值中,小于所述参考蒸馏损失函数值的蒸馏损失函数值对应的路径操作,确定为候选路径操作;
16、获取每个所述候选路径操作的计算量;将所述计算量最小的候选路径操作,确定为所述块的目标路径操作;
17、根据所述块的目标路径操作,生成所述块对应的所述目标块。
18、可选地,所述对所述子网进行子网重训,得到训练好的目标子网,包括:
19、将所述目标数据输入所述子网,得到多个所述目标块分别输出的第三结果;
20、根据每个所述目标块输出的第三结果,和所述目标块对应的所述中间块输出的第一结果,确定目标蒸馏损失函数值;
21、获取所述目标数据中添加的噪声;
22、获取所述子网输出的预测噪声;所述预测噪声是所述子网预测的所述目标数据中添加的噪声;
23、根据所述预测噪声和所述噪声,确定噪声预测损失函数值;
24、基于所述目标蒸馏损失函数值和所述噪声预测损失函数值,对所述子网进行训练,得到训练好的所述目标子网。
25、可选地,所述基于所述目标蒸馏损失函数值和所述噪声预测损失函数值,对所述子网进行训练,得到训练好的所述目标子网,包括:
26、获取对所述子网进行训练的多个时间段;
27、获取在每个所述时间段,所述目标蒸馏损失函数值对应的第一权重,以及所述噪声预测损失函数值对应的第二权重;其中,在第一时间段的第一权重,大于在第二时间段的第一权重,以及在第一时间段的第二权重,小于在第二时间段的第二权重,其中,所述第一时间段早于所述第二时间段;
28、基于所述第一权重、所述第二权重、所述目标蒸馏损失函数值和所述噪声预测损失函数值,对所述子网进行训练,得到训练好的所述目标子网。
29、可选地,所述根据每个所述目标块,生成子网,包括:
30、串联每个所述目标块,得到所述子网。
31、可选地,所述老师模型包括的多个中间块满足金字塔结构。
32、可选地,所述扩散模型为图像生成模型;
33、所述目标数据为图像数据;
34、所述目标扩散模型为图像生成模型。
35、本公开实施例的第二方面,提供了一种扩散模型的轻量化装置,所述装置包括:
36、获取模块,用于获取目标数据和预训练的老师模型;其中,所述目标数据为添加了噪声的数据;所述老师模型为扩散模型的噪声去除网络,所述老师模型包括多个中间块,所述老师模型的多个中间块与学生超网的多个块一一对应;所述学生超网的每个块包含多个操作;
37、输入模块,用于将所述目标数据输入所述老师模型,得到所述多个中间块分别输出的第一结果;
38、输出模块,用于将每个所述中间块的输入,输入所述中间块对应的所述块,得到每个所述块在采用不同的路径操作的情况下,输出的多个第二结果;所述不同路径操作包括:多个操作以及多个操作的先后顺序;
39、搜索模块,用于根据每个所述中间块输出的第一结果,以及所述中间块对应的所述块输出的多个第二结果,对每个所述块进行分块搜索,得到每个所述块对应的目标块;其中,所述目标块包括确定的一种路径操作;
40、生成模块,用于根据每个所述目标块,生成子网;
41、重训模块,用于对所述子网进行子网重训,得到训练好的目标子网;
42、建立模块,用于根据所述目标子网,建立目标扩散模型。
43、本公开实施例的第三方面,提供了一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行指令,以实现如第一方面的扩散模型的轻量化方法。
44、本公开实施例的第四方面,提供了一种计算机可读存储介质,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如第一方面的扩散模型的轻量化方法。
45、本公开实施例包括以下优点:
46、本公开实施例中,利用老师模型对学生超网的每个块进行分块搜索,得到了包含最优的路径操作的目标块,去除了学生超网的每个块在结构上的冗余,在不损失性能的前提下,使学生超网的每个块都实现了轻量化,进而可以保证得到的子网以及目标扩散模型都是轻量化的,因此,目标扩散模型的计算开销较小。相较于全局搜索的方法,本公开实本文档来自技高网...
【技术保护点】
1.一种扩散模型的轻量化方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述块采用的多个路径操作中包括老师路径操作,所述老师路径操作为所述块对应的中间块采用的路径操作;
3.根据权利要求1所述的方法,其特征在于,所述对所述子网进行子网重训,得到训练好的目标子网,包括:
4.根据权利要求3所述的方法,其特征在于,所述基于所述目标蒸馏损失函数值和所述噪声预测损失函数值,对所述子网进行训练,得到训练好的所述目标子网,包括:
5.根据权利要求1所述的方法,其特征在于,所述根据每个所述目标块,生成子网,包括:
6.根据权利要求1所述的方法,其特征在于,所述老师模型包括的多个中间块满足金字塔结构。
7.根据权利要求1所述的方法,其特征在于,所述扩散模型为图像生成模型;
8.一种扩散模型的轻量化装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行指令,以实现如权利要求1至7任一所述
10.一种计算机可读存储介质,其特征在于,当计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至7任一所述的扩散模型的轻量化方法。
...【技术特征摘要】
1.一种扩散模型的轻量化方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述块采用的多个路径操作中包括老师路径操作,所述老师路径操作为所述块对应的中间块采用的路径操作;
3.根据权利要求1所述的方法,其特征在于,所述对所述子网进行子网重训,得到训练好的目标子网,包括:
4.根据权利要求3所述的方法,其特征在于,所述基于所述目标蒸馏损失函数值和所述噪声预测损失函数值,对所述子网进行训练,得到训练好的所述目标子网,包括:
5.根据权利要求1所述的方法,其特征在于,所述根据每个所述目标块,生成子网,包括:
6.根...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。