TensorFlow-GAN (TF-GAN)
TF-GAN 是一个轻量级库,用于训练和评估生成对抗网络(GANs)。
- 可以通过
pip install tensorflow-gan
使用pip
安装,并通过import tensorflow_gan as tfgan
使用 - 提供经过充分测试的示例
- 在 Colab 中提供 TF-GAN 的交互式介绍
TF-GAN 库的结构
TF-GAN 由几个独立存在的部分组成:
- 核心:训练 GAN 所需的主要基础设施。可以使用任意组合的 TF-GAN 库调用、自定义代码、原生 TF 代码和其他框架来设置训练
- 特征:常见的 GAN 操作和规范化技术,如实例规范化和条件设置
- 损失:损失和惩罚,如 Wasserstein 损失、梯度惩罚、互信息惩罚等
- 评估:标准 GAN 评估指标。使用
Inception Score
、Frechet Distance
或Kernel Distance
与预训练的 Inception 网络来评估无条件生成模型。也可以使用自己预训练的分类器获得更具体的性能数据,或使用其他方法评估条件生成模型 - 示例:如何使用 TF-GAN 的简单示例,以及更复杂的最先进示例
谁在使用 TF-GAN?
Google 内部的众多项目。以下是一些使用 TF-GAN 的已发表论文:
- 自注意力生成对抗网络
- 大规模 GAN 训练用于高保真自然图像合成
- GANSynth:对抗性神经音频合成
- Boundless:用于图像扩展的生成对抗网络
- NetGAN:通过随机游走生成图
- 判别器拒绝采样
- 用于私有、去中心化数据集的有效机器学习的生成模型
- 用于图像生成的语义金字塔
- GAN 介导的细胞图像批量均衡
Compare GAN 框架使用 TF-GAN,特别是评估指标。他们的论文使用 TF-GAN 确保一致且可比较的评估指标。其中一些论文包括:
- GANs 是平等创造的吗?大规模研究
- GAN 全景:损失、架构、正则化和规范化
- 通过精确度和召回率评估生成模型
- 使用更少标签的高保真图像生成
训练 GAN 模型
TF-GAN 中的训练通常包括以下步骤:
- 指定网络的输入
- 使用
GANModel
设置生成器和判别器 - 使用
GANLoss
指定损失 - 使用
GANTrainOps
创建训练操作 - 运行训练操作
在每个阶段,您可以使用 TF-GAN 的便利函数,也可以手动执行该步骤以进行精细控制。
有各种类型的 GAN 设置。例如,您可以训练生成器无条件地从学习到的分布中采样,或者您可以基于额外信息(如类别标签)进行条件设置。TF-GAN 兼容多种设置,我们在经过充分测试的示例目录中进行了演示。
维护者
- (文档)David Westbrook,westbrook@google.com
- Joel Shor,joelshor@google.com,github
- Aaron Sarna,sarna@google.com,github
- Yoel Drori,dyoel@google.com,github
作者
- Joel Shor,joelshor@google.com,github