第1章 深度学习环境搭建 1
1.1 深度学习概述 1
1.1.1 深度学习发展历史 1
1.1.2 深度学习框架比较 2
1.1.3 深度学习应用领域 5
1.2 搭建开发环境 6
1.2.1 安装Python 3.10 6
1.2.2 安装Jupyter Lab 10
1.2.3 安装PyTorch 1.10 12
1.3 PyTorch应用场景 16
1.4 动手练习:每日最高温度预测 17
1.5 练习题 20
第2章 PyTorch与数学基础 21
2.1 PyTorch中的函数 21
2.1.1 函数基础知识 21
2.1.2 PyTorch中的主要函数 24
2.2 微分基础 26
2.2.1 微分及其公式 26
2.2.2 PyTorch自动微分 28
2.3 数理统计基础 33
2.3.1 数理统计及其指标 33
2.3.2 PyTorch统计函数 38
2.4 矩阵基础 46
2.4.1 矩阵及其运算 47
2.4.2 PyTorch矩阵运算 49
2.5 动手练习:拟合余弦函数曲线 54
2.6 练习题 57
第3章 PyTorch的基本概念 58
3.1 张量及其创建 58
3.1.1 张量及其数据类型 58
3.1.2 数组直接创建张量 59
3.1.3 概率分布创建张量 61
3.2 激活函数 62
3.2.1 激活函数及必要性 62
3.2.2 Sigmoid激活函数 63
3.2.3 Tanh激活函数 64
3.2.4 ReLU激活函数 65
3.2.5 Leakly ReLU激活函数 67
3.2.6 其他类型的激活函数 68
3.3 损失函数 69
3.3.1 损失函数及选取 69
3.3.2 L1范数损失函数 70
3.3.3 均方误差损失函数 71
3.3.4 交叉熵损失函数 72
3.3.5 余弦相似度损失 73
3.3.6 其他损失函数 74
3.4 优化器 74
3.4.1 梯度及梯度下降 74
3.4.2 随机梯度下降算法 76
3.4.3 标准动量优化算法 76
3.4.4 AdaGrad算法 77
3.4.5 RMSProp算法 77
3.4.6 Adam算法 78
3.5 动手练习:PyTorch优化器比较 78
3.6 练习题 82
第4章 PyTorch深度神经网络 83
4.1 神经网络概述 83
4.1.1 神经元模型 83
4.1.2 多层感知器 85
4.1.3 前馈神经网络 87
4.2 卷积神经网络 87
4.2.1 卷积神经网络的历史 88
4.2.2 卷积神经网络的结构 88
4.2.3 卷积神经网络的类型 90
4.3 几种常见的循环神经网络 93
4.3.1 循环神经网络 93
4.3.2 长短期记忆网络 96
4.3.3 门控循环单元 97
4.4 动手练习:股票成交量趋势预测 98
4.5 练习题 104
第5章 PyTorch数据建模 105
5.1 回归分析及案例 105
5.1.1 回归分析简介 105
5.1.2 回归分析建模 106
5.1.3 动手练习:住房价格回归预测 109
5.2 聚类分析及案例 112
5.2.1 聚类分析简介 113
5.2.2 聚类分析建模 113
5.2.3 动手练习:植物花卉特征聚类 115
5.3 主成分分析及案例 118
5.3.1 主成分分析简介 118
5.3.2 主成分分析建模 119
5.3.3 动手练习:地区竞争力指标降维 120
5.4 模型评估与调优 124
5.4.1 模型评估方法 124
5.4.2 模型调优方法 128
5.4.3 动手练习:PyTorch实现交叉验证 129
5.5 练习题 134
第6章 PyTorch图像建模 135
6.1 图像建模概述 135
6.1.1 图像分类技术 135
6.1.2 图像识别技术 136
6.1.3 图像分割技术 137
6.2 动手练习:创建图像自动分类器 138
6.2.1 加载数据集 138
6.2.2 搭建网络模型 139
6.2.3 训练网络模型 140
6.2.4 应用网络模型 141
6.3 动手练习:搭建图像自动识别模型 142
6.3.1 加载数据集 142
6.3.2 搭建与训练网络 143
6.3.3 预测图像数据 144
6.3.4 图像识别模型的判断 145
6.4 动手练习:搭建图像自动分割模型 148
6.4.1 加载数据集 148
6.4.2 搭建网络模型 149
6.4.3 训练网络模型 152
6.4.4 应用网络模型 153
6.5 练习题 155
第7章 PyTorch文本建模 156
7.1 自然语言处理的几个模型 156
7.1.1 Word2Vec模型 156
7.1.2 Seq2Seq模型 157
7.1.3 Attention模型 158
7.2 动手练习:Word2Vec提取相似文本 159
7.2.1 加载数据集 159
7.2.2 搭建网络模型 162
7.2.3 训练网络模型 163
7.2.4 应用网络模型 164
7.3 动手练习:Seq2Seq实现机器翻译 165
7.3.1 加载数据集 165
7.3.2 搭建网络模型 168
7.3.3 训练网络模型 172
7.3.4 应用网络模型 174
7.4 动手练习:Attention模型实现文本自动分类 175
7.4.1 加载数据集 175
7.4.2 搭建网络模型 177
7.4.3 训练网络模型 178
7.4.4 应用网络模型 181
7.5 练习题 181
第8章 PyTorch音频建模 182
8.1 音频处理及应用 182
8.1.1 音频处理技术 182
8.1.2 音频摘要及应用 183
8.1.3 音频识别及应用 184
8.1.4 音频监控及应用 185
8.1.5 场景感知及其应用 186
8.2 音频特征提取步骤 187
8.2.1 特征提取流程 187
8.2.2 音频预处理 187
8.2.3 傅里叶变换 188
8.2.4 能量谱处理 189
8.2.5 离散余弦转换 190
8.3 PyTorch音频建模 190
8.3.1 加载音频数据源 190
8.3.2 波形变换的类型 191
8.3.3 绘制波形频谱图 192
8.3.4 波形Mu-Law编码 194
8.3.5 变换前后波形比较 196
8.4 动手练习:音频相似度分析 196
8.5 练习题 198
第9章 PyTorch模型可视化 199
9.1 Visdom 199
9.1.1 Visdom简介 199
9.1.2 Visdom可视化操作 201
9.1.3 动手练习:识别手写数字 214
9.2 TensorBoard 219
9.2.1 TensorBoard简介 219
9.2.2 TensorBoard基础操作 221
9.2.3 动手练习:可视化模型参数 229
9.3 Pytorchviz 231
9.3.1 Pytorchviz简介 231
9.3.2 动手练习:Pytorchviz建模可视化 231
9.4 Netron 233
9.4.1 Netron简介 233
9.4.2 动手练习:Netron建模可视化 234
9.5 练习题 237
第10章 PyTorch联邦学习 238
10.1 联邦学习算法简介 238
10.1.1 联邦学习提出背景 238
10.1.2 联邦学习基本概念 239
10.2 联邦学习主要类型 239
10.2.1 横向联邦学习及其过程 240
10.2.2 纵向联邦学习及其过程 241
10.2.3 联邦迁移学习及其过程 242
10.3 联邦学习研究现状 242
10.3.1 算法重要研究进展 242
10.3.2 联邦学习算法优化 243
10.3.3 主要应用前景介绍 244
10.4 动手练习:手写数字识别 245
10.4.1 读取手写数据集 245
10.4.2 训练与测试模型 246
10.4.3 模型结果输出 250
10.5 练习题 252
附录A Python常用第三方工具包简介 253
A.1 数据分析类包 253
A.2 数据可视化类包 254
A.3 机器学习类包 255
参考文献 258