新闻中心

EEPW首页 > 智能计算 > 设计应用 > DeepMind的TF Hub demo诠释「史上最强 GAN 图像生成器」

DeepMind的TF Hub demo诠释「史上最强 GAN 图像生成器」

作者:时间:2018-11-21来源:网络收藏

  BigGAN 一经提出即引起了大量关注,被称为「史上最强 GAN 」。今日, 放出了 BigGAN 的拿来即用 TF Hub demo,可以在 Colab 上运行图像生成和图像插值任务。

本文引用地址:http://www.amcfsurvey.com/article/201811/394648.htm

  TF Hub demo 地址:https://tfhub.dev/s?q=biggan

  Colab 地址:https://colab.research.google.com/github/tensorflow/hub/blob/master/examples/colab/biggan_generation_with_tf_hub.ipynb#scrollTo=Cd1dhL4Ykbm7

  ICLR 2019 大会将在明年 5 月 6 日于美国举行,9 月 27 日论文提交截止后很多论文引起了大家的关注,其中就有一篇 GAN 生成图像的论文。该研究生成图像的目标和背景都高度逼真、边界自然,并且图像插值每一帧都相当真实,简直称得上「创造物种的 GAN」。该论文还引起了 Oriol Vinyals、Ian Goodfellow 的关注。上周,ICLR 2019 的论文评审结果出炉,评审们已经在论文的 openreview 页面公布了他们的评论和分数。这篇 BigGAN 论文获得了 8、7、10 的评分,三位评审人员对该论文给出了很高的评价,参见:https://openreview.net/forum?id=B1xsqj09Fm。

  BigGAN 简介

  该论文出自 ,提出了一种新型 GAN 模型 BigGAN,该模型因其出色性能被称为「史上最强 GAN 」。该研究的创新点是将正交正则化的思想引入 GAN,通过对输入先验分布 z 的适时截断大大提升了 GAN 的生成性能,在 ImageNet 数据集下 Inception Score 竟然比当前最好 GAN 模型 SAGAN 提高了 100 多分(接近 2 倍)!

  该研究展示了 GAN 可以从训练规模中显著获益,并且能在参数数量很大和八倍批大小于之前最佳结果的条件下,仍然能以 2 倍到 4 倍的速度进行训练。作者引入了两种简单的生成架构变化,提高了可扩展性,并修改了正则化方案以提升条件化(conditioning),这可论证地提升了性能。作为修改方法的副作用(side effect),该模型变得服从「截断技巧」,这是一种简单的采样技术,允许对样本多样性和保真度进行精细控制。此外,该研究发现大规模 GAN 带来的不稳定性,并对其进行经验的描述。从这种分析中获得的洞察表明,将一种新型的和已有的技术结合可以减少这种不稳定性,但要实现完全的训练稳定性必须以显著降低性能为代价。

  由 BigGAN 生成的类条件样本。

  (a)增加截断的效应。从左到右,阈值=2, 1.5, 1, 0.5, 0.04。(b)应用截断和性能差的条件生成模型的饱和度伪影。

  由 BigGAN 在 512x512 分辨率下生成的其它样本。

  BigGAN 生成网络结构。

  现在 终于放出了 BigGAN 的 TF Hub demo,让我们来一探究竟。

  教你怎么用 Colab Demo

  这个 Colab Demo 的使用非常简单,直接用 Chrome 浏览器打开 Colab 地址,登陆你的谷歌账号,就可以开始耍了。

  刚打开 Colab 时,我们可以看到代码总体上分成四大块,分别是 BigGAN Demo、Setup、Explore BigGAN samples of a particular category、Interpolate between BigGAN samples。前面两块给出了大致的使用说明,以及具体实现(从 TF Hub 加载预训练模型、定义函数、创建会话和初始化变量等),之后两块才是重点,提供了特定类别的图像样本生成,以及指定两个类别的图像插值两个任务演示。只需要点击几个按钮,我们就能轻松启动运行和修改参数,完全不需要修改代码。



  这个 Colab 的环境配置如下,打开「修改」-「笔记本设置」就可以看到。该 Colab 在 Python 2 环境和 GPU 上运行,这个不用修改,也不能修改,会报错。

  那么要怎么开始呢?很简单,直接打开「代码执行程序」-「全部运行」,就可以了。该 GPU 能提供 11G 左右的内存,运行过程中经常会出现内存不足的情况,如果没有报错,直接忽略就行。如果报错了,就打开「代码执行程序」-「重置所有代码执行程序」,重新开始吧。

  在执行过程中,我们不一定需要同时执行生成和插值两个任务。为此,我们可以选中 Explore BigGAN samples of a particular category 这个单元格,然后打开「代码执行程序」-「运行当前单元格之前的所有单元格」,然后再分别执行之后的其中一个单元格,这样也能避免内存不足的问题。

  在大部分情况下,内存不足并没有导致报错。在启动一个任务后,大概等待 10 秒左右的时间,我们就可以看到生成和插值的结果。


上一页 1 2 下一页

评论


技术专区

关闭