●序言一
序言二
前言第1章概述1
1.1人工智能1
1.1.1什麼是人工智能1
1.1.2人工智能的發展歷史1
1.1.3人工智能的主要方法4
1.2智能計算繫統8
1.2.1什麼是智能計算繫統8
1.2.2為什麼需要智能計算繫統8
1.2.3智能計算繫統的發展8
1.3驅動範例11
1.4本章小結13
習題13
第2章神經網絡基礎14
2.1從機器學習到神經網絡14
2.1.1基本概念14
2.1.2線性回歸15
2.1.3感知機17
2.1.4兩層神經網絡——多層感知機19
2.1.5深度學習(深層神經網絡)20
2.1.6神經網絡發展歷程21
2.2神經網絡訓練23
2.2.1正向傳播24
2.2.2反向傳播25
2.3神經網絡設計原則27
2.3.1網絡的拓撲結構27
2.3.2激活函數27
2.3.3損失函數30
2.4過擬合與正則化32
2.4.1過擬合33
2.4.2正則化34
2.5交叉驗證37
2.6本章小結39
習題39
第3章深度學習41
3.1適合圖像處理的卷積神經網絡41
3.1.1卷積神經網絡的組成42
3.1.2卷積層43
3.1.3池化層48
3.1.4全連接層49
3.1.5softmax層50
3.1.6卷積神經網絡總體結構50
3.2基於卷積神經網絡的圖像分類算法52
3.2.1AlexNet53
3.2.2VGG56
3.2.3Inception59
3.2.4ResNet66
3.3基於卷積神經網絡的圖像目標檢測算法69
3.3.1評價指標69
3.3.2RCNN繫列72
3.3.3YOLO78
3.3.4SSD81
3.3.5小結83
3.4序列模型:循環神經網絡83
3.4.1RNN84
3.4.2LSTM88
3.4.3GRU89
3.4.4小結90
3.5生成對抗網絡91
3.5.1模型組成91
3.5.2GAN訓練92
3.5.3GAN結構94
3.6驅動範例96
3.6.1基於卷積神經網絡的圖像風格遷移算法96
3.6.2實時圖像風格遷移算法98
3.7本章小結100
習題100
第4章編程框架使用101
4.1為什麼需要編程框架101
4.2編程框架概述102
4.2.1通用編程框架概述102
4.2.2TensorFlow概述102
4.3TensorFlow編程模型及基本用法103
4.3.1計算圖104
4.3.2操作105
4.3.3張量106
4.3.4會話110
4.3.5變量114
4.3.6占位符116
4.3.7隊列117
4.4基於TensorFlow實現深度學習預測117
4.4.1讀取輸入樣本118
4.4.2定義基本118
4.4.3創建神經網絡模型122
4.4.4計算神經網絡模型輸出123
4.5基於TensorFlow實現深度學習訓練123
4.5.1加載數據123
4.5.2模型訓練129
4.5.3模型保存135
4.5.4圖像風格遷移訓練的實現137
4.6本章小結139
習題139
第5章編程框架機理141
5.1TensorFlow設計原則141
5.1.1高性能141
5.1.2易開發142
5.1.3可移植142
5.2TensorFlow計算圖機制142
5.2.1一切都是計算圖143
5.2.2計算圖本地執行150
5.2.3計算圖分布式執行154
5.3TensorFlow繫統實現155
5.3.1整體架構155
5.3.2計算圖執行模塊156
5.3.3設備抽像和管理161
5.3.4網絡和通信162
5.3.5算子實現167
5.4編程框架對比169
5.4.1TensorFlow170
5.4.2PyTorch171
5.4.3MXNet171
5.4.4Caffe172
5.5本章小結172
習題172
第6章深度學習處理器原理174
6.1深度學習處理器概述174
6.1.1深度學習處理器的意義174
6.1.2深度學習處理器的發展歷史175
6.1.3設計思路177
6.2目標算法分析178
6.2.1計算特征178
6.2.2訪存特征181
6.3深度學習處理器DLP結構186
6.3.1指令集186
6.3.2流水線190
6.3.3運算部件190
6.3.4訪存部件193
6.3.5算法到芯片的映射194
6.3.6小結195
6.4優化設計195
6.4.1基於標量MAC的運算
部件195
6.4.2稀疏化198
6.4.3低位寬199
6.5性能評價201
6.5.1性能指標201
6.5.2測試基準程序202
6.5.3影響性能的因素203
6.6其他加速器203
6.6.1GPU架構簡述204
6.6.2FPGA架構簡述204
6.6.3DLP與GPU、FPGA的對比205
6.7本章小結206
習題206
第7章深度學習處理器架構207
7.1單核深度學習處理器207
7.1.1總體架構208
7.1.2控制模塊209
7.1.3運算模塊212
7.1.4215
7.1.5小結215
7.2多核深度學習處理器216
7.2.1總體架構216
7.2.2Cluster架構217
7.2.3互聯架構223
7.2.4小結224
7.3本章小結225
習題225
第8章智能編程語言227
8.1為什麼需要智能編程語言227
8.1.1語義鴻溝228
8.1.2硬件鴻溝230
8.1.3平臺鴻溝232
8.1.4小結233
8.2智能計算繫統抽像架構234
8.2.1抽像硬件架構234
8.2.2典型智能計算繫統235
8.2.3控制模型236
8.2.4計算模型236
8.2.5存儲模型237
8.3智能編程模型238
8.3.1異構編程模型239
8.3.2通用智能編程模型242
8.4智能編程語言基礎247
8.4.1語法概述247
8.4.2數據類型248
8.4.3宏、常量與內置變量250
8.4.4I/O操作語句250
8.4.5標量計算語句252
8.4.6張量計算語句252
8.4.7控制流語句252
8.4.8串行程序示例253
8.4.9並行程序示例254
8.5智能應用編程接口255
8.5.1Kernel函數接口255
8.5.2運行時接口257
8.5.3使用示例259
8.6智能應用功能調試262
8.6.1功能調試方法262
8.6.2功能調試接口266
8.6.3功能調試工具269
8.6.4精度調試方法272
8.6.5功能調試實踐272
8.7智能應用性能調優280
8.7.1性能調優方法280
8.7.2性能調優接口282
8.7.3性能調優工具286
8.7.4性能調優實踐287
8.8基於智能編程語言的繫統開發294
8.8.1高性能庫算子開發294
8.8.2編程框架算子開發300
8.8.3繫統開發與優化實踐304
習題321
第9章實驗323
9.1基礎實驗:圖像風格遷移323
9.1.1基於智能編程語言的算子實現323
9.1.2圖像風格遷移的實現326
9.1.3風格遷移實驗的操作步驟330
9.2拓展實驗:物體檢測333
9.2.1基於智能編程語言的算子實現333
9.2.2物體檢測的實現337
9.3拓展練習337
附錄A計算機體繫結構基礎340
附錄B實驗環境說明345
參考文獻348
後記356
本書通過一個貫穿始終的應用案例——圖像風格遷移,全面繫統地介紹智能計算繫統的軟硬件技術棧。首先概述人工智能和智能計算繫統(第1章);接下來介紹完成應用所必要的神經網絡和深度學習算法知識(第2、3章);然後介紹支撐算法在智能芯片上運行的編程框架(第4、5章);再往下是智能芯片,即引導學生設計一款滿足圖像風格遷移應用需求的深度學習處理器(第6、7章);接下來介紹如何利用智能編程語言BCL提升編寫智能算法的生產效率(第8章);最後以具體實驗把所學知識點串聯起來,打通知識結構的“任督二脈”(第9章)。
本書由中科院計算所、軟件所的專家學者傾心寫就,領銜作者陳雲霽帶領的團隊曾研制了國際上少有深度學習處理器芯片“寒武紀1號”,這本教材凝聚了作者團隊多年的科研和教學成果,填補了人工智能專業繫統類課程的教材空白,適合作為高等院校人工智能及相關專業的教材。