1 PyTorch简介
1.1 PyTorch的诞生 1
1.2 常见的深度学习框架简介 2
1.2.1 Theano 3
1.2.2 TensorFlow 3
1.2.3 Keras 5
1.2.4 Caffe/Caffe2 5
1.2.5 MXNet 6
1.2.6 CNTK 7
1.2.7 其他框架 8
1.3 属于动态图的未来 8
1.4 为什么选择PyTorch 10
1.5 星火燎原 12
1.6 fast.ai 放弃Keras+TensorFlow选择PyTorch 13
2 快速入门 16
2.1 安装与配置 16
2.1.1 安装PyTorch 16
2.1.2 学习环境配置 20
2.2 PyTorch入门第一步 30
2.2.1 Tensor 30
2.2.2 Autograd:自动微分 35
2.2.3 神经网络 38
2.2.4 小试牛刀:CIFAR-10分类 43
3 Tensor和autograd 51
3.1 Tensor 51
3.1.1 基础操作 52
3.1.2 Tensor和Numpy 70
3.1.3 内部结构 73
3.1.4 其他有关Tensor的话题 76
3.1.5 小试牛刀:线性回归 78
3.2 autograd 81
3.2.1 Variable 82
3.2.2 计算图 86
3.2.3 扩展autograd 95
3.2.4 小试牛刀:用Variable实现线性回归 100
4 神经网络工具箱nn 104
4.1 nn.Module 104
4.2 常用的神经网络层 108
4.2.1 图像相关层 108
4.2.2 激活函数 111
4.2.3 循环神经网络层 115
4.2.4 损失函数 117
4.3 优化器 117
4.4 nn.functional 119
4.5 初始化策略 121
4.6 nn.Module深入分析 123
4.7 nn和autograd的关系 130
4.8 小试牛刀:用50行代码搭建ResNet 131
5 PyTorch中常用的工具 136
5.1 数据处理 136
5.2 计算机视觉工具包:torchvision 148
5.3 可视化工具 150
5.3.1 Tensorboard 151
5.3.2 visdom 153
5.4 使用GPU加速:cuda 159
5.5 持久化 162
6 PyTorch实战指南 165
6.1 编程实战:猫和狗二分类 165
6.1.1 比赛介绍 166
6.1.2 文件组织架构 166
6.1.3 关于__init__.py 168
6.1.4 数据加载 168
6.1.5 模型定义 171
6.1.6 工具函数 172
6.1.7 配置文件 175
6.1.8 main.py 177
6.1.9 使用 185
6.1.10 争议 186
6.2 PyTorch Debug 指南 188
6.2.1 ipdb 介绍 188
6.2.2 在PyTorch中Debug 192
7 AI插画师:生成对抗网络 198
7.1 GAN的原理简介 199
7.2 用GAN生成动漫头像 203
7.3 实验结果分析 212
8 AI艺术家:神经网络风格迁移 216
8.1 风格迁移原理介绍 217
8.2 用PyTorch实现风格迁移 223
8.3 实验结果分析 234
9 AI诗人:用RNN写诗 238
9.1 自然语言处理的基础知识 238
9.1.1 词向量 239
9.1.2 RNN 241
9.2 CharRNN 244
9.3 用PyTorch实现CharRNN 247
9.4 实验结果分析 258
10 Image Caption:让神经网络看图讲故事 261
10.1 图像描述介绍 262
10.2 数据 263
10.2.1 数据介绍 263
10.2.2 图像数据处理 271
10.2.3 数据加载 273
10.3 模型与训练 276
10.4 实验结果分析 281
11 展望与未来 283
11.1 PyTorch的局限与发展 283
11.2 使用建议 287