內容大鋼
本書系統地講解了生成對抗網路(GAN)的基本原理以及PyTorch編程技術,內容較全面,可操作性強,將理論與實踐相結合。讀者通過理論學習和編程實踐操作,可了解並掌握生成對抗網路的基本原理和PyTorch編程技能,拉近理論與實踐的距離。
本書共分8章,主要內容包括生成對抗網路介紹、簡單全連接GAN、深度卷積GAN、Wasserstein GAN、條件GAN、StyleGAN、Pix2Pix、CycleGAN,涵蓋了豐富多彩的生成對抗網路的原理和示例。此外,本書源碼已全部在Python 3.10.9 + PyTorch 1.13.1+CUDA 11.6版本上調試成功。
本書適合生成對抗網路愛好者和PyTorch編程人員作為入門和提高的技術參考書,也適合用作電腦專業高年級本科生和研究生的教材或教學參考書。
目錄
第1章 生成對抗網路介紹
1.1 生成對抗網路與PyTorch簡介
1.1.1 生成對抗網路介紹
1.1.2 PyTorch介紹
1.2 判別模型與生成模型
1.3 GAN架構介紹
1.3.1 判別器
1.3.2 生成器
1.3.3 損失函數
1.3.4 GAN完整架構
1.4 常用數據集
1.4.1 MNIST數據集
1.4.2 Fashion-MNIST數據集
1.4.3 CIFAR-10數據集
1.4.4 CelebA數據集
1.4.5 Pix2Pix數據集
1.4.6 CycleGAN數據集
習題
第2章 簡單全連接GAN
2.1 生成1001模式的GAN
2.1.1 1001模式GAN架構
2.1.2 數據源
2.1.3 判別器網路實現
2.1.4 生成器網路實現
2.1.5 訓練GAN
2.2 生成MNIST數據的GAN
2.2.1 數據集
2.2.2 MNIST判別器
2.2.3 MNIST生成器
2.2.4 訓練GAN
2.2.5 模式崩潰初探
習題
第3章 深度卷積GAN
3.1 DCGAN簡介
3.1.1 DCGAN網路結構
3.1.2 卷積
3.1.3 反卷積
3.1.4 批規範化
3.2 DCGAN實現
3.2.1 載入Celeb-A數據集
3.2.2 生成器網路實現
3.2.3 判別器網路實現
3.2.4 DCGAN訓練
3.2.5 運行結果展示
習題
第4章 Wasserstein GAN
4.1 WGAN介紹
4.2 WGAN基礎
4.2.1 原始GAN的問題
4.2.2 Wasserstein損失
4.2.3 1-Lipschitz連續性限制
4.2.4 兩種1-L連續性限制
4.2.5 WGAN和WGAN-GP演算法
4.3 WGAN實現
4.3.1 判別器實現
4.3.2 生成器實現
4.3.3 WGAN訓練
4.3.4 WGAN結果
4.4 WGAN-GP實現
4.4.1 判別器實現
4.4.2 生成器實現
4.4.3 損失函數實現
4.4.4 WGAN-GP訓練
4.4.5 WGAN-GP結果
習題
第5章 條件GAN
5.1 條件GAN介紹
5.1.1 條件生成
5.1.2 可控生成
5.1.3 Z空間的向量運算
5.1.4 類別梯度上升
5.1.5 解耦合
5.2 cGAN實現
5.2.1 判別器網路
5.2.2 生成器網路
5.2.3 cGAN訓練
5.2.4 cGAN結果
5.3 可控生成實現
5.3.1 定義超參數
5.3.2 輔助函數
5.3.3 判別器網路
5.3.4 生成器網路
5.3.5 網路訓練
5.3.6 可控生成結果
習題
第6章 StyleGAN
6.1 StyleGAN介紹
6.2 StyleGAN架構
6.2.1 StyleGAN生成器結構
6.2.2 漸進式增長
6.2.3 雜訊映射網路
6.2.4 樣式模塊AdaIN
6.2.5 樣式混合和隨機雜訊
6.3 StyleGAN實現
6.3.1 載入數據集
6.3.2 網路層實現
6.3.3 判別器
6.3.4 生成器
6.3.5 模型訓練
6.3.6 運行結果展示
習題
第7章 Pix2Pix
7.1 匹配圖像轉換
7.2 Pix2Pix基本原理
7.2.1 Pix2Pix的概念
7.2.2 PatchGAN
7.2.3 U-Net
7.2.4 損失函數
7.2.5 Pix2Pix完整框架
7.3 Pix2Pix編程實現
7.3.1 載入數據集
7.3.2 判別器
7.3.3 生成器
7.3.4 Pix2Pix訓練
7.3.5 運行結果展示