图书目录

目录

第1章深度学习基础/1

1.1人工智能概述1

1.1.1人工智能在各领域中的应用1

1.1.2人工智能、机器学习和深度学习3

1.2深度学习的基本原理5

1.2.1神经元5

1.2.2人工神经网络8

1.2.3反向传播算法11

1.2.4神经网络的数据结构——张量18

1.3卷积神经网络18

1.3.1卷积层19

1.3.2池化层21

1.3.3归一化层21

1.3.4全连接层22

1.3.5Softmax函数22

1.3.6损失函数23

1.3.7卷积神经网络的特点24

1.3.8卷积神经网络的发展25

1.4迁移学习26

1.5模型训练超参数27

1.6深度学习在计算机视觉中的典型应用28

1.7数据集29

1.7.1数据集的划分30

1.7.2数据集的预处理30

1.7.3数据集的标注33

1.7.4常用数据集35

1.8深度学习框架47

1.9深度学习的计算特点47

第2章深度学习的计算平台/49

2.1神经网络计算加速芯片512.1.1神经网络的计算特点51

2.1.2神经网络的计算芯片52

2.2TPU架构与原理54

2.2.1谷歌TPU架构与原理56

2.2.2算能TPU架构与原理61

2.3算能TPU硬件架构及产品形态63

2.3.1算能TPU的芯片硬件架构63

2.3.2算能TPU的产品形态65

2.4算能TPU软件架构65

2.4.1实时视频流处理方案66

2.4.2深度学习软件开发工具包67

2.4.3离线模型转换68

2.4.4在线模型推理69

2.4.5自定义算子69

2.4.6模型量化加速70

2.4.7高级接口编程库70

〖1〗深度学习算法与实践目录〖3〗〖3〗第3章深度学习编程环境操作基础/72

3.1Linux入门72

3.1.1Linux系统的安装简介72

3.1.2Linux系统的常用命令73

3.1.3Linux的文本编辑器75

3.2Python入门75

3.2.1Python环境的安装和使用75

3.2.2PyCharm集成开发环境的安装和使用76

3.2.3常用Python库79

3.2.4Python虚拟环境79

3.3TensorFlow入门81

3.3.1TensorFlow的安装81

3.3.2TensorFlow的基本操作82

3.3.3使用TensorFlow实现手写数字识别85

3.4PyTorch入门87

3.4.1PyTorch的安装87

3.4.2PyTorch的基本操作88

3.4.3使用PyTorch实现手写数字识别89

3.5SE5平台开发环境92

3.5.1SE5应用系统开发的硬件环境92

3.5.2SE5应用系统开发的软件环境93

第4章图像分类/96

4.1图像分类任务介绍96

4.2典型分类网络解析97

4.2.1LeNet5手写数字识别神经网络97

4.2.2AlexNet图像分类网络99

4.2.3VGGNet图像分类网络102

4.2.4GoogLeNet图像分类网络106

4.2.5ResNet残差图像分类网络110

4.2.6DenseNet密集连接卷积网络115

4.2.7SENet压缩激励图像分类网络119

4.3实践项目一: 基于LeNet5神经网络的手写数字识别120

4.3.1实践项目内容120

4.3.2微调的LeNet5网络结构121

4.3.3TensorFlow 2.x框架下程序实现122

4.3.4LeNet5模型训练和测试过程125

4.3.5LeNet5网络模型在SE5上的部署125

4.4实践项目二: 基于ResNet神经网络的猫狗分类130

4.4.1实践项目内容130

4.4.2Dogs vs. Cats数据集简介130

4.4.3ResNet18网络结构130

4.4.4PyTorch框架下程序实现132

4.4.5ResNet18模型训练和测试过程136

4.4.6ResNet18网络模型在SE5上的部署137

第5章目标检测/142

5.1目标检测任务介绍142

5.1.1目标检测任务142

5.1.2预备知识143

5.1.3评估准则147

5.2两阶段目标检测算法150

5.2.1RCNN150

5.2.2Fast RCNN151

5.2.3Faster RCNN152

5.3单阶段目标检测算法160

5.3.1YOLOv1160

5.3.2YOLOv2165

5.3.3YOLOv3172

5.3.4YOLOv4175

5.3.5YOLOv5180

5.3.6FCOS185

5.3.7DETR188

5.4实践项目: 基于YOLOv5s的目标检测190

5.4.1实践项目内容190

5.4.2YOLOv5s网络结构190

5.4.3PyTorch框架下程序实现190

5.4.4YOLOv5s网络模型训练和测试过程196

5.4.5YOLOv5s网络模型在SE5上的部署197

第6章语义分割/200

6.1语义分割任务介绍200

6.1.1语义分割任务200

6.1.2预备知识200

6.1.3评估准则201

6.2典型语义分割网络203

6.2.1FCN203

6.2.2UNet205

6.2.3SegNet206

6.2.4PSPNet208

6.2.5ICNet210

6.2.6DeepLab系列214

6.3实践项目: 基于ICNet的语义分割217

6.3.1实践项目内容217

6.3.2数据集217

6.3.3ICNet网络结构218

6.3.4TensorFlow框架下程序实现218

6.3.5ICNet网络模型训练和测试过程226

6.3.6ICNet网络模型在SE5上的部署227

第7章实例分割/230

7.1实例分割任务介绍230

7.1.1实例分割任务230

7.1.2评估准则230

7.2典型实例分割网络231

7.2.1Mask RCNN231

7.2.2YOLACT与YOLACT++237

7.2.3SOLO和SOLOv2243

7.3实践项目: 基于Mask RCNN的实例分割251

7.3.1实践项目内容251

7.3.2Mask RCNN网络结构251

7.3.3TensorFlow框架下程序实现251

7.3.4Mask RCNN网络测试过程256

7.3.5Mask RCNN网络模型在SE5上的部署256

第8章人脸检测与识别/258

8.1人脸检测与识别任务介绍258

8.1.1人脸检测与识别及其应用258

8.1.2人脸识别系统构成258

8.1.3常用数据集介绍259

8.1.4评估准则260

8.2人脸检测网络262

8.2.1MTCNN人脸检测网络262

8.2.2RetinaFace人脸检测网络264

8.3人脸对齐268

8.4人脸特征提取网络269

8.4.1人脸特征提取网络原理269

8.4.2FaceNet272

8.4.3ArcFace/InsightFace275

8.5实践项目一: 基于PC的MTCNN+ArcFace实时人脸检测和识别281

8.5.1实践项目内容281

8.5.2PyTorch框架下程序实现281

8.5.3人脸识别系统测试290

8.6实践项目二: 基于SE5的RetinaFace+FaceNet实时人脸检测和识别291

8.6.1实践项目内容291

8.6.2系统方案291

8.6.3PyTorch框架下程序实现292

8.6.4人脸识别系统测试297

第9章循环神经网络/299

9.1循环神经网络原理299

9.1.1循环神经网络299

9.1.2长短期记忆网络301

9.1.3门控循环单元网络302

9.1.4双向循环神经网络303

9.2实践项目: 基于LSTM的股票预测304

9.2.1实践项目内容304

9.2.2数据集304

9.2.3股票预测方法304

9.2.4TensorFlow框架下程序实现306

9.2.5LSTM网络模型训练和测试过程311

9.2.6LSTM网络模型在SE5上的部署312

参考文献/3151.1人工智能概述1

1.1.1人工智能在各领域中的应用1

1.1.2人工智能、机器学习和深度学习3

1.2深度学习的基本原理5

1.2.1神经元5

1.2.2人工神经网络8

1.2.3反向传播算法11

1.2.4神经网络的数据结构——张量18

1.3卷积神经网络18

1.3.1卷积层19

1.3.2池化层21

1.3.3归一化层21

1.3.4全连接层22

1.3.5Softmax函数22

1.3.6损失函数23

1.3.7卷积神经网络的特点24

1.3.8卷积神经网络的发展25

1.4迁移学习26

1.5模型训练超参数27

1.6深度学习在计算机视觉中的典型应用28

1.7数据集29

1.7.1数据集的划分30

1.7.2数据集的预处理30

1.7.3数据集的标注33

1.7.4常用数据集35

1.8深度学习框架47

1.9深度学习的计算特点47

第2章深度学习的计算平台/49

2.1神经网络计算加速芯片512.1.1神经网络的计算特点51

2.1.2神经网络的计算芯片52

2.2TPU架构与原理54

2.2.1谷歌TPU架构与原理56

2.2.2算能TPU架构与原理61

2.3算能TPU硬件架构及产品形态63

2.3.1算能TPU的芯片硬件架构63

2.3.2算能TPU的产品形态65

2.4算能TPU软件架构65

2.4.1实时视频流处理方案66

2.4.2深度学习软件开发工具包67

2.4.3离线模型转换68

2.4.4在线模型推理69

2.4.5自定义算子69

2.4.6模型量化加速70

2.4.7高级接口编程库70

〖1〗深度学习算法与实践目录〖3〗〖3〗第3章深度学习编程环境操作基础/72

3.1Linux入门72

3.1.1Linux系统的安装简介72

3.1.2Linux系统的常用命令73

3.1.3Linux的文本编辑器75

3.2Python入门75

3.2.1Python环境的安装和使用75

3.2.2PyCharm集成开发环境的安装和使用76

3.2.3常用Python库79

3.2.4Python虚拟环境79

3.3TensorFlow入门81

3.3.1TensorFlow的安装81

3.3.2TensorFlow的基本操作82

3.3.3使用TensorFlow实现手写数字识别85

3.4PyTorch入门87

3.4.1PyTorch的安装87

3.4.2PyTorch的基本操作88

3.4.3使用PyTorch实现手写数字识别89

3.5SE5平台开发环境92

3.5.1SE5应用系统开发的硬件环境92

3.5.2SE5应用系统开发的软件环境93

第4章图像分类/96

4.1图像分类任务介绍96

4.2典型分类网络解析97

4.2.1LeNet5手写数字识别神经网络97

4.2.2AlexNet图像分类网络99

4.2.3VGGNet图像分类网络102

4.2.4GoogLeNet图像分类网络106

4.2.5ResNet残差图像分类网络110

4.2.6DenseNet密集连接卷积网络115

4.2.7SENet压缩激励图像分类网络118

4.3实践项目一: 基于LeNet5神经网络的手写数字识别120

4.3.1实践项目内容120

4.3.2微调的LeNet5网络结构121

4.3.3TensorFlow 2.x框架下程序实现121

4.3.4LeNet5模型训练和测试过程124

4.3.5LeNet5网络模型在SE5上的部署125

4.4实践项目二: 基于ResNet神经网络的猫狗分类129

4.4.1实践项目内容129

4.4.2Dogs vs. Cats数据集简介129

4.4.3ResNet18网络结构130

4.4.4PyTorch框架下程序实现131

4.4.5ResNet18模型训练和测试过程135

4.4.6ResNet18网络模型在SE5上的部署136

第5章目标检测/141

5.1目标检测任务介绍141

5.1.1目标检测任务141

5.1.2预备知识142

5.1.3评估准则146

5.2两阶段目标检测算法149

5.2.1RCNN149

5.2.2Fast RCNN150

5.2.3Faster RCNN151

5.3单阶段目标检测算法159

5.3.1YOLOv1159

5.3.2YOLOv2164

5.3.3YOLOv3171

5.3.4YOLOv4174

5.3.5YOLOv5179

5.3.6FCOS184

5.3.7DETR188

5.4实践项目: 基于YOLOv5s的目标检测189

5.4.1实践项目内容189

5.4.2YOLOv5s网络结构190

5.4.3PyTorch框架下程序实现191

5.4.4YOLOv5s网络模型训练和测试过程195

5.4.5YOLOv5s网络模型在SE5上的部署197

第6章语义分割/200

6.1语义分割任务介绍200

6.1.1语义分割任务200

6.1.2预备知识200

6.1.3评估准则201

6.2典型语义分割网络203

6.2.1FCN203

6.2.2UNet205

6.2.3SegNet206

6.2.4PSPNet207

6.2.5ICNet210

6.2.6DeepLab系列214

6.3实践项目: 基于ICNet的语义分割217

6.3.1实践项目内容217

6.3.2数据集217

6.3.3ICNet网络结构218

6.3.4TensorFlow框架下程序实现218

6.3.5ICNet网络模型训练和测试过程226

6.3.6ICNet网络模型在SE5上的部署227

第7章实例分割/230

7.1实例分割任务介绍230

7.1.1实例分割任务230

7.1.2评估准则230

7.2典型实例分割网络231

7.2.1Mask RCNN231

7.2.2YOLACT与YOLACT++237

7.2.3SOLO和SOLOv2243

7.3实践项目: 基于Mask RCNN的实例分割251

7.3.1实践项目内容251

7.3.2Mask RCNN网络结构251

7.3.3TensorFlow框架下程序实现251

7.3.4Mask RCNN网络测试过程256

7.3.5Mask RCNN网络模型在SE5上的部署256

第8章人脸检测与识别/258

8.1人脸检测与识别任务介绍258

8.1.1人脸检测与识别及其应用258

8.1.2人脸识别系统构成258

8.1.3常用数据集介绍259

8.1.4评估准则260

8.2人脸检测网络262

8.2.1MTCNN人脸检测网络262

8.2.2RetinaFace人脸检测网络264

8.3人脸对齐268

8.4人脸特征提取网络269

8.4.1人脸特征提取网络原理269

8.4.2FaceNet272

8.4.3ArcFace/InsightFace275

8.5实践项目一: 基于PC的MTCNN+ArcFace实时人脸检测和识别281

8.5.1实践项目内容281

8.5.2PyTorch框架下程序实现281

8.5.3人脸识别系统测试290

8.6实践项目二: 基于SE5的RetinaFace+FaceNet实时人脸检测和识别291

8.6.1实践项目内容291

8.6.2系统方案291

8.6.3PyTorch框架下程序实现292

8.6.4人脸识别系统测试297

第9章循环神经网络/299

9.1循环神经网络原理299

9.1.1循环神经网络299

9.1.2长短期记忆网络301

9.1.3门控循环单元网络302

9.1.4双向循环神经网络303

9.2实践项目: 基于LSTM的股票预测304

9.2.1实践项目内容304

9.2.2数据集304

9.2.3股票预测方法304

9.2.4TensorFlow框架下程序实现306

9.2.5LSTM网络模型训练和测试过程311

9.2.6LSTM网络模型在SE5上的部署312

参考文献/315