TF - GAN入门:TensorFlow 2.0 的轻量级 GAN 库

2019 年 10 月 8 日 新智元



  新智元报道  

来源:TensorFlow  
整理编辑:元子
【新智元导读】LSTM的发明人、著名深度学习专家Jürgen Schmidhuber详细论述了近30年前,即1990~1991年之间他和团队进行的许多研究。他们的早期思想为当今的许多深度学习前沿研究奠定了基础,包括 LSTM、元学习、注意力机制和强化学习等。>>> 人工智能改变中国,我们还要跨越这三座大山 | 献礼 70 周年


用于机器学习的软件库往往对研究成功至关重要,因此软件库的更新速率必须能够跟上机器学习研究发展的脚步。


2017 年,谷歌推出了用于训练和评估 生成对抗网络 (Generative Adversarial Networks, GAN) 的轻量级库 TF-GAN。自那时起,TF-GAN 便在大量极具影响力的论文和项目中被广泛应用。


具影响力的论文:

https://github.com/tensorflow/gan#who-uses-tf-gan


今天,各个推出 TF-GAN 的新版本。此版本拥有诸多升级和新功能:


Cloud TPU 支持:您现在可以使用 TF-GAN 在 Google 的 Cloud TPU 上训练 GAN。张量处理单元 (TPU) 是 Google 定制开发的 专用集成电路 (application-specific integrated circuits, ASIC),用于加速机器学习工作负载。以往在其他硬件平台上需花费数周时间训练的模型,在 TPU 上仅需数小时即可完成。我们将在下文中详细介绍一个开源示例,该示例演示如何在 TPU 上通过 ImageNet 训练图像生成 GAN。此外,您还可以在 Colab 的 TPU 教程中免费运行 TF-GAN。


GAN 自学课程:免费的学习资源将有助于机器学习的发展与传播。为此,我们以 Google 内部使用多年的 GAN 课程为基础,发布了一套 GAN 自学课程。您可以通过观看视频、阅读文字介绍、跟随练习,并运行示例代码,这些都将在 机器学习 精通之路上助您一臂之力。


GAN 标准指标:有时学术论文会“发明一个指标”,然后用其来衡量结果。为方便比较论文结果,TF-GAN 简化了指标的使用。有时除了能够纠正阻碍标准开源实现数值的精度和统计偏差外,TF-GAN 指标在计算上也非常高效,并且其在语法上易于使用。


示例:GAN 研究的发展速度异常迅猛。虽然 TF-GAN 并不打算继续保留所有 GAN 模型上的工作示例,但我们还是添加了一些相关的内容,其中包括在 TPU 上训练的Self-Attention GAN。


PyPi 包:现在您可使用“pip install tensorflow-gan”安装 TF-GAN,并将其与“import tensorflow_gan as tfgan”搭配使用。简单易上手,对不对~


Colaboratory 教程:我们已完成改进,教程现在可以与 Google 的免费 GPU 和 TPU 搭配使用。


GitHub 代码库:TF-GAN 现在拥有自己的代码库。这样一来,系统可以更轻松地跟踪更改,并为开源贡献者提供相应的权限。


TensorFlow 2.0:TF-GAN 目前兼容 TF 2.0,但我们仍在不断完善,以使其兼容 Keras。您可以在 tensorflow.org/beta 中发现一些不使用 TF-GAN 的 GAN Keras 示例,包括 DCGAN、Pix2Pix 和 CycleGAN。


使用 TF-GAN 的项目


Cloud TPU 上的 Self-Attention GAN


Self-Attention GAN 使用 Inception Score 和 Frechet Inception Distance 两大指标,已在图像生成方面取得目前最好的成果(SOTA)。我们将此模型的两个版本开源,让其中一个版本在 Cloud TPU 上以开源方式运行。TPU 与 GPU 的版本性能相同,但训练速度提高了 12 倍。


Self-Attention GAN  链接:

https://arxiv.org/abs/1805.08318


Inception Score 链接:

https://github.com/tensorflow/gan/blob/master/tensorflow_gan/python/eval/classifier_metrics.py#L707


Frechet Inception Distance 链接:

https://github.com/tensorflow/gan/blob/master/tensorflow_gan/python/eval/classifier_metrics.py#L1140


左图:真实图像中图:生成图像 (GPU) 右图:生成图像 (TPU)

左图:将  Frechet Inception Distance 和 Inception Score 用作训练步骤的函数。右图:将  Frechet Inception Distance 和 Inception Score 用作训练时间的函数

图像扩展


业内对图像修复(即以周围环境为基础填充图像的缺失部分)的研究已经非常充分,但对与之相关的图像扩展领域却研究甚少。图像扩展要求算法以合理且一致的方式将图像扩展到其边界之外。这在虚拟现实环境中非常有用,此类环境经常需要利用图像扩展模拟不同的相机特性。此外,全景拼接等计算摄影应用也需要借助此技术将不同的图像平滑地缝合到一起。Google 研究工程师最近开发了一个新算法,并使用 TPU 对其加以训练。与以往方法相比,该算法在扩展图像时降低了失真现象的出现。


新算法 链接:

http://arxiv.org/abs/1908.07007



谷歌用无人机拍摄了美丽的 Charles River,并使用 Uncrop 技术(2019 ICCV 中将提到)来扩大视野。



图像扩展的部分示例:右列为采用 TF-GAN 的新方法。与 DeepFill 和 PConv 这两种最先进的图像修复方法相比,此方法生成的对象形状更优(第一/第二行),纹理质量也很出色(第二/第三行)。输入图像已扩展至遮挡区域(左列灰色部分所示)。

BigGAN


DeepMind 研究团队结合架构更改、更大的网络和更大的批处理以及 Google TPU,改进了论文中最先进的图像生成技术。该团队利用 TF-GAN 的评估模块对指标进行标准化处理,并且能够在任何图像尺寸上展现其质量的提升。如需使用经过预训练的 BigGAN 生成器,请访问 TF Hub。


论文 链接:

https://arxiv.org/abs/1809.11096


TF Hub 链接:

https://tfhub.dev/s?publisher=deepmind&q=biggan


类条件示例出自论文《针对高保真自然图像合成的大规模 GAN 训练》 (Large Scale GAN Training for High Fidelity Natural Image Synthesis)

GANSynth


研究人员使用 TF-GAN 创建了可生成音符的 GAN 神经网络 GANSynth。与之前的研究相比,这些音符更具现实意义。借助 GAN 的潜在空间 (latent space),GANSynth 可以在生成相同音符的同时,在其他属性(例如乐器)间平顺地插入音符。


GANSynth 链接:

https://magenta.tensorflow.org/gansynth


Samples:

音色一致 | 插入音符

巴赫的《G大调第一号无伴奏大提琴组曲》(Prelude Suite №1 in G major)  MIDI(来自 GANSynth)。

真实数据 | GANSynth | WaveNet | WaveGAN 


Samples 链接:

https://medium.com/tensorflow/introducing-tf-gan-a-lightweight-gan-library-for-tensorflow-2-0-36d767e1abae


使用 GAN 将显微镜图像归一化


对实验室培养的细胞开展科学实验通常需耗时数周。在如此长的时间内,实验室环境可能会发生意外变化。这将会导致每周基于显微镜的细胞图像变化巨大,即使观察的细胞相同,也会对日后的分析造成不利影响。Google 科学家使用 TF-GAN 创建了“均衡器 (Equalizer)”,旨在减少细胞图像的多余变化,同时保留相关属性。



如图所示,应用于某个细胞切片图像的均衡器输出9 周图像演变实验的每周图像。一些切片的属性有所变化(例如平均背景色),但“图像中的细胞数量”等属性未发生变化。


致谢


感谢 Joel Shor 和 Yoel Drori、Aaron Sarna(Google Research)、David Westbrook 和 Paige Bailey(Google)。


如果想详细了解 TF - GAN 的相关内容,请参阅以下文档。这些文档深入探讨了这篇文章中提及的许多主题:


  • Cloud TPU
    (https://cloud.google.com/tpu/docs/tpus)
  • 开源示例
    (https://github.com/tensorflow/gan/tree/master/tensorflow_gan/examples/self_attention_estimator)
  •  Colab 的 TPU 教程
    (https://colab.research.google.com/github/tensorflow/gan/blob/master/tensorflow_gan/examples/colab_notebooks/tfgan_on_tpus.ipynb)
  • GAN 自学课程 
    (https://developers.google.com/machine-learning/gan/)
  • GAN 标准指标 
    (https://github.com/tensorflow/gan/tree/master/tensorflow_gan/python/eval)
  • 示例 链接
    (https://github.com/tensorflow/gan/tree/master/tensorflow_gan/examples)
  • Colab 教程
    (https://github.com/tensorflow/gan/blob/master/tensorflow_gan/examples/colab_notebooks/tfgan_tutorial.ipynb)
  • PyPi 包
    (https://pypi.org/project/tensorflow-gan/)
  • GitHub 代码库(https://github.com/tensorflow/gan/blob/master/tensorflow_gan/examples/colab_notebooks/tfgan_tutorial.ipynb)
  • DCGAN
    (https://www.tensorflow.org/beta/tutorials/generative/dcgan)
  • Pix2Pix
    (https://www.tensorflow.org/beta/tutorials/generative/pix2pix)
  • CycleGAN
    (https://www.tensorflow.org/beta/tutorials/generative/cyclegan)

登录查看更多
5

相关内容

GAN:生成性对抗网,深度学习模型的一种,在神经网络模型中引入竞争机制,非常流行。
【Google】平滑对抗训练,Smooth Adversarial Training
专知会员服务
46+阅读 · 2020年7月4日
一份简短《图神经网络GNN》笔记,入门小册
专知会员服务
224+阅读 · 2020年4月11日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
68+阅读 · 2020年1月17日
【干货】谷歌Joshua Gordon 《TensorFlow 2.0讲解》,63页PPT
专知会员服务
24+阅读 · 2019年11月2日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
160+阅读 · 2019年10月28日
生成式对抗网络GAN异常检测
专知会员服务
114+阅读 · 2019年10月13日
社区分享 | Spark 玩转 TensorFlow 2.0
TensorFlow
15+阅读 · 2020年3月18日
TensorFlow 2.0 中文视频教程来啦
AINLP
11+阅读 · 2019年8月24日
TF Boys必看!一文搞懂TensorFlow 2.0新架构!
引力空间站
18+阅读 · 2019年1月16日
Tensorflow Eager Execution入门指南
专知
6+阅读 · 2018年4月16日
TensorFlow神经网络教程
Python程序员
4+阅读 · 2017年12月4日
在TensorFlow中对比两大生成模型:VAE与GAN
机器之心
12+阅读 · 2017年10月23日
GAN猫的脸
机械鸡
11+阅读 · 2017年7月8日
Arxiv
4+阅读 · 2018年9月25日
Arxiv
8+阅读 · 2018年5月21日
Arxiv
4+阅读 · 2018年5月21日
Arxiv
5+阅读 · 2018年5月1日
VIP会员
相关VIP内容
【Google】平滑对抗训练,Smooth Adversarial Training
专知会员服务
46+阅读 · 2020年7月4日
一份简短《图神经网络GNN》笔记,入门小册
专知会员服务
224+阅读 · 2020年4月11日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
68+阅读 · 2020年1月17日
【干货】谷歌Joshua Gordon 《TensorFlow 2.0讲解》,63页PPT
专知会员服务
24+阅读 · 2019年11月2日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
160+阅读 · 2019年10月28日
生成式对抗网络GAN异常检测
专知会员服务
114+阅读 · 2019年10月13日
相关资讯
社区分享 | Spark 玩转 TensorFlow 2.0
TensorFlow
15+阅读 · 2020年3月18日
TensorFlow 2.0 中文视频教程来啦
AINLP
11+阅读 · 2019年8月24日
TF Boys必看!一文搞懂TensorFlow 2.0新架构!
引力空间站
18+阅读 · 2019年1月16日
Tensorflow Eager Execution入门指南
专知
6+阅读 · 2018年4月16日
TensorFlow神经网络教程
Python程序员
4+阅读 · 2017年12月4日
在TensorFlow中对比两大生成模型:VAE与GAN
机器之心
12+阅读 · 2017年10月23日
GAN猫的脸
机械鸡
11+阅读 · 2017年7月8日
Top
微信扫码咨询专知VIP会员