没有合适的资源?快使用搜索试试~ 我知道了~
GAN压缩:高效条件生成对抗网络的通用方法
1GAN压缩:交互式条件GAN的高效体系结构李牧阳1、3纪林1、丁瑶瑶1、3刘志坚1、朱军艳2、宋涵1lmxyy@mit.edujilin@mit.eduyyding@mit.eduzhijian@mit.edusonghan@mit.edujunzhu@adobe.com1麻省理工学院2Adobe Research3上海交通大学输入CycleGAN:56.8G MAC我们的:2.67G(21.2×)输入pix2pix:56.8G MAC我们的:4.81G(11.8×)输入地面实况GauGAN:281G MAC我们的:31.7G(8.8×)图1:我们介绍了GAN压缩,这是一种用于压缩条件GAN的通用方法我们的方法将广泛使用的条件GAN模型(包括pix 2 pix,CycleGAN和GauGAN)的计算减少了9-21倍,同时保持了视觉保真度。我们的方法是有效的广泛的发电机架构,学习目标,并配对和非配对设置。摘要条件生成对抗网络(cGAN)已经为许多计算机视觉和图形应用提供了可控的图像合成。然而,最近的cGAN比现代识别CNN的计算密集度高1-2个数量级。例如,Gau-GAN每个映像消耗281 G MAC,而MobileNet-v3消耗在这项工作中,我们提出了一个通用的压缩框架,以减少推理时间和模型大小的生成器在cGANs。由于GAN训练的困难和差异,直接应用在发电机架构中。我们以两种方式应对这些挑战。首先,为了稳定GAN训练,我们将原始模型的多个中间表示的知识转移到其压缩模型中,并统一非配对和配对学习。其次,我们的方法不是重用现有的CNN设计,而是通过神经架构搜索(NAS)自动找到有效的架构为了加速搜索过程,我们通过权重共享将模型训练和架构搜索实验证明了我们的方法在不同的超级视觉设置(配对和未配对),模型架构,CycleGAN增加20倍以上,GauGAN增加9倍,为交互式图像合成铺平了道路。代码和演示是公开的。1. 介绍生成对抗网络(GANs)[14]擅长合成照片般逼真的图像。它们的条件扩展,条件GAN [44,27,69],允许可控的图像合成,并支持许多计算机视觉和图形应用,例如从用户绘画中交互式创建图像[45],将跳舞视频流的运动传输给不同的人[57,8,1],或为远程社交交互创建VR面部动画[59]。所有这些应用程序都需要模型与人类交互,因此需要低延迟的设备性能以获得更好的用户体验。然而,边缘设备(手机、平板电脑、VR头显)受到内存、电池等硬件资源的严格约束。这种计算瓶颈阻碍了条件GAN在边缘设备上的部署。与图像识别CNN不同[31,53,19,25],图像条件GAN是众所周知的计算密集型。例如,广泛使用的CycleGAN模型[69]需要超过50G的MAC,100×更多和学习方法(例如,pix2pix、GauGAN、CycleGAN)。在不损失图像质量的情况下,我们减少了卷积运算的计算量。我们使用乘法累加运算(MAC)的次数来52845285比MobileNet [25]。更新的模型GauGAN [45]虽然生成照片级逼真的高分辨率图像,但需要超过250 G的MAC,比Mo- bileNet [25,49,24]多500倍在这项工作中,我们提出了GAN压缩,一个通用的-参数(M)MAC(G)目的压缩方法,用于减少条件GAN的推理我们观察到压缩生成模型面临两个基本困难:GAN的训练不稳定,特别是在不成对的情况下;生成器也不同于识别CNN,这使得很难重用现有的CNN设计。为了解决这些问题,我们首先将知识从原始教师生成器的中间表示转移我们还发现,使用教师模型这将非配对学习转化 为 配 对 学 习 。 其 次 , 我 们 使 用 神 经 架 构 搜 索(NAS)自动找到一个有效的网络,具有显着更少的计算成本和参数。为了降低训练成本,我们通过训练一个包含所有可能的通道数配置的“一次性网络”来将模型训练与架构搜索一次性网络可以通过权值共享产生许多子网络,并且使我们能够评估每个子网络的性能而无需重新训练。我们的方法可以应用于各种条件GAN模型,无论模型架构,学习算法和监督设置(配对或不配对)。通过大量的实验,我们证明了我们的方法可以将三种 广 泛 使 用 的 条 件 GAN 模 型 ( 包 括 pix2pix [27] ,CycleGAN [69]和GauGAN [45])的计算减少9倍到21倍,而不会损失生成图像的视觉保真度(见图1举几个例子)。最后,我们在一个移动终端(JetsonNano)上部署了我们的压缩pix2pix模型,并演示了一个交互式edges2shoes应用程序[demo]。2. 相关工作条件GAN。生成对抗网络(GAN)[14]擅长合成照片般逼真的结果[29,5]。它的条件形式,条件GAN[44,27]进一步实现了可控的图像合成,允许用户在给定各种条件输入(如用户草图[27,50],类标签[44,5]或文本解压缩[47,67])的情况下合成图像。随后的工作进一步提高了结果的分辨率和真实性[58,45]。后来,提出了几种算法来学习没有配对数据的条件GAN[55,51,69,30,62,38,11,26,32]。高分辨率、照片般逼真的合成结果是以密集计算为代价的所示量化计算成本。现代计算机架构使用融合这些指令计算a=a+b×c作为一个操作。1 MAC=2 FLOP。图2:条件GAN需要两个数量级比图像分类CNN更多的计算,使得它无法部署在边缘设备上。图2,虽然模型大小与图像识别CNN的大小相同[19],但条件GAN需要两个数量级的计算。这使得在给定有限计算资源的边缘设备上部署这些模型具有挑战性。在这项工作中,我们专注于高效的图像条件GANs架构的交互式应用程序。模型加速。广泛关注硬件高效的深度学习用于各种现实世界的应用[18,17,68,56,16]。为了减少网络权重的冗余,研究人员提出修剪层之间的连接[18,17,60]。然而,修剪网络需要专门的硬件来实现其完全加速。随后的几项工作提出修剪整个卷积滤波器[21,34 , 39] 以 提 高 计 算 的 规 律 性 。 AutoML for ModelCompression(AMC)[20]利用强化学习来自动确定每一层的修剪率Liu等[40]后来用进化搜索算法取代了强化学习。最近,Shuet al. [52]通过修改原始的Cycle-GAN算法,提出了CycleGAN的协同进化剪枝。该方法是针对特定算法定制的。压缩模型显著增加FID在中等压缩比(4.2×)下。与此相反,我们的模型不可知方法可以应用于条件GAN具有不同的学习算法,架构以及配对和非配对设置。我们假设不知道原始cGAN学习算法。实验结果表明,该方法的压缩比为21.1× 10 - 6,具有较好的通用性。分辨率(比CycleGAN特定方法好5倍[52])同时保留了原始模型的FID。知识升华。Hinton等人[23]介绍了将较大教师网络中的知识转移到较小学生网络的知识蒸馏。学生网络被训练成模仿教师网络的行为有几种方法利用知识蒸馏来压缩识别模型[43,9,33]。最近,Aguinaldoet al. [2]采用这种方法来加速无条件GAN。与他们不同的是,我们 关 注 的 是 康 师 傅 。 We experimented with severaldistillation methods [2, 63] on conditional GANs and onlyobservedmarginalimprovement,insufficientforinteractive applica- tions.请参阅我们的arXiv了解更多详情。MobileNetResNet-50CycleGANGauGAN2815793110.54.0254.25286k=1i=1i=1j=1①预培训教师生成器G'解耦训练和搜索②候选生成器池CWCC...如果配对模型01G '(x)XGT......C1C2蒸馏损失CK侦察损失cGAN损失评估选择...D'③“Once-for-all”其中信道号c 1 =[16,32],c 2 =[16,32],. ,cK=[16,32],步长=8G(x)微调H图3:GAN压缩:���给定一个预先训练的教师生成器G',我们通过权重共享提取一个较小的“一次性”[6]学生生成器G,其中包含所有可能的通道号。我们在每个训练步骤中对G的不同信道号{ck}K进行采样,以便一个生成器可以支持所有信道号。然后我们提取许多子生成器使用来自“一次性”发生器的不同通道号,并评估其性能。不需要再培训,这是“一次性”发电机的优点。最后,我们在给定压缩比目标和性能目标(FID或mAP)的情况下选择最佳的子生成器,进行微调,并获得最终的压缩模型。神经架构搜索。神经架构搜索(NAS)已经成功地设计了神经网络架构,其在图像识别任务中的表现优于手工制作的神经网络架构[71,35,36]。为了降低搜索成本,研究人员最近提出了一次性神经架构搜索[37,7,61,15,24,4,6],其中不同的子网络可以共享权重。然而,很少有人努力寻找有效的GAN架构。我们研究模型压缩过程,而不管教师模型最初是如何训练的。给定初始教师生成器G′,我们可以将非配对训练设置转换为配对设置。特别是,对于未配对的设置,我们可以将原始生成器的输出视为我们的地面实况,并使用配对学习目标训练我们的我们的学习目标可以概括为:.E使用NAS的高效条件GAN架构L=x,yG(x)−y1, 如果是成对的cGAN,(一)ReconEx<$G(x)−G′(x)<$1如果不成对的cGAN3. 方法为交互式应用压缩条件生成模型具有挑战性,原因有两个。首先,GAN的训练动态本质上是高度不稳定的其次,识别模型和生成模型之间的结构差异使得很难直接应用现有的CNN压缩算法为了解决这些问题,我们提出了一种为高效生成模型量身定制的新训练协议(第3.1节),并通过神经架构搜索(NAS)进一步提高压缩比(第3.2节)。总体框架如图3所示。3.1. 培养目标统一非配对和配对学习。 条件GAN旨在学习源域X和目标域Y之间的映射函数G。它们可以通过使用为了简单起见,这里我们表示Ex,Expdata(x)和Ex,y,Ex,ypdata(x,y)。L1表示L1范数。 通过这样的修改,我们可以将相同的压缩框架应用于不同类型的cGAN。此外,如第4.3节所示,使用上述伪对的学习使训练更稳定,并产生更好的结果,与原始的未配对训练设置相比由于非配对训练已转换为配对训练,除非另有说明,否则我们将在配对训练设置中讨论以下部分继承老师的衣钵。虽然我们的目标是压缩生成器,但当D学习发现当前生成器的弱点时,CNOD存储学习的GAN的有用知识[3]。因此,我们采用相同的权重架构,使用来自教师的预先训练的权重,并一起对配对数据({xi,yi}N其中xi∈X且yi∈Y)我们的压缩发电机。在实验中,我们或未配对的数据(源数据集{xi}N目标数据集看起来,一个预先训练好的机器人比一个跑步者更好。{yj}M ). 这里,N和M表示训练im的数量导致严格训练的domly初始化训练年龄为了简单起见,我们省略下标i和j。几已经提出了学习目标来处理两个配对不稳定性和图像质量下降。的GAN目标形式化为:以及未配对的设置(例如,[27、45、58、69、38、26])。培训目标的广泛性使其难以建立LcGAN=Ex,y[logD(x,y)]+Ex[log(1−D(x,G(x)](2)一个通用的压缩框架。为了解决这一限制,我们将非配对和配对学习统一在其中,我们使用来自教师的权重来初始化学生的权重。G和D都受过训练5287不不使用标准的minimax优化[14]。中间特征蒸馏。 一种广泛使用的模型压缩方法是知识蒸馏,它与输出层的logit分布相匹配然而,条件GAN[27,69]通常输出确定性图像,而不是概率分布。因此,很难从教师的输出像素中提取暗知识特别是对于配对训练设置,与地面实况目标图像相比,教师模型生成的输出图像基本上不包含额外我们在arXiv中的实验表明,对于配对训练,天真地模仿教师模型为了解决这个问题,我们匹配了教师生成器的中间表示,如之前的工作[33,66,9]中所探讨的那样。中间层包含更多通道,提供更丰富的信息,并允许学生模型获取除输出之外的更多信息。蒸馏目标可以形式化为:ΣT分类和分割CNN的设计最近的高效CNN设计广泛采用卷积的分解版本(depth+逐点)[25],这被证明具有更好的性能-计算权衡。我们发现,使用分解卷积也有利于cGAN中的生成器设计不幸的是,我们早期的实验表明,天真地将分解应用于所有卷积层(如 在分类器中)将显著降低图像质量。分解某些层会立即损害性能,而其他层则更健壮。此外,这种层敏感性模式与识别模型也不相同.例如,在ResNet生成器[19,28]中,resBlock层消耗了大部分模型参数和计算成本,同时几乎不受分解的影响。相反,上采样层的参数要少得多,但对模型压缩相当敏感:适度压缩可导致大的FID降级。因此,我们只分解resBlock层。我们在第4.3节中对层的敏感性进行了全面的研究。L蒸馏=t=1<$Gt(x)−ft(G′(x))<$2,(3)通过NAS自动减少渠道。现有的生成器使用手工制作的(并且大部分是统一的)通道其中Gt(x)和G′(x)是中间特征acti。学生和教师模型中第t个选定层的vations,T表示层数。ft是一个1×1可学习卷积,它将通道从学生模型映射到教师模型,因为它们具有不同的通道编号。我们联合优化Gt和ft,使蒸馏损失Ldistill最小.我们的arXiv详细介绍了我们在实践中选择的层。目标明确我们的最终目标如下:L=LcGAN+λ reconL recon+λ distillL distill,⑷所有层的数字,其中包含冗余,远远不是最佳的。为了进一步提高压缩比,我们使用自动通道修剪[20,39,70,42]来选择生成器中的通道宽度以去除冗余,这可以二次减少计算我们支持有关通道数量的细粒度选择。对于每个卷积层,通道的数量可以从8的倍数中选择,这平衡了MAC和硬件并行性[20]。给定的可能信道配置{c1,c2,...,c K},其中K是要修剪的层数,我们的 目标是找到最佳通道配置{c,c,.,c= arg minc,c,.,CL, s.t. MACs
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- NIST REFPROP问题反馈与解决方案存储库
- 掌握LeetCode习题的系统开源答案
- ctop:实现汉字按首字母拼音分类排序的PHP工具
- 微信小程序课程学习——投资融资类产品说明
- Matlab犯罪模拟器开发:探索《当蛮力失败》犯罪惩罚模型
- Java网上招聘系统实战项目源码及部署教程
- OneSky APIPHP5库:PHP5.1及以上版本的API集成
- 实时监控MySQL导入进度的bash脚本技巧
- 使用MATLAB开发交流电压脉冲生成控制系统
- ESP32安全OTA更新:原生API与WebSocket加密传输
- Sonic-Sharp: 基于《刺猬索尼克》的开源C#游戏引擎
- Java文章发布系统源码及部署教程
- CQUPT Python课程代码资源完整分享
- 易语言实现获取目录尺寸的Scripting.FileSystemObject对象方法
- Excel宾果卡生成器:自定义和打印多张卡片
- 使用HALCON实现图像二维码自动读取与解码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功