CN115660070A - 一种对抗生成神经网络压缩方法 - Google Patents

一种对抗生成神经网络压缩方法 Download PDF

Info

Publication number
CN115660070A
CN115660070A CN202211413167.1A CN202211413167A CN115660070A CN 115660070 A CN115660070 A CN 115660070A CN 202211413167 A CN202211413167 A CN 202211413167A CN 115660070 A CN115660070 A CN 115660070A
Authority
CN
China
Prior art keywords
network
layer
convolution
model
compression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211413167.1A
Other languages
English (en)
Inventor
宫禄齐
李超
孙啸峰
黄智华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202211413167.1A priority Critical patent/CN115660070A/zh
Publication of CN115660070A publication Critical patent/CN115660070A/zh
Priority to CN202311019433.7A priority patent/CN117036906A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0475Generative networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/094Adversarial learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Image Analysis (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

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

Description

一种对抗生成神经网络压缩方法
技术领域
本发明属于人工智能领域,具体涉及一种生成对抗神经网络压缩方法。
背景技术
当下生成对抗神经网络(gan)模型的使用由训练和推理两阶段组成,其在图像生成、图像转换、数据增强方面取得了很大成功。与此同时,边缘智能将人工智能融入边缘计算,将智能算法部署在边缘设备,作为更快更好地提供智能服务的一种服务模式。边缘智能已逐渐渗入各行各业。
然而,当下边缘智能面临着巨大挑战。将gan网络模型部署在边缘设备上面临着计算、存储、能耗资源受限的挑战:边缘设备的计算、存储能力往往远小于专用服务器。无法满足gan网络模型训练、推理所需。除此之外,部分边缘设备采用蓄电池等小型供电设备,无法满足计算所需的能耗。例如:NVIDIA的AI嵌入式设备Jetson TX2拥有256个CUDA核心、8G内存、7.5W能耗;而NVIDIA 1080TI GPU拥有3584个CUDA核心,11G显存,二者有很大性能差异。
对gan网络模型进行压缩后再部署是解决上述挑战的有效方法。压缩后的模型对设备的计算、存储、能耗资源需求降低很多,同时推理的效果不受太大影响。
目前的通用模型压缩方法由两步构成:1.精细网络结构设计与修剪;2.精细网络表现提升。精细网络结构设计与修剪的常见方法有如下几类:手工设计、量化、剪枝、自动机器学习、网络分解;精细网络表现提升的常见方法有:重训练、知识蒸馏。
对于精细网络结构设计与修剪:手工设计网络常用于卷积层结构设计、需要大量经验和试错、普适性差;量化通常会导致精度大幅度损失;自动机器学习的假设空间通常非常大,需要强大的计算资源;网络分解方法普适性差。剪枝方法是最常用的精细网络设计与修剪方法。对于精细网络表现提升:重训练后的模型表现通常差于知识蒸馏方法,知识蒸馏方法是最常用的精细网络表现提升方法。
知识蒸馏的基本思想是通过软化的softmax目标变换学习教师网络输出的类别分布,将大型网络模型(教师网络)的知识精炼为小型网络模型(学生模型)的知识。该方法的表现较稳定、有完备的数学理论基础,是较常用的表现提升方法。
模型剪枝的基本思想是寻找一种有效的评判手段来判断参数或卷积核的重要性,将不重要的连接或者卷积核进行裁剪来减少模型的冗余。常见的模型剪枝分为结构化剪枝和非结构化剪枝。非结构化剪枝的修剪维度是单个连接,结构化剪枝的修剪维度是卷积核。
以上技术常用于卷积神经网络和其他深度学习模型中。现有的模型压缩方法由于以下原因,难以直接运用到gan网络模型中:
1.现有的gan网络模型的剪枝效果较差,精度损失严重。
2.gan网络模型损失函数收敛不稳定,难以训练,重训练方法难以直接应用。
3.gan网络模型的输出为图像,不是逻辑向量输出,知识蒸馏通常针对逻辑向量输出,这导致知识蒸馏方法难以直接应用。
发明内容
本发明要解决上述现有深度学习模型压缩技术难以直接应用在gan网络模型中的问题,提出了一种gan网络模型压缩方法。本发明的目的可以通过本发明中的中间层蒸馏、关系蒸馏、结构化剪枝等方法来达到。
一种生成对抗神经网络压缩方法,包括如下步骤:
(1)获得将要压缩的生成对抗网络,并将其作为教师网络;
(2)构建最大学生网络模型并预训练;
(3)学生网络模型剪枝;
(4)学生网络模型蒸馏。
进一步,步骤(1)通过自行构建生成对抗网络,或使用工业上广泛使用的生成对抗网络来作为教师网络。
进一步,步骤(2)设置最大学生网络模型为教师网络修改以下部分:
(2.1)修改主干网络的残差块结构:
(2.2)降低主干网络宽度:将主干网络每层卷积层按比例进行缩减;
(2.3)增加主干网络的残差块层数。
进一步,步骤(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层残差块;在减少模型宽度的同时增加模型深度,避免主干网络的表达能力下降。
进一步,步骤(3)使用的剪枝方法为结构化剪枝方法,用于对卷积层进行卷积核维度修剪;对于同一个卷积层中的所有卷积核,将计算卷积核之间的几何距离,两个几何距离近的卷积核简化为一个卷积核表示。
再进一步,步骤(3)具体包括:定义几何中心:在一个d维的空间中,给定一个点集,a1,a2,…,an,在该空间中找到一个点a*,使得该点到各个点的距离和最小,a*就是这个d维空间的几何中心;
Figure BDA0003938818800000031
(3.1)计算卷积层的几何中心:把卷积核抽象成欧氏空间中的点,对于网络中的每一层,在该层的若干卷积核空间中,计算几何中心,也是该层的数据中心。如果某个卷积核接近于这个几何中心,可以认为这个卷积核的信息跟其他卷积核重合,甚至是冗余的,于是能移除这个卷积核而不对网络产生大的影响;设某层卷积层的输入通道维度为Cin,输出通道维度为Cout,卷积核尺寸为k,输入特征图高度为w,宽度为h,输入特征图尺寸为
Figure BDA0003938818800000032
权重参数为
Figure BDA0003938818800000033
Figure BDA0003938818800000034
该层共有Cout个卷积核,第i个卷积核的权重参数为
Figure BDA0003938818800000035
假设压缩比例为f,则需要去掉f×cout个卷积核,压缩后剩余的目标卷积核数目为(1-f)×cout个;针对某一层卷积层,计算该卷积层所有卷积核的几何中心W*
Figure BDA0003938818800000036
(3.2)计算该卷积层所有卷积核W=[W1,W2,...,Wcout]与几何中心W*的L2距离d=[d1,d2,...,dcout],其中:
di=||Wi-W*||2 (3)
(3.3)移除该卷积层中冗余的卷积核:设函数Top(d,(1-f)×cout)为取数字列表d=[d1,d2,...,dcout]中最大的(1-f)×cout个值的函数,返回值为一个长度为(1-f)×cout的有序递减的列表,取列表最后一个值作为阈值t,即:
t=Top(d,(1-f)×cout)[(1-f)×cout-1] (4)
去掉所有卷积核W=[W1,W2,...,Wcout]与几何中心W*的L2距离d=[d1,d2,...,dcout]小于阈值t的卷积核,得到的裁剪后的新卷积核为:
Figure BDA0003938818800000041
用裁剪后的新卷积核
Figure BDA0003938818800000042
来代替原来的卷积核
Figure BDA0003938818800000043
Figure BDA0003938818800000044
该卷积层的卷积核压缩后参数量减少为压缩前卷积核的(1-f)。
进一步,步骤(4)包括:
设教师网络共有Ltea层,需要蒸馏的层号组合为Ntea=[n1,n2,...,nLtea];设学生网络共有Lstu层,需要蒸馏的层号组合为Nstu=[n1,n2,...,nLstu],学生网络和教师网络需要蒸馏的层号组合长度一致并且一一对应;设教师网络第Ntea[i]层卷积核的输入通道数为Cteain,输出通道数为Cteaout;该层的输出特征图为
Figure BDA0003938818800000045
同理,学生网络的第Nstu[i]层卷积核的输入通道数为Cstuin,输出通道数为Cstuout;该层的输出特征图为
Figure BDA0003938818800000046
利用特征图知识蒸馏方法将教师网络的第Ntea[i]层的知识传给学生网络的第Nstu[i]层,令学生网络的第Nstu[i]层的输出特征图和教师网络的第Ntea[i]层的输入特征图匹配即可;由于学生网络的第Nstu[i]层的输出通道数和教师网络的第Ntea[i]层的输出通道数通常不一致,故需要进行对齐维度;这里使用一个卷积层(Conv2D)进行对齐操作,将Fstu[i]输入卷积层经过卷积操作后,卷积层的输出记为
Figure BDA0003938818800000047
Figure BDA0003938818800000048
学生网络的输出通道数由stuout转换为teaout,和教师网络对应层的输出通道数一致;
F′stu[i]=Conv2D(Fstu[i],stuout,teaout) (6)
损失函数设计:使用MSE损失函数将F′stu[i]和Ftea[i]对齐,公式如下所示:
Loss=‖F′stu[i]-Ftea[i]‖2 (7)
使用反向传播算法降低损失函数来优化学生网络模型权重。
本发明的一种生成对抗神经网络压缩装置,包括:
生成对抗网络获取模块,用于获得将要压缩的生成对抗网络,并将其作为教师网络;
最大学生网络模型构建预训练模块,用于构建最大学生网络模型并预训练;
学生网络模型剪枝模块,用于学生网络模型剪枝;
学生网络模型蒸馏模块,用于学生网络模型蒸馏。
一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现本发明的一种生成对抗神经网络压缩方法。
本发明的工作原理是:
(1)构建学生网络时对原有的标准残差块网络结构进行优化:选取特制的三个卷积层进行替换,分别为:膨胀卷积层、深度卷积层、线性映射层。不影响原有的性能,同时降低网络模型的参数量。
(2)对构建好的学生网络进行结构化剪枝:将卷积核抽象成欧式空间内的点,通过设置距离阈值来对卷积核进行删减,进一步的降低网络模型的参数量。
(3)通过成熟的知识蒸馏方法将教师网络的知识传授给上述得到的学生网络,完成不损失模型能力的情况下模型参数的减少。
本发明的优点是:能够在不损失效果的情况下,将原生成对抗神经网络替换为参数更小的网络,对于模型在软件应用或实际部署中有着至关重要的作用。
附图说明
图1是本发明方法的流程图。
图2是本发明装置的结构图。
图3a—图3b展示由本发明方法压缩后的cyclegan′网络模型与未压缩cyclegan模型生成图片的结果对比,其中图3a是未压缩cyclegan模型生成图片,图3b是由本发明方法压缩后的cyclegan′网络模型生成的图片。
图4是学生网络残差块修改后的结构示意图。
图5a-图5b展示风格迁移的直观效果,其中图5a为原始图片,图5b是由pix2pix模型进行风格迁移后图片。
具体实例方法
为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合实施例。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
实施例一
在horse2zebra数据集中,选取cyclegan为欲压缩网络(教师网络),其具有11.378M参数量、56.832G计算量。压缩前cyclegan的评价指标(FID)值为61.53。对该该网络使用本方法进行压缩,压缩后的cyclegan′网络(学生网络)具有0.266M参数量、1.947G计算量,压缩后网络的评价指标(FID)值为62.776。压缩前后模型具体参数如下表所示:
Figure BDA0003938818800000061
通过本方法,在工业中广泛使用的cyclegan模型参数量压缩43倍,模型计算量压缩29倍,模型的表现能力(FID)几乎没有下降,压缩后的cyclegan′生成的图片与原cyclegan网络生成的图片,见图1,用肉眼难以分辨。
实施例二
本实施例提供一种应用本发明的软件安装应用场景。风格迁移作为现在各种软件修图的常见功能,该功能效果可见图5,其主要使用Pix2pix模型来进行实现,为此安装该软件时需要将Pix2pix模型包含在软件内。完整的Pix2pix模型的参数为11.38M,该大小限制了软件安装所需要的空间。为解决目前软件安装空间过大问题,便可应用该发明,其步骤包括:
(1)获得将要压缩的生成对抗网络,并将其作为教师网络:本实例中可以使用目前深度学习框架tensorflow来获得预训练好的Pix2pix模型,将其作为教师网络。
(2)构建最大学生网络模型并预训练:
(2.1)修改主干网络的残差块结构:
将教师网络(Pix2pix模型)中的标准残差块中的卷积层替换为特制的三个卷积层,其由膨胀卷积层、深度卷积层、线性映射层组成。膨胀卷积层:卷积核尺寸为1*1。作用为将输入特征的通道数增加,从低维空间映射到高维空间,便于在高维空间提取特征。深度卷积层:卷积核尺寸为3*3。该层为组卷积层,分组数目等于该卷积层输入通道数目。线性映射层:卷积核尺寸为1*1。将特征的通道数降低,从高维空间映射到低维空间,便于后续层的处理。
(2.2)降低主干网络宽度:将主干网络每层卷积层按比例进行缩减,具体比例系数可由使用者定义。
(2.3)增加主干网络的残差块层数:具体增加数量可由使用者定义。在减少模型宽度的同时增加模型深度,避免主干网络的表达能力下降。
(3)学生网络模型(Pix2pix′模型)剪枝:使用的剪枝方法为结构化剪枝方法,用于对卷积层进行卷积核维度修剪。对于同一个卷积层中的所有卷积核,将计算卷积核之间的几何距离,两个几何距离近的卷积核可以简化为一个卷积核表示。
(3.1)计算卷积层的几何中心:把卷积核抽象成欧氏空间中的点,对于网络中的每一层,在该层的若干卷积核空间中,计算几何中心,也是该层的数据中心,按照公式(2)进行计算。如果某个卷积核接近于这个几何中心,可以认为这个卷积核的信息跟其他卷积核重合,甚至是冗余的,于是可以移除这个卷积核而不对网络产生大的影响。设某层卷积层的输入通道维度为Cin,输出通道维度为Cout,卷积核尺寸为k,输入特征图高度为w,宽度为h,输入特征图尺寸为
Figure BDA0003938818800000071
权重参数为
Figure BDA0003938818800000072
该层共有Cout个卷积核,第i个卷积核的权重参数为
Figure BDA0003938818800000073
假设压缩比例为f,则需要去掉f×cout个卷积核,压缩后剩余的目标卷积核数目为(1-f)×cout个。
(3.2)按照公式(3)计算该卷积层所有卷积核W=[W1,W2,...,Wcout]与几何中心W*的L2距离d=[d1,d2,...,dcout]。
(3.3)移除该卷积层中冗余的卷积核:设函数Top(d,(1-f)×cout)为取数字列表d=[d1,d2,...,dcout]中最大的(1-f)×cout个值的函数,返回值为一个长度为(1-f)×cout的有序递减的列表,取列表最后一个值作为阈值t,即公式(4)。去掉所有卷积核W=[W1,W2,...,Wcout]与几何中心W*的L2距离d=[d1,d2,...,dcout]小于阈值t的卷积核,得到的裁剪后的新卷积核。
用裁剪后的新卷积核
Figure BDA0003938818800000081
来代替原来的卷积核
Figure BDA0003938818800000082
Figure BDA0003938818800000083
明显看出,该卷积层的卷积核压缩后参数量减少为压缩前卷积核的(1-f)。
(4)学生网络模型蒸馏:由于剪枝更改了网络结构,故直接使用剪枝前的网络的对应权重会导致精度丢失严重的问题。为解决该问题,提出多层知识蒸馏算法提升网络表现,使得剪枝后的小网络的模型精度照剪枝前的大网络的模型精度不会有太大下滑。设教师网络共有Ltea层,需要蒸馏的层号组合为Ntea=[n1,n2,...,nLtea];设学生网络共有Lstu层,需要蒸馏的层号组合为Nstu=[n1,n2,...,nLstu],学生网络和教师网络需要蒸馏的层号组合长度一致并且一一对应。设教师网络第Ntea[i]层卷积核的输入通道数为Cteain,输出通道数为Cteaout。该层的输出特征图为
Figure BDA0003938818800000084
同理,学生网络的第Nstu[i]层卷积核的输入通道数为Cstuin,输出通道数为Cstuout。该层的输出特征图为
Figure BDA0003938818800000085
Figure BDA0003938818800000086
利用特征图知识蒸馏方法将教师网络的第Ntea[i]层的知识传给学生网络的第Nstu[i]层,令学生网络的第Nstu[i]层的输出特征图和教师网络的第Ntea[i]层的输入特征图匹配即可。由于学生网络的第Nstu[i]层的输出通道数和教师网络的第Ntea[i]层的输出通道数通常不一致,故需要进行对齐维度。这里使用一个卷积层(Conv2D)进行对齐操作,将Fstu[i]输入卷积层经过卷积操作后,卷积层的输出记为
Figure BDA0003938818800000087
学生网络的输出通道数由stuout转换为teaout,和教师网络对应层的输出通道数一致。
损失函数设计:使用MSE损失函数将F′stu[i]和Ftea[i]对齐,公式(7)所示。使用反向传播算法降低损失函数来优化学生网络模型权重。
(5)获得蒸馏后pix2pix学生网络(参数为0.51M,FID基本不变,在map->arialphoto数据集上)。通过将该模型替代原pix2pix网络,即在软件安装文件中进行模型替换可完成软件安装空间需求的降低。
本发明的目的是解决现有的深度学习模型压缩技术如剪枝,量化难以直接应用在生成对抗网络模型中的问题,提出了一种针对生成对抗网络模型的压缩方法,能够有效的减少网络的参数量与计算量。涉及人工智能领域,具体涉及生成对抗神经网络压缩领域。对生成对抗网络的实际应用与部署有着重要意义。通过本方法,在工业中广泛使用的cyclegan模型参数量压缩43倍,模型计算量压缩29倍,模型的表现能力(FID)几乎没有下降,压缩后的cyclegan'生成的图片与原cyclegan网络生成的图片用肉眼难以分辨。
实施例三
参照图2,本发明的一种生成对抗神经网络压缩装置,包括:
生成对抗网络获取模块,用于获得将要压缩的生成对抗网络,并将其作为教师网络;
最大学生网络模型构建预训练模块,用于构建最大学生网络模型并预训练;
学生网络模型剪枝模块,用于学生网络模型剪枝;
学生网络模型蒸馏模块,用于学生网络模型蒸馏。
一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现本发明的一种生成对抗神经网络压缩方法。
在硬件层面,该一种生成对抗神经网络压缩装置包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的一种生成对抗神经网络压缩方法。当然,除了软件实现方式之外,本发明并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(ProgrammableLogic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware DescriptionLanguage,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced BooleanExpression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java HardwareDescription Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware DescriptionLanguage)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated CircuitHardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (10)

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,...,an,在该空间中找到一个点a*,使得该点到各个点的距离和最小,a*就是这个d维空间的几何中心;
Figure FDA0003938818790000021
(3.1)计算卷积层的几何中心:把卷积核抽象成欧氏空间中的点,对于网络中的每一层,在该层的若干卷积核空间中,计算几何中心,也是该层的数据中心。如果某个卷积核接近于这个几何中心,可以认为这个卷积核的信息跟其他卷积核重合,甚至是冗余的,于是能移除这个卷积核而不对网络产生大的影响;设某层卷积层的输入通道维度为Cin,输出通道维度为Cout,卷积核尺寸为k,输入特征图高度为w,宽度为h,输入特征图尺寸为
Figure FDA0003938818790000022
权重参数为
Figure FDA0003938818790000023
Figure FDA0003938818790000024
该层共有Cout个卷积核,第i个卷积核的权重参数为
Figure FDA0003938818790000025
假设压缩比例为f,则需要去掉f×cout个卷积核,压缩后剩余的目标卷积核数目为(1-f)×cout个;针对某一层卷积层,计算该卷积层所有卷积核的几何中心W*
Figure FDA0003938818790000026
(3.2)计算该卷积层所有卷积核W=[W1,W2,...,Wcout]与几何中心W*的L2距离d=[d1,d2,...,dcout],其中:
di=||Wi-W*||2 (3)
(3.3)移除该卷积层中冗余的卷积核:设函数Top(d,(1-f)×cout)为取数字列表d=[d1,d2,...,dcout]中最大的(1-f)×cout个值的函数,返回值为一个长度为(1-f)×cout的有序递减的列表,取列表最后一个值作为阈值t,即:
t=Top(d,(1-f)×cout)[(1-f)×cout-1] (4)
去掉所有卷积核W=[W1,W2,...,Wcout]与几何中心W*的L2距离d=[d1,d2,...,dcout]小于阈值t的卷积核,得到的裁剪后的新卷积核为:
Figure FDA0003938818790000031
用裁剪后的新卷积核
Figure FDA0003938818790000032
来代替原来的卷积核
Figure FDA0003938818790000033
Figure FDA0003938818790000034
该卷积层的卷积核压缩后参数量减少为压缩前卷积核的(1-f)。
8.如权利要求1所述的一种生成对抗神经网络压缩装方法,其特征在于:步骤(4)包括:
设教师网络共有Ltea层,需要蒸馏的层号组合为Ntea=[n1,n2,...,nLtea];设学生网络共有Lstu层,需要蒸馏的层号组合为Nstu=[n1,n2,...,nLstu],学生网络和教师网络需要蒸馏的层号组合长度一致并且一一对应;设教师网络第Ntea[i]层卷积核的输入通道数为Cteain,输出通道数为Cteaout;该层的输出特征图为
Figure FDA0003938818790000035
同理,学生网络的第Nstu[i]层卷积核的输入通道数为Cstuin,输出通道数为Cstuout;该层的输出特征图为
Figure FDA0003938818790000036
利用特征图知识蒸馏方法将教师网络的第Ntea[i]层的知识传给学生网络的第Nstu[i]层,令学生网络的第Nstu[i]层的输出特征图和教师网络的第Ntea[i]层的输入特征图匹配即可;由于学生网络的第Nstu[i]层的输出通道数和教师网络的第Ntea[i]层的输出通道数通常不一致,故需要进行对齐维度;这里使用一个卷积层(Conv2D)进行对齐操作,将Fstu[o]输入卷积层经过卷积操作后,卷积层的输出记为
Figure FDA0003938818790000037
Figure FDA0003938818790000038
学生网络的输出通道数由stuout转换为teaout,和教师网络对应层的输出通道数一致;
F′stu[i]=Conv2D(Fstu[i],stuout,teaout) (6)
损失函数设计:使用MSE损失函数将F′stu[i]和Ftea[i]对齐,公式如下所示:
Loss=||F′stu[i]-Ftea[i]||2 (7)
使用反向传播算法降低损失函数来优化学生网络模型权重。
9.如权利要求1所述的一种生成对抗神经网络压缩装置,其特征在于:包括:
生成对抗网络获取模块,用于获得将要压缩的生成对抗网络,并将其作为教师网络;
最大学生网络模型构建预训练模块,用于构建最大学生网络模型并预训练;
学生网络模型剪枝模块,用于学生网络模型剪枝;
学生网络模型蒸馏模块,用于学生网络模型蒸馏。
10.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1-8中任一项所述的一种生成对抗神经网络压缩方法。
CN202211413167.1A 2022-11-11 2022-11-11 一种对抗生成神经网络压缩方法 Pending CN115660070A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202211413167.1A CN115660070A (zh) 2022-11-11 2022-11-11 一种对抗生成神经网络压缩方法
CN202311019433.7A CN117036906A (zh) 2022-11-11 2023-08-14 一种基于生成对抗神经网络压缩的图像翻译方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211413167.1A CN115660070A (zh) 2022-11-11 2022-11-11 一种对抗生成神经网络压缩方法

Publications (1)

Publication Number Publication Date
CN115660070A true CN115660070A (zh) 2023-01-31

Family

ID=85022174

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202211413167.1A Pending CN115660070A (zh) 2022-11-11 2022-11-11 一种对抗生成神经网络压缩方法
CN202311019433.7A Pending CN117036906A (zh) 2022-11-11 2023-08-14 一种基于生成对抗神经网络压缩的图像翻译方法和装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202311019433.7A Pending CN117036906A (zh) 2022-11-11 2023-08-14 一种基于生成对抗神经网络压缩的图像翻译方法和装置

Country Status (1)

Country Link
CN (2) CN115660070A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117036906A (zh) * 2022-11-11 2023-11-10 之江实验室 一种基于生成对抗神经网络压缩的图像翻译方法和装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117444455A (zh) * 2023-11-30 2024-01-26 浙江中路金属股份有限公司 一种钢筋网焊接定位系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112396181A (zh) * 2020-12-31 2021-02-23 之江实验室 一种卷积神经网络通用压缩架构的自动剪枝方法及平台
CN113160041B (zh) * 2021-05-07 2024-02-23 深圳追一科技有限公司 一种模型训练方法及模型训练装置
CN115660070A (zh) * 2022-11-11 2023-01-31 之江实验室 一种对抗生成神经网络压缩方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117036906A (zh) * 2022-11-11 2023-11-10 之江实验室 一种基于生成对抗神经网络压缩的图像翻译方法和装置

Also Published As

Publication number Publication date
CN117036906A (zh) 2023-11-10

Similar Documents

Publication Publication Date Title
CN115660070A (zh) 一种对抗生成神经网络压缩方法
CN108229681A (zh) 一种神经网络模型压缩方法、系统、装置及可读存储介质
KR20180073118A (ko) 컨볼루션 신경망 처리 방법 및 장치
US11928599B2 (en) Method and device for model compression of neural network
CN107395211B (zh) 一种基于卷积神经网络模型的数据处理方法及装置
CN111178258B (zh) 一种图像识别的方法、系统、设备及可读存储介质
CN112633482B (zh) 一种高效宽度图卷积神经网络模型系统及训练方法
CN116521380A (zh) 一种资源自适应协同的模型训练加速方法、装置及设备
KR102305575B1 (ko) 이미지 간 유사도를 이용한 유사 영역 강조 방법 및 시스템
CN114861907A (zh) 数据计算方法、装置、存储介质和设备
Bayat et al. Combining truncated binary search tree and direct search for flexible piecewise function evaluation for explicit MPC in embedded microcontrollers
CN115543945B (zh) 一种模型压缩的方法、装置、存储介质及电子设备
Zhan et al. Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems
CN113887719B (zh) 一种模型压缩方法及装置
CN115310607A (zh) 一种基于注意力图的视觉Transformer模型剪枝方法
TWI798591B (zh) 卷積神經網路運算方法及裝置
CN115099309A (zh) 一种为图数据的存储和索引设计代价评估模型的方法
CN113592065A (zh) 一种二值神经网络的训练方法及训练装置
CN113298248B (zh) 一种针对神经网络模型的处理方法、装置以及电子设备
CN112749706A (zh) 一种语义分割方法及相关设备
Qin et al. Compact Multi-level Sparse Neural Networks with Input Independent Dynamic Rerouting
CN115905569B (zh) 一种基于节点自适应的小样本知识图谱补全方法和装置
CN118536557B (zh) 模型处理方法、装置、计算机设备、存储介质和程序产品
CN114444658B (zh) 一种深度学习模型推理方法、系统、设备及计算机介质
CN104244003B (zh) 一种确定运动矢量代价的方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20230131

WD01 Invention patent application deemed withdrawn after publication