目录
第1章 PyTorch简介
1.1 深度学习简介 1
1.2 PyTorch的由来 2
1.2.1 深度学习框架回顾 2
1.2.2 PyTorch前身:Torch7 4
1.2.3 Torch7的重生 5
1.3 PyTorch与TensorFlow对比 5
1.3.1 TensorFlow简介 6
1.3.2 动静之争 6
1.3.3 二者借鉴融合 7
1.3.4 PyTorch的优势 7
1.4 PyTorch发展现状 8
1.4.1 主要版本特点回顾 8
1.4.2 准备工作 8
第2章 PyTorch基础计算
2.1 PyTorch核心基础概念:张量Tensor 11
2.1.1 Tensor基本介绍 11
2.1.2 Tensor数学运算操作 15
2.1.3 Tensor索引分片合并变换操作 20
2.1.4 Tensor类成员方法 22
2.1.5 在GPU上计算 24
2.2 PyTorch可微编程核心:自动微分Autograd 25
2.2.1 PyTorch自动微分简介 25
2.2.2 可微分张量 25
2.2.3 利用自动微分求梯度 26
2.2.4 Function:自动微分实现基础 29
2.2.5 注意事项 31
2.3 PyTorch应用实战一:实现卷积操作 34
2.3.1 卷积操作 34
2.3.2 利用张量操作实现卷积 36
2.4 PyTorch应用实战二:实现卷积神经网络进行图像分类 38
第3章 PyTorch构建神经网络
3.1 PyTorch神经网络计算核心:torch.nn 43
3.1.1 nn.Module概述 43
3.1.2 结构化构建神经网络 47
3.1.3 经典神经网络层介绍 49
3.1.4 函数式操作nn.functional 53
3.2 PyTorch优化器 55
3.2.1 torch.optim概述 55
3.2.2 经典优化器介绍 56
3.2.3 学习率调整 57
3.3 PyTorch应用实战一:实现二值化神经网络 59
3.3.1 二值化网络BinaryNet概述 59
3.3.2 具体实现 60
3.4 PyTorch应用实战二:利用LSTM实现文本情感分类 63
3.4.1 文本情感分类 63
3.4.2 具体实现 65
第4章 基于PyTorch构建复杂应用
4.1 PyTorch数据加载 70
4.1.1 数据预处理:torchvision.transforms 70
4.1.2 数据加载:torch.utils.data 73
4.2 PyTorch模型搭建 77
4.2.1 经典模型复用与分享:torchvision.models 78
4.2.2 模型加载与保存 79
4.2.3 导出为ONNX格式 85
4.3 训练过程中日志记录与可视化 89
4.4 PyTorch应用实战一:在CIFAR10数据集进行神经网络结构搜索 93
4.4.1 可微分网络架构搜索DARTS介绍 94
4.4.2 简化问题建模:以ResNet为例 95
4.4.3 具体实现 96
4.5 PyTorch应用实战二:在ImageNet数据集进行弱监督物体定位 108
4.5.1 GradCAM解释显著图方法介绍 108
4.5.2 弱监督物体定位任务 109
4.5.3 具体实现 110
第5章 PyTorch高级技巧与实战应用
5.1 PyTorch并行计算 118
5.1.1 大规模数据集加载 118
5.1.2 模型的高效并行计算 122
5.1.3 加速模型计算和减少显存使用 125
5.2 扩展PyTorch 126
5.2.1 利用C++和CUDA实现自定义算子 126
5.2.2 利用TorchScript导出PyTorch模型 136
5.3 丰富的PyTorch资源介绍 145
5.4 PyTorch应用实战一:在ImageNet上训练MobileNet-V2网络 146
5.4.1 MobileNet-V2网络介绍 146
5.4.2 具体实现 147
5.5 PyTorch应用实战二:利用CUDA扩展实现MixConv算子 157
5.5.1 MixConv算子介绍 157
5.5.2 借鉴Depthwise卷积实现思路 158
5.5.3 具体实现 160
第6章 PyTorch完整实战讲解——网络剪枝应用
6.1 网络剪枝介绍 169
6.1.1 剪枝方法分类 169
6.1.2 基于权重通道重要性的结构化剪枝 170
6.1.3 问题定义与建模 170
6.2 具体实现思路 171
6.2.1 如何附属控制门值 171
6.2.2 剪枝结构搜索 172
6.2.3 剪枝模型训练 174
6.3 完整代码实现 175
6.3.1 模型搭建 176
6.3.2 剪枝器实现 181
6.3.3 学习控制门变量 183
6.3.4 剪枝模型 187
6.3.5 训练模型 189
6.3.6 规模化启动训练任务 193
6.4 实验结果 198
参考文献
展开
中国科学院院士,清华大学人工智能研究院院长,清华大学计算机系教授 张钹
本书作者总结了科研过程中使用PyTorch框架的经典应用技巧,并且紧跟当前学术发展领域前沿成果,在讲解PyTorch编程框架时,又引入科研探索的分析求证过程。相比于市面同类型书籍,本书不止于编程技巧,更是带领初学者进入深度学习的指南。
清华大学计算机系副教授,博士生导师 胡晓林
宇龙结合自身丰富研究经历和专业知识,深入浅出讲解PyTorch框架使用技巧。本书可以帮助在业界一线的从业者快速入门上手,并能掌握高阶实战技术,对业务应用实践非常有帮助,强烈推荐。
蚂蚁金服集团高级算法专家 张晓露