当前位置: 首页 > 专利查询>之江实验室专利>正文

一种对抗生成神经网络压缩方法技术

技术编号:36503891 阅读:14 留言:0更新日期:2023-02-01 15:27
目的是解决现有的深度学习模型压缩技术如剪枝,量化难以直接应用在生成对抗网络模型中的问题,提出了一种针对生成对抗网络模型的压缩方法,(1)获得将要压缩的生成对抗网络,并将其作为教师网络;(2)构建最大学生网络模型并预训练;(3)学生网络模型剪枝;(4)学生网络模型蒸馏。本发明专利技术能够有效的减少网络的参数量与计算量。涉及人工智能领域,具体涉及生成对抗神经网络压缩领域。对生成对抗网络的实际应用与部署有着重要意义。通过本方法,在工业中广泛使用的cyclegan模型参数量压缩43倍,模型计算量压缩29倍,模型的表现能力(FID)几乎没有下降,压缩后的cyclegan

【技术实现步骤摘要】
一种对抗生成神经网络压缩方法


[0001]本专利技术属于人工智能领域,具体涉及一种生成对抗神经网络压缩方法。

技术介绍

[0002]当下生成对抗神经网络(gan)模型的使用由训练和推理两阶段组成,其在图像生成、图像转换、数据增强方面取得了很大成功。与此同时,边缘智能将人工智能融入边缘计算,将智能算法部署在边缘设备,作为更快更好地提供智能服务的一种服务模式。边缘智能已逐渐渗入各行各业。
[0003]然而,当下边缘智能面临着巨大挑战。将gan网络模型部署在边缘设备上面临着计算、存储、能耗资源受限的挑战:边缘设备的计算、存储能力往往远小于专用服务器。无法满足gan网络模型训练、推理所需。除此之外,部分边缘设备采用蓄电池等小型供电设备,无法满足计算所需的能耗。例如:NVIDIA的AI嵌入式设备Jetson TX2拥有256个CUDA核心、8G内存、7.5W能耗;而NVIDIA 1080TI GPU拥有3584个CUDA核心,11G显存,二者有很大性能差异。
[0004]对gan网络模型进行压缩后再部署是解决上述挑战的有效方法。压缩后的模型对设备的计算、存储、能耗资源需求降低很多,同时推理的效果不受太大影响。
[0005]目前的通用模型压缩方法由两步构成:1.精细网络结构设计与修剪;2.精细网络表现提升。精细网络结构设计与修剪的常见方法有如下几类:手工设计、量化、剪枝、自动机器学习、网络分解;精细网络表现提升的常见方法有:重训练、知识蒸馏。
[0006]对于精细网络结构设计与修剪:手工设计网络常用于卷积层结构设计、需要大量经验和试错、普适性差;量化通常会导致精度大幅度损失;自动机器学习的假设空间通常非常大,需要强大的计算资源;网络分解方法普适性差。剪枝方法是最常用的精细网络设计与修剪方法。对于精细网络表现提升:重训练后的模型表现通常差于知识蒸馏方法,知识蒸馏方法是最常用的精细网络表现提升方法。
[0007]知识蒸馏的基本思想是通过软化的softmax目标变换学习教师网络输出的类别分布,将大型网络模型(教师网络)的知识精炼为小型网络模型(学生模型)的知识。该方法的表现较稳定、有完备的数学理论基础,是较常用的表现提升方法。
[0008]模型剪枝的基本思想是寻找一种有效的评判手段来判断参数或卷积核的重要性,将不重要的连接或者卷积核进行裁剪来减少模型的冗余。常见的模型剪枝分为结构化剪枝和非结构化剪枝。非结构化剪枝的修剪维度是单个连接,结构化剪枝的修剪维度是卷积核。
[0009]以上技术常用于卷积神经网络和其他深度学习模型中。现有的模型压缩方法由于以下原因,难以直接运用到gan网络模型中:
[0010]1.现有的gan网络模型的剪枝效果较差,精度损失严重。
[0011]2.gan网络模型损失函数收敛不稳定,难以训练,重训练方法难以直接应用。
[0012]3.gan网络模型的输出为图像,不是逻辑向量输出,知识蒸馏通常针对逻辑向量输出,这导致知识蒸馏方法难以直接应用。

技术实现思路

[0013]本专利技术要解决上述现有深度学习模型压缩技术难以直接应用在gan网络模型中的问题,提出了一种gan网络模型压缩方法。本专利技术的目的可以通过本专利技术中的中间层蒸馏、关系蒸馏、结构化剪枝等方法来达到。
[0014]一种生成对抗神经网络压缩方法,包括如下步骤:
[0015](1)获得将要压缩的生成对抗网络,并将其作为教师网络;
[0016](2)构建最大学生网络模型并预训练;
[0017](3)学生网络模型剪枝;
[0018](4)学生网络模型蒸馏。
[0019]进一步,步骤(1)通过自行构建生成对抗网络,或使用工业上广泛使用的生成对抗网络来作为教师网络。
[0020]进一步,步骤(2)设置最大学生网络模型为教师网络修改以下部分:
[0021](2.1)修改主干网络的残差块结构:
[0022](2.2)降低主干网络宽度:将主干网络每层卷积层按比例进行缩减;
[0023](2.3)增加主干网络的残差块层数。
[0024]进一步,步骤(2.1)具体包括:将教师网络中的标准残差块中的卷积层替换为特制的三个卷积层,其由膨胀卷积层、深度卷积层、线性映射层组成;膨胀卷积层:卷积核尺寸为1*1。作用为将输入特征的通道数增加,从低维空间映射到高维空间,便于在高维空间提取特征;深度卷积层:卷积核尺寸为3*3。该层为组卷积层,分组数目等于该卷积层输入通道数目;线性映射层:卷积核尺寸为1*1。将特征的通道数降低,从高维空间映射到低维空间,便于后续层的处理;
[0025]设残差块卷积层的输入、输出通道数为128,则标准残差块卷积层的参数量为:128*128*3*3=147456;若膨胀系数为2,则特制残差块卷积层的参数量为:128*128*2*1*1+128*2*3*3+128*2*128*1*1=67840,该改变使得残差块达到两倍以上参数量压缩效果;
[0026]步骤(2.3)具体包括:以cyclegan为例,教师网络的主干网络中共有18层残差块,学生网络的主干网络中可增加为24层残差块;在减少模型宽度的同时增加模型深度,避免主干网络的表达能力下降。
[0027]进一步,步骤(3)使用的剪枝方法为结构化剪枝方法,用于对卷积层进行卷积核维度修剪;对于同一个卷积层中的所有卷积核,将计算卷积核之间的几何距离,两个几何距离近的卷积核简化为一个卷积核表示。
[0028]再进一步,步骤(3)具体包括:定义几何中心:在一个d维的空间中,给定一个点集,a1,a2,

,a
n
,在该空间中找到一个点a
*
,使得该点到各个点的距离和最小,a
*
就是这个d维空间的几何中心;
[0029][0030](3.1)计算卷积层的几何中心:把卷积核抽象成欧氏空间中的点,对于网络中的每一层,在该层的若干卷积核空间中,计算几何中心,也是该层的数据中心。如果某个卷积核接近于这个几何中心,可以认为这个卷积核的信息跟其他卷积核重合,甚至是冗余的,于是能移除这个卷积核而不对网络产生大的影响;设某层卷积层的输入通道维度为C
in
,输出通
道维度为C
out
,卷积核尺寸为k,输入特征图高度为w,宽度为h,输入特征图尺寸为权重参数为权重参数为该层共有C
out
个卷积核,第i个卷积核的权重参数为假设压缩比例为f,则需要去掉f
×
c
out
个卷积核,压缩后剩余的目标卷积核数目为(1

f)
×
c
out
个;针对某一层卷积层,计算该卷积层所有卷积核的几何中心W
*

[0031][0032](3.2)计算该卷积层所有卷积核W=[W1,W2,...,W
cout
]与几何中心W
*...

【技术保护点】

【技术特征摘要】
1.一种生成对抗神经网络压缩方法,包括如下步骤:(1)获得将要压缩的生成对抗网络,并将其作为教师网络;(2)构建最大学生网络模型并预训练;(3)学生网络模型剪枝;(4)学生网络模型蒸馏。2.如权利要求1所述的一种生成对抗神经网络压缩方法,其特征在于:步骤(1)通过自行构建生成对抗网络。3.如权利要求1所述的一种生成对抗神经网络压缩方法,其特征在于:步骤(1)使用工业上广泛使用的生成对抗网络来作为教师网络。4.如权利要求1所述的一种生成对抗神经网络压缩方法,其特征在于:步骤(2)设置最大学生网络模型为教师网络修改以下部分:(2.1)修改主干网络的残差块结构:(2.2)降低主干网络宽度:将主干网络每层卷积层按比例进行缩减;(2.3)增加主干网络的残差块层数。5.如权利要求4所述的一种生成对抗神经网络压缩方法,其特征在于:步骤(2.1)具体包括:将教师网络中的标准残差块中的卷积层替换为特制的三个卷积层,其由膨胀卷积层、深度卷积层、线性映射层组成;膨胀卷积层:卷积核尺寸为1*1。作用为将输入特征的通道数增加,从低维空间映射到高维空间,便于在高维空间提取特征;深度卷积层:卷积核尺寸为3*3。该层为组卷积层,分组数目等于该卷积层输入通道数目;线性映射层:卷积核尺寸为1*1。将特征的通道数降低,从高维空间映射到低维空间,便于后续层的处理;设残差块卷积层的输入、输出通道数为128,则标准残差块卷积层的参数量为:128*128*3*3=147456;若膨胀系数为2,则特制残差块卷积层的参数量为:128*128*2*1*1+128*2*3*3+128*2*128*1*1=67840,该改变使得残差块达到两倍以上参数量压缩效果;步骤(2.3)具体包括:以cyclegan为例,教师网络的主干网络中共有18层残差块,学生网络的主干网络中可增加为24层残差块;在减少模型宽度的同时增加模型深度,避免主干网络的表达能力下降。6.如权利要求1所述的一种生成对抗神经网络压缩方法,其特征在于:步骤(3)使用的剪枝方法为结构化剪枝方法,用于对卷积层进行卷积核维度修剪;对于同一个卷积层中的所有卷积核,将计算卷积核之间的几何距离,两个几何距离近的卷积核简化为一个卷积核表示。7.如权利要求7所述的一种生成对抗神经网络压缩方法,其特征在于:步骤(3)具体包括:定义几何中心:在一个d维的空间中,给定一个点集,a1,a2,...,a
n
,在该空间中找到一个点a
*
,使得该点到各个点的距离和最小,a
*
就是这个d维空间的几何中心;(3.1)计算卷积层的几何中心:把卷积核抽象成欧氏空间中的点,对于网络中的每一层,在该层的若干卷积核空间中,计算几何中心,也是该层的数据中心。如果某个卷积核接近于这个几何中心,可以认为这个卷积核的信息跟其他卷积核重合,甚至是冗余的,于是能移除这个卷积核而不对网络产生大的影响;设某层卷积层的输入通道维度为C
in
,输出通道
维度为C
out
,卷积核尺寸为k,输入特征图高度为w,宽度为h,输入特征图尺寸为权重参数为权重参数为该层共有C
out
个卷积核,第i个卷积核的权重参数为假设压缩比例为f,则需要去掉f
×
c
out
个卷积核,压缩后剩余的目标卷积核数目为(1

f)
×
c
out
个;针对某一层卷积层,计算该卷积层所有卷积核的几何中心W
*
:(3.2)计算该卷积层所有卷积核W=[W1,W2,...,W
cout
]与几何中心W
*
的L2距离d=[d1,d2,...,d
cout
],其中:d
i
=||W
i

W
*
||2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)(3.3)移除该卷积层中冗余的卷积核:设函数Top(d,(1

f)
×
c
out
)为取数字列表d=[d1,d2,...,d
cout...

【专利技术属性】
技术研发人员:宫禄齐李超孙啸峰黄智华
申请(专利权)人:之江实验室
类型:发明
国别省市:

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

1