README.md 2.4 KB
Newer Older
J
james plur 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
# GAN 生成对抗网络演示



## 简介 Introduction

生成对抗网络(GAN)任务的本质是学习一个数据分布。它包含生成网络和判别网络两部分。其中生成网络可将一个随机分布映射为任意分布,判别网络则决定了生成分布的“方向”。二者相互博弈的过程在理论上等效于分布的拟合过程。



本文包括了两种生成模型

- DCGAN:一种基于卷积/反卷积运算的生成对抗网络,广泛应用于图像生成领域中

- Pix2Pix:一种基于DCGAN的风格迁移网络,其基本思想是在保证基本图片纹理一致的情况下,通过GAN网络实现一对一的风格转化



## DCGAN

可通过脚本直接启动DCGAN的训练:

```bash
python dcgan.py
```

脚本参数:

- `-lr` 学习率,默认为1e-4
-  `-e` 设置训练epoch次数,默认为10
- `-c` 与tensorflow进行对齐测试
- `-b` 设置batchsize
- `-g` 设置gpu数量
- `-m` 多机训练


其他需要注意的是:

- 训练将会默认使用minst数据集,如果第一次使用脚本,将会默认将数据集下载到`.data/`目录
- 训练结束后,将会默认保存模型到`.checkpoint/`目录下
- 模型的结构和参数参考了tensorflow的[官方示例](https://www.tensorflow.org/tutorials/generative/dcgan),可以通过-c参数来跟tensorflow的实现进行对齐测试
J
james plur 已提交
42
- 模型会定期将生成的图片存储到`.gout/`目录,并在训练结束后生成图片演化的动图,生成动图的过程会依赖python包`imageio`
J
james plur 已提交
43

J
JamiePlur 已提交
44
![dcgan demo](https://github.com/Oneflow-Inc/OneFlow-Benchmark/blob/dev_gan/Generative/pic/1.png)
J
james plur 已提交
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

# Pix2Pix



可通过脚本直接启动Pix2Pix的训练:

```bash
python pix2pix.py
```

脚本参数:

- `-lr` 学习率,默认为1e-4
-  `-e` 设置训练epoch次数,默认为10
- `-c` 进行对齐测试
- `-b` 设置batchsize
- `-g` 设置gpu数量
- `-m` 多机训练



其他需要注意的是:

- 训练将会默认使用CMP Facade数据集,如果第一次使用脚本,将会默认将数据集下载到`.data/`目录
- 训练结束后,将会默认保存模型到`.checkpoint/`目录下
- 模型的结构和参数参考了tensorflow的[官方示例](https://www.tensorflow.org/tutorials/generative/pix2pix),可以通过-c参数来跟tensorflow的实现进行对齐测试
- 模型会在训练中定期将生成的图片存储到`.gout/`目录

J
JamiePlur 已提交
74
![pix2pix demo](https://github.com/Oneflow-Inc/OneFlow-Benchmark/blob/dev_gan/Generative/pic/2.png)