# 前言 **生成对抗网络**( **GAN** )具有建立下一代模型的潜力,因为它们可以模拟任何数据分布。 由于它是**机器学习**( **ML** )增长最快的领域之一,因此正在该领域进行重大研究和开发工作。 当您在 GAN 域中构建八个端到端项目时,本书将测试训练神经网络的无监督技术。 *生成对抗网络项目*首先介绍了用于构建高效项目的概念,工具和库。 您还将在本书的不同项目中使用各种数据集。 在每一章中,复杂性和操作的水平都会提高,从而帮助您掌握 GAN 域。 您将介绍 3D-GAN,DCGAN,StackGAN 和 CycleGAN 等流行的方法,并且您将通过它们的实际实现来理解生成模型的体系结构和功能。 到本书结尾,您将准备在工作中或项目中建立,训练和优化自己的端到端 GAN 模型。 # 这本书是给谁的 如果您是数据科学家,ML 开发人员,深度学习从业人员或 AI 爱好者,并且正在寻找项目指南以测试您在构建现实 GAN 模型中的知识和专长,那么该书适合您。 # 本书涵盖的内容 [第 1 章](../Text/1.html)和*生成对抗网络* 的介绍始于 GAN 的概念。 读者将学习什么是判别器,什么是生成器以及什么是博弈论。 接下来的几个主题将涵盖生成器的结构,鉴别器的结构,生成器和鉴别器的目标函数,GAN 的训练算法,Kullback-Leibler 和 Jensen-Shannon 发散,GAN 的评估矩阵,GAN 的不同问题, GAN 中梯度消失和爆炸,纳什均衡,批量归一化和正则化的问题。 [第 2 章](../Text/2.html)和 *3D-GAN –使用 GAN 生成形状* 首先简要介绍 3D-GAN 和各种架构细节。 在本章中,我们将训练 3D-GAN 生成真实世界的 3D 形状。 我们编写代码来收集 3D Shapenet 数据集,对其进行清理并使其经过培训。 然后,我们将使用 Keras 深度学习库为 3D-GAN 编写代码。 [第 3 章](../Text/3.html)和*使用条件 GAN 进行人脸老化* ,向读者介绍了条件生成对抗网络(cGAN)和 Age-cGAN。 我们将学习数据准备中的不同步骤,例如下载,清理和格式化数据。 我们将使用 IMDb Wiki 图像数据集。 我们将使用 Keras 框架为 Age-cGAN 编写代码。 接下来,我们将在 IMDb Wiki 图像数据集上训练网络。 最后,我们将使用年龄作为条件参数的训练模型来生成图像,而训练后的模型将针对不同年龄的人的脸部生成图像。 [第 4 章](../Text/4.html)和*使用 DCGAN 生成动漫角色* 从 DCGAN 的介绍开始。 我们将学习数据准备中的不同步骤,例如收集动漫角色数据集,清理数据集并准备进行训练。 我们将在 Jupyter Notebook 中介绍 DCGAN 的 Keras 实现。 接下来,我们将学习训练 DCGAN 的不同方法,并为其选择不同的超参数。 最后,我们将使用训练有素的模型生成动漫角色。 另外,我们将讨论 DCGAN 的实际应用。 [第 5 章](../Text/5.html)和*使用 SRGAN 生成逼真的图像* 解释了如何训练 SRGAN 生成逼真的图像。 训练过程的第一步是收集数据集,然后清理它并格式化以进行训练。 读者将学习从何处收集数据集,如何清理数据集以及如何将其转换为可用于培训的格式。 [第 6 章](../Text/6.html), *StackGAN –文本到逼真的图像合成* ,本章将首先介绍 StackGAN。 数据收集和数据准备是重要的步骤,我们将学习收集数据集,清理数据集并格式化以进行培训的过程。 我们将在 Jupyter Notebook 内的 Keras 中为 StackGAN 编写代码。 接下来,我们将在 CUB 数据集上训练网络。 最后,在完成模型训练后,我们将从文本描述中生成逼真的图像。 我们将讨论 StackGAN 的不同行业应用以及如何在生产中部署它们。 [第 7 章](../Text/7.html), *CycleGAN –将绘画变成照片* ,介绍了如何训练 CycleGAN 以 将画作变成照片。 我们将首先介绍 CycleGAN,并研究它们的不同应用。 我们将介绍不同的数据收集,数据清理和数据格式化技术。 接下来,我们将编写 CycleGAN 的 Keras 实现,并在 Jupyter Notebook 中获得有关代码的详细说明。 我们将在准备好的数据集上训练 CycleGAN。 我们将测试我们训练有素的模型,以将绘画转换为照片。 最后,我们看一下 CycleGAN 的实际应用。 [第 8 章](../Text/8.html),*条件 GAN –使用条件对抗网络* 进行图像到图像的翻译,介绍了如何训练条件 GAN 进行图像到图像的翻译。 我们将首先介绍条件 GAN 和不同的数据准备技术,例如数据收集,数据清理和数据格式化。 接下来,我们将在 Jupyter Notebook 的 Keras 中编写条件 GAN 的代码。 接下来,我们学习如何在已经准备好的数据集上训练条件 GAN。 我们将探索不同的超参数进行训练。 最后,我们将测试条件 GAN,并讨论实际应用中图像到图像转换的不同用例。 [第 9 章](../Text/9.html),*预测 GAN 的未来*,是最后一章。 在介绍了 GAN 的基础知识并完成了六个项目之后,本章将使读者了解 GAN 的未来。 在这里,我们将研究在过去的 3-4 年中,GAN 的采用取得了惊人的成就,以及该行业对它的接受程度。 我还将讨论我对 GAN 未来的个人看法。 # 充分利用这本书 熟悉深度学习和 Keras,并且需要一些先验知识 TensorFlow。 使用 Python 3 进行编码的经验会很有用。 # 下载示例代码文件 您可以从 [www.packt.com](http://www.packt.com) 的帐户中下载本书的示例代码文件。 如果您在其他地方购买了此书,则可以访问 [www.packt.com/support](http://www.packt.com/support) 并注册以将文件直接通过电子邮件发送给您。 您可以按照以下步骤下载代码文件: 1. 登录或注册 [www.packt.com](http://www.packt.com) 。 2. 选择支持标签。 3. 单击代码下载&勘误表。 4. 在搜索框中输入书籍的名称,然后按照屏幕上的说明进行操作。 下载文件后,请确保使用以下最新版本解压缩或解压缩文件夹: * Windows 的 WinRAR / 7-Zip * Mac 版 Zipeg / iZip / UnRarX * 适用于 Linux 的 7-Zip / PeaZip 本书的代码包也托管在 GitHub 的 [https://github.com/PacktPublishing/Generative-Adversarial-Networks-Projects](https://github.com/PacktPublishing/Generative-Adversarial-Networks-Projects) 。 如果代码有更新,它将在现有的 GitHub 存储库中进行更新。 在 **[https://github.com/PacktPublishing/](https://github.com/PacktPublishing/) 中,我们还提供了丰富的图书和视频目录中的其他代码包。** 。 去看一下! # 使用约定 本书中使用了许多文本约定。 `CodeInText`:表示文本中的词,数据库表名称,文件夹名称,文件名,文件扩展名,路径名,伪 URL,用户输入和 Twitter 句柄。 这里是一个示例:“ 使用 `scipy` 中的 `loadmat()` 函数来检索 `voxels`。” 代码块设置如下: ```py import scipy.io as io voxels = io.loadmat("path to .mat file")['instance'] ``` 任何命令行输入或输出的编写方式如下: ```py pip install -r requirements.txt ``` **粗体**:表示您在屏幕上看到的新术语,重要单词或顺序。 Warnings or important notes appear like this.Tips and tricks appear like this. # 保持联系 始终欢迎读者的反馈。 **一般反馈**:如果您对本书的任何方面都有疑问,在邮件主题中提及书名,并通过`customercare@packtpub.com`向我们发送电子邮件。 **勘误表**:尽管我们已尽一切努力确保内容的准确性,但还是会发生错误。 如果您在这本书中发现错误,请向我们报告,我们将不胜感激。 请访问 [www.packt.com/submit-errata](http://www.packt.com/submit-errata) ,选择您的书籍,点击勘误提交表格链接,然后输入详细信息。 **盗版**:如果您在 Internet 上以任何形式遇到我们的作品的任何非法副本,请向我们提供位置地址或网站名称,我们将不胜感激。 请通过`copyright@packt.com`与我们联系,并提供材料链接。 **如果您有兴趣成为作家**:如果您有一个专业的话题并且对写作或撰写书籍感兴趣,请访问 [authors.packtpub.com](http://authors.packtpub.com/) ]。 # 评论 请留下评论。 阅读和使用本书后,为什么不在您购买本书的网站上留下评论? 然后,潜在的读者可以查看并使用您的公正意见来做出购买决定,Packt 的我们可以了解您对我们产品的看法,我们的作者可以在书中看到您的反馈。 谢谢! 有关 Packt 的更多信息,请访问 [packt.com](http://www.packt.com/) 。