目标是培养学生对智能计算完整软硬件技术栈(包括基础智能算法、智能计算编程框架、智能计算编程语言、智能芯片体系结构等)融会贯通的理解,成为智能计算系统(子系统)的设计者和开发者。
序言一
序言二
前言
第1章概述1
11人工智能1
111什么是人工智能1
112人工智能的发展历史1
113人工智能的主要方法4
12智能计算系统8
121什么是智能计算系统8
122为什么需要智能计算系统8
123智能计算系统的发展8
13驱动范例11
14本章小结13
习题13
第2章神经网络基础14
21从机器学习到神经网络14
211基本概念14
212线性回归15
213感知机17
214两层神经网络——多层感知机19
215深度学习(深层神经网络)20
216神经网络发展历程21
22神经网络训练23
221正向传播24
222反向传播25
23神经网络设计原则27
231网络的拓扑结构27
232激活函数27
233损失函数30
24过拟合与正则化32
241过拟合33
242正则化34
25交叉验证37
26本章小结39
习题39
第3章深度学习41
31适合图像处理的卷积神经网络41
311卷积神经网络的组成42
312卷积层43
313池化层48
314全连接层49
315softmax层50
316卷积神经网络总体结构50
32基于卷积神经网络的图像分类算法52
321AlexNet53
322VGG56
323Inception59
324ResNet66
33基于卷积神经网络的图像目标检测算法69
331评价指标69
332RCNN系列72
333YOLO78
334SSD81
335小结83
34序列模型:循环神经网络83
341RNN84
342LSTM88
343GRU89
344小结90
35生成对抗网络91
351模型组成91
352GAN训练92
353GAN结构94
36驱动范例96
361基于卷积神经网络的图像风格迁移算法96
362实时图像风格迁移算法98
37本章小结100
习题100
第4章编程框架使用101
41为什么需要编程框架101
42编程框架概述102
421通用编程框架概述102
422TensorFlow概述102
43TensorFlow编程模型及基本用法103
431计算图104
432操作105
433张量106
434会话110
435变量114
436占位符116
437队列117
44基于TensorFlow实现深度学习预测117
441读取输入样本118
442定义基本运算单元118
443创建神经网络模型122
444计算神经网络模型输出123
45基于TensorFlow实现深度学习训练123
451加载数据123
452模型训练129
453模型保存135
454图像风格迁移训练的实现137
46本章小结139
习题139
第5章编程框架机理141
51TensorFlow设计原则141
511高性能141
512易开发142
513可移植142
52TensorFlow计算图机制142
521一切都是计算图143
522计算图本地执行150
523计算图分布式执行154
53TensorFlow系统实现155
531整体架构155
532计算图执行模块156
533设备抽象和管理161
534网络和通信162
535算子实现167
54编程框架对比169
541TensorFlow170
542PyTorch171
543MXNet171
544Caffe172
55本章小结172
习题172
第6章深度学习处理器原理174
61深度学习处理器概述174
611深度学习处理器的意义174
612深度学习处理器的发展历史175
613设计思路177
62目标算法分析178
621计算特征178
622访存特征181
63深度学习处理器DLP结构186
631指令集186
632流水线190
633运算部件190
634访存部件193
635算法到芯片的映射194
636小结195
*64优化设计195
641基于标量MAC的运算部件195
642稀疏化198
643低位宽199
65性能评价201
651性能指标201
652测试基准程序202
653影响性能的因素203
66其他加速器203
661GPU架构简述204
662FPGA架构简述204
663DLP与GPU、FPGA的对比205
67本章小结206
习题206
*第7章 深度学习处理器架构207
71单核深度学习处理器207
711总体架构208
712控制模块209
713运算模块212
714存储单元215
715小结215
72多核深度学习处理器216
721总体架构216
722Cluster架构217
723互联架构223
724小结224
73本章小结225
习题225
第8章 智能编程语言227
81为什么需要智能编程语言227
811语义鸿沟228
812硬件鸿沟230
813平台鸿沟232
814小结233
82智能计算系统抽象架构234
821抽象硬件架构234
822典型智能计算系统235
823控制模型236
824计算模型236
825存储模型237
83智能编程模型238
831异构编程模型239
832通用智能编程模型242
84智能编程语言基础247
841语法概述247
842数据类型248
843宏、常量与内置变量250
844I/O操作语句250
845标量计算语句252
846张量计算语句252
847控制流语句252
848串行程序示例253
849并行程序示例254
85智能应用编程接口255
851Kernel函数接口255
852运行时接口257
853使用示例259
86智能应用功能调试262
861功能调试方法262
862功能调试接口266
863功能调试工具269
864精度调试方法272
865功能调试实践272
87智能应用性能调优280
871性能调优方法280
872性能调优接口282
873性能调优工具286
874性能调优实践287
88基于智能编程语言的系统开发294
881高性能库算子开发294
882编程框架算子开发300
883系统开发与优化实践304
习题321
第9章 实验323
91基础实验:图像风格迁移323
911基于智能编程语言的算子实现323
912图像风格迁移的实现326
913风格迁移实验的操作步骤330
92拓展实验:物体检测333
921基于智能编程语言的算子实现333
922物体检测的实现337
93拓展练习337
附录A 计算机体系结构基础340
附录B 实验环境说明345
参考文献348
后记356