图书目录

第1章  生成对抗网络介绍 1

1.1   生成对抗网络与PyTorch简介 2

1.1.1  生成对抗网络介绍 2

1.1.2  PyTorch介绍 5

1.2   判别模型与生成模型 6

1.3   GAN架构介绍 7

1.3.1  判别器 7

1.3.2  生成器 9

1.3.3  损失函数 11

1.3.4  GAN完整架构 13

1.4   常用数据集 15

1.4.1  MNIST数据集 15

1.4.2  Fashion-MNIST数据集 17

1.4.3  CIFAR-10数据集 18

1.4.4  CelebA数据集 21

1.4.5  Pix2Pix数据集 22

1.4.6  CycleGAN数据集 24

习题 27

第2章  简单全连接GAN 29

2.1   生成1001模式的GAN 30

2.1.1  1001模式GAN架构 30

2.1.2  数据源 30

2.1.3  判别器网络实现 31

2.1.4  生成器网络实现 34

2.1.5  训练GAN 35

2.2   生成MNIST数据的GAN 39

2.2.1  数据集 39

2.2.2  MNIST判别器 40

2.2.3  MNIST生成器 40

2.2.4  训练GAN 41

2.2.5  模式崩溃初探 46

习题 47

第3章  深度卷积GAN 49

3.1   DCGAN简介 50

3.1.1  DCGAN网络结构 50

3.1.2  卷积 52

3.1.3  反卷积 60

3.1.4  批规范化 61

3.2   DCGAN实现 63

3.2.1  加载Celeb-A数据集 63

3.2.2  生成器网络实现 65

3.2.3  判别器网络实现 66

3.2.4  DCGAN训练 67

3.2.5  运行结果展示 70

习题 74

第4章  Wasserstein GAN 75

4.1   WGAN介绍 76

4.2   WGAN基础 78

4.2.1  原始GAN的问题 78

4.2.2  Wasserstein损失 79

4.2.3  1-Lipschitz连续性限制 81

4.2.4  两种1-L连续性限制 81

4.2.5  WGAN和WGAN-GP算法 84

4.3   WGAN实现 85

4.3.1  判别器实现 86

4.3.2  生成器实现 87

4.3.3  WGAN训练 88

4.3.4  WGAN结果 90

4.4   WGAN-GP实现 91

4.4.1  判别器实现 91

4.4.2  生成器实现 92

4.4.3  损失函数实现 93

4.4.4  WGAN-GP训练 94

4.4.5  WGAN-GP结果 96

习题 97

第5章  条件GAN 99

5.1   条件GAN介绍 100

5.1.1  条件生成 100

5.1.2  可控生成 102

5.1.3  Z空间的向量运算 104

5.1.4  类别梯度上升 106

5.1.5  解耦合 107

5.2   cGAN实现 108

5.2.1  判别器网络 108

5.2.2  生成器网络 109

5.2.3  cGAN训练 111

5.2.4  cGAN结果 114

5.3   可控生成实现 115

5.3.1  定义超参数 115

5.3.2  辅助函数 116

5.3.3  判别器网络 117

5.3.4  生成器网络 118

5.3.5  网络训练 120

5.3.6  可控生成结果 121

习题 123

第6章  StyleGAN 125

6.1   StyleGAN介绍 126

6.2   StyleGAN架构 128

6.2.1  StyleGAN生成器结构 128

6.2.2  渐进式增长 129

6.2.3  噪声映射网络 131

6.2.4  样式模块AdaIN 134

6.2.5  样式混合和随机噪声 136

6.3   StyleGAN实现 139

6.3.1  加载数据集 139

6.3.2  网络层实现 140

6.3.3  判别器 144

6.3.4  生成器 146

6.3.5  模型训练 149

6.3.6  运行结果展示 152

习题 155

第7章  Pix2Pix 157

7.1   匹配图像转换 158

7.2   Pix2Pix基本原理 159

7.2.1  Pix2Pix的概念 160

7.2.2  PatchGAN 162

7.2.3  U-Net 163

7.2.4  损失函数 165

7.2.5  Pix2Pix完整框架 167

7.3   Pix2Pix编程实现 169

7.3.1  加载数据集 169

7.3.2  判别器 171

7.3.3  生成器 173

7.3.4  Pix2Pix训练 179

7.3.5  运行结果展示 181

习题 184

第8章  CycleGAN 185

8.1   非匹配图像转换 186

8.2   CycleGAN基本原理 188

8.2.1  CycleGAN面临的问题 188

8.2.2  两个GAN 189

8.2.3  CycleGAN损失函数 191

8.2.4  CycleGAN完整框架 195

8.3   CycleGAN编程实现 197

8.3.1  加载数据集 197

8.3.2  判别器 199

8.3.3  生成器 201

8.3.4  CycleGAN训练 209

8.3.5  运行结果展示 213

习题 214

参考文献 215