目录
前言 . 1
第1 章 PyTorch 简介 9
1.1 PyTorch 是什么? .9
1.2 为什么使用PyTorch? .10
1.3 新手指南 12
1.3.1 在Google Colaboratory 中运行 13
1.3.2 在本地计算机上运行 .16
1.3.3 在云平台上运行 17
1.3.4 验证你的PyTorch 环境 20
1.4 一个有趣的例子 20
第2 章 张量 29
2.1 张量是什么? .30
2.1.1 简单CPU 示例 .30
2.1.2 简单GPU 示例 .31
2.1.3 在CPU 和GPU 之间移动张量 .32
2.2 创建张量 33
2.2.1 张量属性37
2.2.2 数据类型38
2.2.3 由随机样本创建张量 .40
2.2.4 创建类似其他张量的张量 42
2.3 张量操作 42
2.3.1 张量索引、切片、合并和拆分 .43
2.3.2 张量数学运算 47
2.3.3 自动微分(Autograd) .54
第3 章 使用PyTorch 的深度学习开发 . 57
3.1 完整过程 58
3.2 数据准备 60
3.2.1 数据加载60
3.2.2 数据变换65
3.2.3 数据批处理 .69
3.2.4 一般数据准备(torch.utils.data) 70
3.3 模型开发 74
3.3.1 模型设计75
3.3.2 训练 90
3.3.3 验证 98
3.3.4 测试 .102
3.4 模型部署 .103
3.4.1 保存模型104
3.4.2 部署到PyTorch Hub 105
3.4.3 部署到生产环境 106
第4 章 神经网络开发参考设计 107
4.1 使用迁移学习完成图像分类 .108
4.1.1 数据处理108
4.1.2 模型设计 111
4.1.3 训练和验证 113
4.1.4 测试和部署 115
4.2 用Torchtext 完成情感分析 117
4.2.1 数据处理 117
4.2.2 模型设计123
4.2.3 训练和验证 125
4.2.4 测试和部署 127
4.3 生成式学习—用DCGAN 生成Fashion-MNIST 图像 129
4.3.1 数据处理130
4.3.2 模型设计132
4.3.3 训练 .135
4.3.4 测试和部署 140
第5 章 定制PyTorch 143
5.1 定制层和激活函数 .144
5.1.1 定制层示例(Complex Linear) 146
5.1.2 定制激活示例(Complex ReLU) 150
5.2 定制模型架构 151
5.3 定制损失函数 154
5.4 定制优化器算法 .156
5.5 定制训练、验证和测试循环 .160
第6 章 PyTorch 加速和优化 . 165
6.1 TPU 上使用PyTorch 166
6.2 (单机)多个GPU 上使用PyTorch .170
6.2.1 数据并行处理 .170
6.2.2 模型并行处理 .175
6.2.3 结合数据并行处理和模型并行处理.177
6.3 (多机)分布式训练 180
6.4 模型优化 .182
6.4.1 超参数调优 182
6.4.2 量化 .190
6.4.3 剪枝 .194
第7 章 PyTorch 部署到生产环境 201
7.1 PyTorch 部署工具和库 202
7.1.1 通用示例模型 .203
7.1.2 Python API 204
7.1.3 TorchScript 205
7.1.4 TorchServe 209
7.1.5 ONNX .218
7.1.6 Mobile 库 219
7.2 部署到Flask 应用 221
7.3 Colab Flask 应用 .224
7.4 用TorchServe 部署到云227
7.5 Docker 快速入门.227
7.6 部署到移动和边缘设备 229
7.6.1 iOS229
7.6.2 Android 232
7.6.3 其他边缘设备 .236
第8 章 PyTorch 生态系统和其他资源 239
8.1 PyTorch 生态系统 240
8.2 面向图像和视频的Torchvision 248
8.2.1 数据集和I/O249
8.2.2 模型 .251
8.2.3 变换、操作和实用工具 .253
8.3 用于NLP 的Torchtext 261
8.3.1 创建一个数据集对象 261
8.3.2 预处理数据 262
8.3.3 创建一个Dataloader 批处理 263
8.3.4 数据(torchtext.data) 264
8.3.5 数据集(torchtext.datasets) 265
8.3.6 词汇表(torchtext.vocab) 268
8.4 用于可视化的TensorBoard 269
8.4.1 SCALARS 显示学习曲线 .272
8.4.2 GRAPHS 显示模型架构 273
8.4.3 IMAGES、TEXT 和PROJECTOR 显示数据 .274
8.4.4 DISTRIBUTIONS 和HISTOGRAMS 显示权重分布 .275
8.4.5 HPARAMS 显示超参数 .276
8.4.6 TensorBoard API 277
8.5 Papers with Code 280
8.6 其他PyTorch 资源 .280
8.6.1 教程 .281
8.6.2 图书 .283
8.6.3 在线课程和现场培训 284