猜你喜欢
深度学习框架PyTorch:入门与实践(第2版)

深度学习框架PyTorch:入门与实践(第2版)

书籍作者:王博 ISBN:9787121437519
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2583
创建日期:2023-04-26 发布日期:2023-04-26
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书从多维数组Tensor开始,循序渐进地介绍PyTorch各方面的基础知识,并结合深度学习中的经典应用,带领读者从零开始完成几个经典而有趣的实际项目,包括动漫头像生成、风格迁移、自动写诗以及目标检测。本书还介绍了PyTorch的几个高级扩展,包括向量化计算、分布式加速以及CUDA扩展。本书既适合深度学习的初学者及第一次接触PyTorch的研究人员阅读,也适合有一定PyTorch使用经验的用户阅读,帮助他们建立对PyTorch的基本认识,提高使用PyTorch框架解决实际问题的能力。

作者简介

王博:北京邮电大学模式识别实验室在读硕士研究生,主要研究方向为深度学习与计算机视觉。Python程序员,PyTorch推广者。作为助教为大一学生讲解《人工智能导论》实验课程,受到同学们的好评。


陈云:多伦多大学在读计算机博士生,现任waabi.ai研究员。曾在Uber ATG从事无人驾驶研究,获得CVPR2021最佳论文提名。

编辑推荐

本书从多维数组Tensor开始,循序渐进地介绍PyTorch各方面的基础知识,并结合深度学习中的经典应用,带领读者从零开始完成几个经典而有趣的实际项目,包括动漫头像生成、风格迁移、自动写诗以及目标检测。本书还介绍了PyTorch的几个高级扩展,包括向量化计算、分布式加速以及CUDA扩展。

前言

为什么写这本书
伴随着人工智能浪潮的兴起,越来越多的研究者开始从事深度学习的相关研究。在实际的学习过程中,除了对理论本身进行研究与思考,还需要将自己的改进与优化付诸行动,从而更好地验证自己的想法。笔者在自身的学习生活以及助教生涯中发现,许多同学空有新奇的想法,但是很难将其实现。因此,有必要结合目前深度学习中最流行
的框架 PyTorch 编写一本入门与实践指南。
本书第 1 版于 2018 年出版,当时主流的 PyTorch 版本为 0.3。随着 PyTorch 的不断更新迭代,许多函数接口已经被舍弃,同时新增了许多更加实用的功能接口。在本书第 1 版出版后,许多读者通过各路渠道提出了不少好的建议与意见,综合这些建议与意见,笔者对本书内容进行了较大程度的修订,主要修订和更新了以下几个方面的内容:
?? 增加了 PyTorch 的扩展内容。本书新增了向量化计算、分布式加速以及 CUDA 扩展等高级内容,同时新增了更加丰富的函数方法,帮助读者编写更加高效、简洁的程序。
?? 删除了陈旧的 API。使用 PyTorch 0.3 版本,在编写与神经网络相关的代码时,必须使用 Variable 定义数据,该版本的 Tensor 无法直接进行反向传播。当前版本的PyTorch 已经优化了 Tensor 对象,可以直接进行反向传播。
?? 修订了实战部分的内容,相比第 1 版而言更加实用。例如,实现了训练更加稳定的生成对抗网络,实现了支持任意风格的风格迁移网络,使用更加流行的 Transformer架构进行自动写诗等。
本书的结构
本书分为四部分:第 1 部分(第 1 章)对深度学习框架进行简单介绍;第 2 部分(第 2~5 章)介绍 PyTorch 的基础知识;第 3 部分(第 6~8 章)介绍 PyTorch 的进阶扩展;第 4 部分(第 9~13 章)介绍如何使用 PyTorch 进行实战。其中第 1、2、5、7、10、12、13 章由王博编写,第 3、4、6、8、9、11 章由周蓝翔编写,陈云在整本书的编写中提供了主体方向的指导及具体内容的修订建议。
第 1 章介绍深度学习框架的编年史,并对比介绍目前最为流行的两个深度学习框架——PyTorch 和 TensorFlow,同时解释了为什么要学习 PyTorch。
第 2 章介绍 PyTorch 的安装,以及相关学习环境的配置。同时,本章以概要的方式介绍了 PyTorch 的主要内容,帮助读者初步了解 PyTorch。
第 3 章介绍 PyTorch 中的多维数组 Tensor,以及自动微分系统 autograd 的使用,举例说明如何使用 Tensor 和 autograd 实现线性回归,并对比它们的不同点。本章对 Tensor的基本结构以及 autograd 的原理进行了分析,帮助读者更加全面地了解 PyTorch 的底层模块。
第 4 章介绍 PyTorch 中神经网络模块 nn 的基本用法,讲解神经网络中的层、激活函数、损失函数以及优化器等。在本章的最后,带领读者使用不到 50 行的代码实现经典的网络结构 ResNet。
第 5 章介绍 PyTorch 中的数据处理、预训练模型、可视化工具以及 GPU 加速等工具,合理地使用这些工具可以提高用户的编程效率。
第 6 章介绍 PyTorch 中的向量化思想,主要包括广播法则、基本索引、高级索引以及爱因斯坦操作。在本章的最后,带领读者使用向量化思想实现深度学习中的卷积操作、交并比、RoI Align 以及反向 Unique 操作。
第 7 章介绍 PyTorch 中的分布式操作。并行计算和分布式计算可以加速网络的训练过程,本章详细介绍了并行计算和分布式计算的基本原理,同时介绍了如何使用torch.distributed 和 Horovod 进行 PyTorch 的分布式训练。
第 8 章介绍 PyTorch 中的 CUDA 扩展,带领读者使用 CUDA 实现 Sigmoid 函数。同时,本章对 CUDA、NVIDIA-driver、cuDNN 和 Python 之间的关系进行了总结。
第 9 章是承上启下的一章,目标不是教会读者使用新函数、新知识,而是结合 Kaggle中的一个经典比赛,实现深度学习中最为简单的图像二分类。在实现的过程中,将带领读者复习第 1~5 章的知识,并帮助读者合理地组织程序和代码,使程序更加易读且更好维护。同时,本章介绍了如何在 PyTorch 中调试代码。
第 10 章介绍生成对抗网络的基本原理,带领读者从零开始实现一个动漫头像生成器,能够利用生成对抗网络生成风格多变的动漫头像。
第 11 章介绍自然语言处理的一些基本知识,并详细介绍 CharRNN 和 Transformer的基本原理。本章带领读者使用 Transformer 实现自动写诗,该程序可以模仿古人实现诗词的续写以及藏头诗的生成。
第 12 章介绍风格迁移的基本原理,带领读者实现支持任意风格迁移的神经网络。通过该网络,读者可以将任意图像转换为名画的风格。
第 13 章介绍目标检测的基本原理,带领读者实现单阶段、无锚框、无非极大值抑制的目标检测算法 CenterNet。CenterNet 的设计思路可以被迁移到三维图像的目标检测、人体姿态估计以及目标跟踪等经典的计算机视觉问题中。

目录

第 1 章 深度学习框架简介 1
1.1 深度学习框架编年史 1
1.2 PyTorch 与 TensorFlow 的对比 6
1.3 为什么选择 PyTorch 8
第 2 章 PyTorch 快速入门 11
2.1 安装与配置 11
2.1.1 在 Linux 系统下安装 PyTorch 11
2.1.2 在 Windows 系统下安装 PyTorch 13
2.1.3 学习工具介绍 14
2.1.4 服务器开发介绍 23
2.2 PyTorch 快速入门指南 23
2.2.1 Tensor 23
2.2.2 autograd:自动微分 29
2.2.3 神经网络 31
2.2.4 小试牛刀:CIFAR-10 分类 36
2.3 小结 42
第 3 章 Tensor 和 autograd 43

3.1 Tensor 基础 43

3.1.1 Tensor 的基本操作 43
3.1.2 命名张量 60
3.1.3 Tensor 与 NumPy 61
3.1.4 Tensor 的基本结构 63
3.1.5 变形记:N 种改变 Tensor 形状的方法 65
3.2 小试牛刀:线性回归 70
3.3 autograd 和计算图基础 73
3.3.1 autograd 的用法:requires_grad 与 backward 73
3.3.2 autograd 的原理:计算图 76
3.3.3 扩展 autograd:Function 83
3.3.4 小试牛刀:利用 autograd 实现线性回归 84
3.4 小结 87
第 4 章 神经网络工具箱 nn 89
4.1 nn.Module 89
4.2 常用的神经网络层 93
4.2.1 图像相关层 93
4.2.2 激活函数 97
4.2.3 构建神经网络 98
4.2.4 循环神经网络 101
4.2.5 损失函数 102
4.3 nn.functional 103
4.3.1 nn.functional 与 nn.Module 的区别 103
4.3.2 采样函数 105
4.4 初始化策略 106
4.5 优化器 107
4.6 nn.Module 深入分析 109
4.7 小试牛刀:搭建 ResNet 116
4.8 小结 120
第 5 章 PyTorch 中常用的工具 121
5.1 数据处理 121
5.1.1 Dataset121
5.1.2 DataLoader 128
5.2 预训练模型 135
5.3 可视化工具 137
5.3.1 TensorBoard 137
5.3.2 Visdom 143
5.4 使用 GPU 加速:CUDA 148
5.5 小结 154
第 6 章 向量化 155
6.1 向量化简介 155
6.2 广播法则 156
6.3 索引操作 157
6.3.1 基本索引 157
6.3.2 高级索引 161
6.3.3 einsum / einops 173
6.4 小试牛刀:使用向量化思想解决实际问题 179
6.4.1 Box_IoU 179
6.4.2 RoI Align 181
6.4.3 反向 Unique 185
6.5 小结 185
第 7 章 PyTorch 与 Multi-GPU 187
7.1 单机多卡并行 187
7.1.1 并行原理介绍 187
7.1.2 DataParallel 使用示例 189
7.2 分布式系统 191
7.2.1 分布式系统的基本概念 191
7.2.2 分布式消息传递接口 192
7.2.3 小试牛刀:分布式计算实操演练 196
7.3 PyTorch 分布式训练 198
7.3.1 使用 MPI 进行分布式训练 198
7.3.2 使用 torch.distributed 进行分布式训练 201
7.3.3 使用 Horovod 进行分布式训练 203
7.4 分布式训练中的注意事项 206
7.4.1 保持同步 206
7.4.2 进程协作 207
7.4.3 常用调试技巧 208
7.5 进阶扩展 209
7.6 小结 210
第 8 章 CUDA 扩展与编译 211
8.1 PyTorch C++ 扩展简介 211
8.1.1 C++ 扩展 211
8.1.2 CUDA 扩展 216
8.2 CUDA、NVIDIA-driver、cuDNN、PyTorch 之间的关系 222
8.3 小结 225
第 9 章 PyTorch 实战指南 227
9.1 编程实战:猫和狗二分类 227
9.1.1 比赛介绍 228
9.1.2 文件组织结构 228
9.1.3 __init__.py 229
9.1.4 数据加载 230
9.1.5 模型定义 232
9.1.6 工具函数 233
9.1.7 配置文件 235
9.1.8 main.py 237
9.1.9 使用 244
9.1.10 争议 244
9.2 PyTorch 调试指南 246
9.2.1 ipdb 介绍 246
9.2.2 在 PyTorch 中调试 250
9.3 小结 254
第 10 章 AI 插画师:生成对抗网络 255
10.1 GAN 原理简介 255
10.2 使用 GAN 生成动漫人物头像 259
10.3 实验结果分析 268
10.4 小结 269
第 11 章 AI 诗人:用 Transformer 写诗 271
11.1 自然语言处理的基础知识 271
11.1.1 词向量 271
11.1.2 RNN 274
11.2 CharRNN 277
11.3 Transformer 278
11.3.1 自注意力模块 280
11.3.2 位置编码模块 281
11.4 使用 PyTorch 实现 Transformer 写诗 282
11.5 小结 294
第 12 章 AI 艺术家:神经网络风格迁移 295
12.1 风格迁移原理介绍 296
12.2 使用 PyTorch 实现风格迁移 300
12.3 实验结果分析 308
12.4 小结 310
第 13 章 CenterNet:目标检测 311
13.1 目标检测概述 311
13.2 CenterNet 原理介绍 313
13.3 使用 PyTorch 实现 CenterNet 318
13.3.1 使用 pycocotools 加载 COCO 数据集 318
13.3.2 搭建 CenterNet 网络 319
13.4 实验结果分析 328
13.5 小结 330
参考文献 331

短评

非常好,网上还有对应的代码,适合拿来自学。

2022-09-12 17:46:47

好书。

2022-08-01 17:35:57

强烈强烈推荐,同学的这本书首先是基于pytorch的最新版本,在这种日新月异的领域内,新是一个非常重要的优势;其次这本书针对的是一个明确的框架,比较贴近实际;再者,这本书手把手的教了tensor,自动微分凳基础,也包括分布式,cuda等高级内容,然后针对多个场景,多种算法做了案例,学完基本对深度学习的各个方向有了基础;最后,里面的案例展示了工程级的代码风格,对于完全没有实际开发经验的学习者非常有参考价值。

2022-08-01 15:08:36

包装完好无损,快递迅速

2022-07-30 12:49:07

以前知道这软件,有些课程也在推。这本书是几个年青人写的,已经第二版,鼓励鼓励。买来学习,纸质不错。希望可以提高工作效率。

2022-07-21 09:37:49

产品特色