【技术实现步骤摘要】
一种对抗生成神经网络压缩方法
[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]对于精细网络结构设计与修剪:手工设计网络常
【技术保护点】
【技术特征摘要】
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...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。