『量子位』GPU、CPU统统能加速,朱俊彦团队提出GAN压缩算法:计算量减20倍
边策鱼羊发自凹非寺
量子位报道|公众号QbitAI
现如今 , GAN的效果已经越来越出神入化 。
比如英伟达的GauGAN , 就如神笔马良 , 能够凭空造物:
文章图片
不过 , 从无化有背后 , 计算量也相当惊人 。
文章图片
以GauGAN为例 , 与MobileNet-v3这样的识别CNN相比 , 参数只相差1个数量级(4.2:93)计算强度却高出了2个数量级(0.5:281) 。
如此一来 , 交互式部署就变得很困难 。
更直白来说 , 想要把模型部署到手机、平板这样的终端 , 换装变脸转性别 , 这些边缘设备——吃不太消 。
为了解决这一问题 , 来自MIT、Adobe研究院和上海交通大学的团队琢磨出了一个通用压缩框架 。
有多强?
一举将CycleGAN的计算量减少了20倍以上 , 将GauGAN的计算量减少了9倍 , 简笔画到实物图的pix2pix也能驾驭 , 效果却未差分毫 。
文章图片
值得一提的是 。 论文已入选CVPR2020 , 代码也已开源 。
作者团队也星光璀璨 , 一作是来自上海交通大学ACM班的本科生李沐阳 , CycleGAN的作者朱俊彦则亲身参与、指导 。
GAN压缩算法
压缩GAN , 并不像压缩其他CNN模型那样容易 。
主要原因:GAN的训练动力学高度不稳定 , 生成器与鉴别器之间存在巨大的结构差异 , 让我们很难使用现有的CNN压缩算法 。
为了解决这个问题 , 作者提出了针对有效生成模型量身定制的训练方案 , 并通过神经架构搜索(NAS)进一步提高压缩率 。
GAN压缩的框架如下图所示 , 主要分为3个部分:
文章图片
1、给定一个预训练的teacher生成器G’ , 通过蒸馏的方法获取一个较小的“once-for-all”的student生成器G , 其中包括通过权重共享的所有可能通道数 。 在每个训练步骤中选择不同的通道数ck 。
2、从“once-for-all”生成器中提取许多子生成器 , 并评估其性能 , 无需重新训练 , 这也是被叫做once-for-all(一劳永逸)的原因 。
3、最后 , 根据给定的压缩率目标和性能目标 , 选择最佳子生成器 , 进行微调 , 并获得最终的压缩模型 。
构造合适的损失函数
因为GAN压缩算法要面对CycleGAN、pix2pix还有GauGAN , 这些模型的损失函数都不尽相同 , 所以需要构造一个新的损失函数 。
统一未配对和配对学习
有些GAN是通过配对数据集学习的 , 有些则是非配对数据集 。 因此要在损失函数中加入第二项 , 统一非配对和配/p>
文章图片
继承teacher鉴别器
尽管目标是压缩生成器 , 但是鉴别器会存储学习到GAN知识 , 因为它会发现当前生成器的缺点 。
因此 , 我们采用相同的鉴别器架构 , 使用teacher预训练的权重 , 并与我们的压缩生成器一起对鉴别器进行微调 。 预训练的鉴别器可以指导student生成器的训练 。
文章图片
初始化的student鉴别器D使用来自teacher鉴别器D’的权重 。
中间特征蒸馏
蒸馏是CNN中广泛使用的模型压缩方法 。
CNN模型压缩的一种广泛使用的方法是知识蒸馏 。 通过匹配输出层的logits , 可以将知识从teacher模型转移到student模型 , 从而提高后者的表现 。
- 南京1号电脑超市■CPU 问题,而是它坏了,电脑开机无显示,不是主板也不是
- 【IT之家】32款全新升级笔电上线苏宁,英特尔重磅发布十代CPU
- [量子位]传狗难,Nature报道新冠病毒新研究:传猫易
- 【来宾标歌】4800W像素,仅1999元,买小米9不如看它!配骁龙855CPU
- 「存储极客」固态硬盘的性能天梯图来了!,实用性能排座次
- 小鱼一键重装系统▲电脑如何开启cpu虚拟化
- 科技V力@GPU升级亮眼,新神U有点难,麒麟820芯片详细参数曝光
- 『兼容机之家小牛』笔记本CPU性能超台式机CPU,AMD果然惊喜多多!,不可思议
- 「IT之家」5G芯片:强劲8核CPU加持,性能提升27%,荣耀30S首发搭载麒麟820
- 「ITheat热点科技」新 CPU 爆料:Tiger Lake 将有 45W 标压移动版,Intel