TensorFlow深度學習應用開發實戰
內容描述
隨著人工智能技術的發展,深度學習成為最受關註的領域之一。在深度學習的諸多開發框架中, TensorFlow 是最受歡迎的開發框架。 本書以培養人工智能編程思維和技能為核心,以工作過程為導向,採用任務驅動的方式組織內容。全 書共分為8 個任務,任務1 介紹深度學習的發展歷程、應用領域以及開發環境的搭建過程;任務2 介紹 TensorFlow 框架的基本原理、計算圖、會話、張量等概念;任務3 和任務4 闡述全連接神經網絡模型、神 經網絡優化方法及反向傳播算法;任務5 和任務6 討論捲積神經網絡、捲積、池化的原理;任務7 和任務8 演示網絡模型可視化操作步驟及製作與解析數據集的方法。 本書既可作為大數據、人工智能等相關專業應用型人才的教學用書,也可以作為TensorFlow 初學者的 學習參考書。
目錄大綱
目錄
任務1深度學習簡介與開發環境搭建1
1.1深度學習的發展及應用1
1.1.1深度學習的發展歷程1
1.1.2深度學習的應用領域4
1.2深度學習框架簡介7
1.2.1TensorFlow7
1.2.2Caffe8
1.2.3PyTorch8
1.2.4MXNet8
1.2.5不同框架的對比9
1.3開發環境搭建9
1.3.1Windows環境下的安裝配置9
1.3.2Linux環境下的安裝配置20
1.4本章小結25
1.5本章習題26
任務2構建二維數據擬合模型28
2.1TensorFlow運行機制28
2.1.1TensorFlow系統架構29
2.1.2構建計算圖30
2.1.3在會話中運行計算圖31
2.1.4指定GPU設備34
2.2TensorFlow數據模型35
2.2.1張量及屬性35
2.2.2類型轉換38
2.2.3形狀變換39
2.3變量的定義與使用40
2.3.1變量的定義與初始化40
2.3.2隨機初始化變量41
2.3.3獲取變量42
2.3.4共享變量43
2.4佔位符與數據餵入機制44
2.4.1佔位符定義44
2.4.2數據餵入45
2.5模型的保存與恢復45
2.5.1模型保存45
2.5.2模型恢復47
2.6構建二維數據擬合模型48
2.6.1準備數據48
2.6.2搭建模型49
2.6.3反向傳播49
2.6.4迭代訓練50
2.6.5使用模型51
2.7本章小結51
2.8本章習題52
任務3構建泰坦尼克號生還率模型55
3.1M-P神經元擬合原理55
3.1.1M-P神經元模型55
3.1.2訓練神經元58
3.2激活函數實現神經元非線化59
3.2.1激活函數的作用59
3.2.2Sigmoid激活函數59
3.2.3Tanh激活函數61
3.2.4Relu激活函數62
3.3BP神經網絡模型63
3.3.1BP神經網絡結構64
3.3.2神經網絡向前傳輸推導65
3.3.3神經網絡向前傳輸實踐67
3.3.4構建BP神經網絡模型68
3.4損失函數調整誤差71
3.4.1交叉熵損失函數71
3.4.2均方誤差損失函數72
3.5梯度下降72
3.5.1梯度下降的作用及常用方法72
3.5.2梯度下降使模型最小偏差實踐74
3.6模型優化75
3.6.1學習率控制參數更新速度75
3.6.2正則化減少過擬合現象76
3.7構建泰坦尼克號生還率模型80
3.7.1數據讀取及預處理80
3.7.2搭建向前傳輸過程82
3.7.3迭代訓練82
3.8本章小結83
3.9本章習題83
任務4構建手寫字識別模型86
4.1MNIST數據集86
4.1.1MNIST數據集簡介86
4.1.2下載MNIST數據集88
4.1.3圖像的矩陣表示89
4.1.4標籤的獨熱表示90
4.2構建識別MNIST模型91
4.2.1MNIST手寫字模型簡介91
4.2.2定義模型節點參數92
4.2.3網絡向前傳輸過程93
4.2.4網絡參數優化94
4.2.5訓練並保存模型95
4.3模型驗證96
4.3.1驗證集驗證模型96
4.3.2識別自定義圖片97
4.4本章小結100
4.5本章習題100
任務5LeNet-5模型識別手寫字102
5.1卷積神經網絡結構特徵102
5.1.1卷積神經網絡簡介102
5.1.2卷積物理含義104
5.1.3網絡結構特徵106
5.2卷積神經網絡函數108
5.2.1卷積操作108
5.2.2池化操作112
5.2.3DropOut機制116
5.3卷積高級操作118
5.3.1多通道卷積118
5.3.2多卷積核120
5.3.3反捲積122
5.4LeNet-5識別手寫字124
5.4.1LeNet-5模型簡介124
5.4.2構建向前傳輸模型125
5.4.3優化模型128
5.4.4訓練保存模型130
5.4.5驗證模型131
5.5本章小結132
5.6本章習題133
任務6打造CIFAR-10圖像識別模型136
6.1CIFAR-10數據集簡介136
6.1.1CIFAR-10數據集簡介136
6.1.2下載CIFAR-10數據集137
6.2讀取CIFAR-10數據138
6.2.1讀取並顯示圖片138
6.2.2將標籤表示成獨熱139
6.3數據增強140
6.3.1圖像幾何變換140
6.3.2圖像色彩調整144
6.3.3圖像的標準化146
6.3.4圖像標註147
6.4構建CIFAR-10圖像識別模型149
6.4.1數據批量讀取149
6.4.2模型構建150
6.4.3訓練並預測154
6.5ImageNet圖像識別模型155
6.5.1ImageNet數據集簡介155
6.5.2歷代ImageNet識別模型156
6.6本章小結158
6.7本章習題158
任務7可視化性別識別模型160
7.1在程序中使用TensorBoard160
7.1.1TensorBoard基本介紹160
7.1.2TensorBoard使用步驟161
7.2TensorBoard可視化163
7.2.1標量與直方圖可視化163
7.2.2卷積過程可視化167
7.2.3訓練過程可視化171
7.3可視化性別識別模型174
7.3.1模型簡介174
7.3.2讀取數據集175
7.3.3訓練模型176
7.3.4可視化模型179
7.4本章小結180
7.5本章習題180
任務8理解tf.data數據處理框架182
8.1Dataset的基本機制182
8.1.1Dataset數據處理框架182
8.1.2創建Dataset183
8.2Iterator迭代數據集184
8.2.1單次迭代器184
8.2.2可初始化迭代器185
8.2.3可重新初始化迭代器186
8.2.4可饋送迭代器187
8.3Dataset數據批處理188
8.3.1直接批處理188
8.3.2預處理後批處理189
8.4Dataset數據集構建與解析190
8.4.1數據集預處理190
8.4.2構建TFRecordDataset數據集191
8.4.3從tf.train.Example中解析數據192
8.5本章小結193
8.6本章習題194
附錄人工智能數學基礎196
作者介紹
谷瑞,副教授、蘇州工業園區服務外包職業學院大數據技術與應用專業主任,蘇州大學高級訪問學者,英偉達計算機視覺與自然語言處理認證講師,以第一作者發表SCI、EI檢索論文5篇、主持省十三五教育科學規劃課題1項、參與企業橫向項目20餘項,具有豐富的項目實戰經驗。