# 零、前言 **人工智能**(**AI**)继续流行并破坏了广泛的领域,但这是一个复杂而艰巨的话题。 在本书中,您将掌握构建深度学习应用的方法,以及如何使用 PyTorch 进行研究和解决实际问题。 本书从张量处理的基础开始,采用基于秘籍的方法,然后介绍了**卷积神经网络**(**CNN**)和 PyTorch 中的**循环神经网络**(**RNN**)。 熟悉这些基本网络后,您将使用深度学习来构建医学图像分类器。 接下来,您将使用 TensorBoard 进行可视化。 您还将深入研究**生成对抗网络**(**GAN**)和**深度强化学习**(**DRL**),然后最终将模型大规模部署到生产中。 您将发现针对机器学习,深度学习和强化学习中常见问题的解决方案。 您将学习如何在计算机视觉,**自然语言处理**(**NLP**)中实现 AI 任务并解决实际问题。 其他实际领域。 到本书结尾,您将拥有使用 PyTorch 框架的 AI 中最重要且应用最广泛的技术的基础。 # 这本书是给谁的 这本 PyTorch 书籍适用于刚刚起步的 AI 工程师以及正在寻找指南以帮助他们有效解决 AI 问题的机器学习工程师,数据科学家和深度学习爱好者。 期望具备 Python 编程语言的工作知识和对机器学习的基本了解。 # 本书涵盖的内容 第 1 章,“使用 PyTorch 处理张量”介绍 PyTorch 及其安装,然后继续使用 PyTorch 处理张量。 第 2 章,“处理神经网络”全面介绍了开始和训练全连接神经网络的所有要求,从而对基本神经网络的所有组件进行了详尽的解释。 :层,前馈网络,反向传播,损失函数,梯度,权重更新以及使用 CPU/GPU。 第 3 章,“用于计算机视觉的卷积神经网络”首先介绍了用于更高级任务的一类神经网络,即卷积神经网络。 在这里,我们将与 PyTorch 一起探索 TorchVision,训练 CNN 模型,并使用 TensorBoard 可视化其进度。 我们还将介绍与卷积网络构建块相关的各种任务。 卷积神经网络(CNN 或 ConvNet)是一类 DNN,最常用于分析图像。 第 4 章,“用于 NLP 的循环神经网络”探索循环神经网络,并研究 RNN 中的各种修改以及最佳实践。 第 5 章,“迁移学习和 TensorBoard”显示了如何使用经过训练的 ResNet-50 模型训练图像分类器以区分正常和肺炎的胸部 X 射线。 我们将替换分类器,并使用两个输出单元来代表正常和肺炎类别。 第 6 章,“探索生成对抗网络”探索生成对抗网络,以及如何实现 PyTorch 的组件并训练端到端网络。 我们将探索 DCGAN,并通过渐进式 GAN 网络进一步改善 DCGAN 的局限性。 第 7 章,“深度强化学习”可帮助您通过各种秘籍来了解深度 RL。 本章是一系列秘籍和任务,您将在其中利用所需的能力和架构来转变为深度强化学习专家。 第 8 章,“PyTorch 中的生产 AI 模型”,着眼于以两种方式生产 PyTorch 应用。 首先,生成已经训练过的模型,其次,对大型数据集进行分布式训练。 最后,我们将研究各种框架之间的可移植性。 # 充分利用这本书 需要具备 Python 的工作知识。 # 下载示例代码文件 您可以从 [www.packt.com](http://www.packt.com) 的帐户中下载本书的示例代码文件。 如果您在其他地方购买了此书,则可以访问 [www.packtpub.com/support](https://www.packtpub.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/PyTorch-Artificial-Intelligence-Fundamentals) 上。 如果代码有更新,它将在现有的 GitHub 存储库中进行更新。 我们还从[这里](https://github.com/PacktPublishing/)提供了丰富的书籍和视频目录中的其他代码包。 去看一下! # 下载彩色图像 我们还提供了 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。 [您可以在此处下载](http://www.packtpub.com/sites/default/files/downloads/9781838557041_ColorImages.pdf)。 # 使用约定 本书中使用了许多文本约定。 `CodeInText`:指示文本,数据库表名称,文件夹名称,文件名,文件扩展名,路径名,虚拟 URL,用户输入和 Twitter 句柄中的代码字。 这是一个示例:“对于 Linux,我们将使用以下`pip`管理器。” 代码块设置如下: ```py a = np.ones((2, 3)) a ``` 当我们希望引起您对代码块特定部分的注意时,相关行或项目以粗体显示: ```py b.shape torch.Size([2, 3]) ``` 任何命令行输入或输出的编写方式如下: ```py pip3 install https://download.pytorch.org/whl/cu90/torch-1.1.0-cp36-cp36m-win_amd64.whl ``` **粗体**:表示新术语,重要单词或您在屏幕上看到的单词。 例如,菜单或对话框中的单词会出现在这样的文本中。 这是一个示例:“**标量**是单个独立值。” 警告或重要提示如下所示。 提示和技巧如下所示。 # 栏目 在本书中,您会发现几个经常出现的标题(“准备工作”,“操作步骤”,“工作原理”,“另见”。 要给出有关如何完成秘籍的明确说明,请按以下说明使用这些部分: # 准备 本节告诉您在秘籍中会有什么期望,并介绍如何设置秘籍所需的任何软件或任何初步设置。 # 操作步骤 本节包含遵循秘籍所需的步骤。 ## 工作原理 本节通常包括对上一节中发生的情况的详细说明。 # 更多 本节包含有关秘籍的其他信息,以使您对秘籍有更多的了解。 # 另见 本节提供了指向该秘籍其他有用信息的有用链接。