第 1 章 深度学习简介 1
1.1 计算机视觉 1
1.1.1 定义 1
1.1.2 基本任务 1
1.1.3 传统方法 2
1.1.4 仿生学与深度学习 3
1.1.5 现代深度学习 4
1.2 自然语言处理 7
1.2.1 自然语言处理的基本问题 7
1.2.2 传统方法与神经网络方法的比较 8
1.2.3 发展趋势 9
1.3 强化学习 10
1.3.1 什么是强化学习 10
1.3.2 强化学习算法简介 12
1.3.3 强化学习的应用 12
1.4 本章小结 13
第 2 章 深度学习框架 14
2.1 Caffe 14
2.1.1 什么是 Caffe 14
2.1.2 Caffe 的特点 14
2.1.3 Caffe 概述 15
2.2 TensorFlow 16
2.2.1 什么是 TensorFlow 16
2.2.2 数据流图 16
2.2.3 TensorFlow 的特点 17
2.2.4 TensorFlow 概述 17
2.3 PyTorch 20
2.3.1 什么是 PyTorch 20
2.3.2 PyTorch 的特点 20
2.3.3 PyTorch 概述 20
2.4 三者的比较 22
2.5 本章小结 24
第 3 章 机器学习基础知识 25
3.1 模型评估与模型参数选择 25
3.1.1 验证 26
3.1.2 正则化 26
3.2 监督学习与非监督学习 26
3.2.1 监督学习 27
3.2.2 非监督学习 28
3.3 本章小结 29
第 4 章 PyTorch 深度学习基础 30
4.1 Tensor 对象及其运算 30
4.2 Tensor 的索引和切片 32
4.3 Tensor 的变换、拼接和拆分 33
4.4 PyTorch 的 Reduction 操作 35
4.5 PyTorch 的自动微分 36
4.6 本章小结 38
第 5 章 Logistic 回归 39
5.1 线性回归简介 39
5.2 Logistic 回归简介 41
5.3 用 PyTorch 实现 Logistic 回归 43
5.3.1 数据准备 43
5.3.2 线性方程 44
5.3.3 激活函数 45
5.3.4 损失函数 45
5.3.5 优化算法 47
5.3.6 模型可视化 47
5.4 本章小结 48
第 6 章 神经网络基础 49
6.1 基础概念 49
6.2 感知器 52
6.2.1 单层感知器 52
6.2.2 多层感知器 53
6.3 BP 神经网络 53
6.3.1 梯度下降 53
6.3.2 反向传播 54
6.4 Dropout 正则化 55
6.5 Batch Normalization 56
6.5.1 Batch Normalization 的实现方式 57
6.5.2 Batch Normalization 的使用方法 58
6.6 本章小结 59
第 7 章 卷积神经网络与计算机视觉 60
7.1 卷积神经网络的基本思想 60
7.2 卷积操作 61
7.3 池化层 63
7.4 卷积神经网络 64
7.5 经典网络结构 64
7.5.1 VGG 网络 64
7.5.2 InceptionNet 65
7.5.3 ResNet 66
7.6 用 PyTorch 进行手写数字识别 67
7.7 本章小结 72
第 8 章 神经网络与自然语言处理 73
8.1 语言建模 73
8.2 基于多层感知器的架构 75
8.3 基于循环神经网络的架构 76
8.3.1 循环单元 77
8.3.2 通过时间反向传播 77
8.3.3 带有门限的循环单元 78
8.3.4 循环神经网络语言模型 79
8.3.5 神经机器翻译 80
8.4 基于卷积神经网络的架构 83
8.5 基于 Transformer 的架构 85
8.5.1 多头注意力 86
8.5.2 非参位置编码 88
8.5.3 编码器单元与解码器单元 88
8.6 表示学习与预训练技术 89
8.6.1 词向量 90
8.6.2 加入上下文信息的特征表示 91
8.6.3 网络预训练 92
8.7 本章小结 95
第 9 章 实战:使用 PyTorch 实现
基于卷积神经网络模型的图像分类与数据可视化 96
9.1 卷积神经网络模型 96
9.1.1 卷积神经网络模型的发展 96
9.1.2 Tensorboard 97
9.2 卷积神经网络模型与 Tensorboard实战 97
9.2.1 FashionMNIST 数据集 97
9.2.2 数据准备与模型搭建 98
9.2.3 Tensorboard 的使用 100
9.3 本章小结 108
第 10 章 实战:使用 PyTorch 实现基于textCNN的文本分类 109
10.1 文本分类常用的 Python 工具库 109
10.2 数据集 110
10.3 算法模型 111
10.3.1 模型介绍 111
10.3.2 模型实现 114
10.3.3 模型结果 115
10.4 本章小结 115
第 11 章 实战:使用 PyTorch 搭建卷积神经网络进行音频
转化 116
11.1 数据集准备 116
11.2 数据预处理 116
11.2.1 数据集读取 116
11.2.2 音频文件分段 117
11.2.3 CQT 118
11.3 模型构建 119
11.3.1 激活函数 119
11.3.2 模型分析 120
11.3.3 ReLU 激活函数的定义和
实现.120
11.3.4 flatten 函数平整层处理 121
11.3.5 sigmoid 激活函数 122
11.4 模型训练与结果评估 122
11.4.1 adam 优化器 122
11.4.2 学习率策略定义 122
11.4.3 准确度验证 123
11.4.4 训练 124
11.5 本章小结 124
第 12 章 实战:使用 PyTorch 实现YOLOv3 的验证码识别 125
12.1 YOLOv3 125
12.1.1 YOLOv3 概述 125
12.1.2 YOLOv3 与 PyTorch 125
12.1.3 YOLOv3 案例的意义 126
12.2 目标检测案例:验证码中的简单文字识别 126
12.2.1 YOLOv3 的安装和文档 126
12.2.2 训练集的获取和数据标注 126
12.2.3 模型训练 128
12.2.4 模型的测试与预览 128
12.3 YOLO 的其他拓展 129
12.4 本章小结 129
第 13 章 实战:使用 PyTorch 实现基于预训练模型的文本情感分析 130
13.1 模型介绍 130
13.1.1 预训练模型 130
13.1.2 BERT 130
13.2 情感分类介绍 131
13.2.1 文本情感分析 131
13.2.2 BERT 情感分析原理简析 131
13.3 环境搭建 131
13.3.1 环境选择 132
13.3.2 Conda 简介 133
13.3.3 Huggingface-Transformer 简介 133
13.3.4 Huggingface-Transformer 下载 133
13.4 数据集获取 133
13.5 模型微调 134
13.6 效果测评 136
13.7 本章小结 137
第 14 章 实战:用 PyTorch 进行
视频处理 138
14.1 数据准备 138
14.2 数据预处理 139
14.2.1 数据集的读取 139
14.2.2 视频关键帧的提取 139
14.3 模型构建 140
14.3.1 ResNet-18 提取关键帧的特征 141
14.3.2 L2 正则化关键帧特征 142
14.3.3 视频相似度匹配 142
14.3.4 帧级相似度匹配 143
14.4 模型训练与结果评估 145
14.4.1 训练函数的实现 145
14.4.2 训练结果提交 146
14.5 本章小结 146
第 15 章 实战:使用 PyTorch 在跨域数据集上进行图像分类 147
15.1 迁移学习 147
15.2 跨域数据集 148
15.3 ResNet-50 149
15.4 案例分析 149
15.4.1 数据预处理 149
15.4.2 读取数据 151
15.4.3 训练 153
15.5 本章小结 154
第 16 章 实战:使用 PyTorch 实现基于BERT的自动新闻文本分类 155
16.1 文本分类概述 155
16.2 BERT 简介 156
16.3 数据预处理 158
16.4 模型实现 159
16.5 本章小结 160
附录 A PyTorch 环境搭建 161
A.1 Linux 平台下 PyTorch 环境搭建 161
A.2 Windows 平台下 PyTorch 环境
搭建.163
附录 B 深度学习的数学基础 165
B.1 线性代数 165
B.2 概率论 172