TensorFlow深度學習應用開發實戰

谷瑞、陳強、譚冠蘭

立即出貨

  • TensorFlow深度學習應用開發實戰-preview-1
  • TensorFlow深度學習應用開發實戰-preview-2
  • TensorFlow深度學習應用開發實戰-preview-3
TensorFlow深度學習應用開發實戰-preview-1

相關主題

商品描述

隨著人工智能技術的發展,深度學習成為最受關註的領域之一。在深度學習的諸多開發框架中, 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.1 TensorFlow ????????????????????????????????????????????????????????????????????????????????????????????????????? 7

1.2.2 Caffe ??????????????????????????????????????????????????????????????????????????????????????????????????????????????? 8

1.2.3 PyTorch??????????????????????????????????????????????????????????????????????????????????????????????????????????? 8

1.2.4 MXNet ???????????????????????????????????????????????????????????????????????????????????????????????????????????? 8

1.2.5 不同框架的對比????????????????????????????????????????????????????????????????????????????????????????????? 9

1.3 開發環境搭建???????????????????????????????????????????????????????????????????????????????????????????????????????????? 9

1.3.1 Windows 環境下的安裝配置????????????????????????????????????????????????????????????????????????? 9

1.3.2 Linux 環境下的安裝配置??????????????????????????????????????????????????????????????????????????????20

1.4 本章小結??????????????????????????????????????????????????????????????????????????????????????????????????????????????????25

1.5 本章習題??????????????????????????????????????????????????????????????????????????????????????????????????????????????????26

任務2 構建二維數據擬合模型????????????????????????????????????????????????????????????????????????????????????? 28

2.1 TensorFlow 運行機制???????????????????????????????????????????????????????????????????????????????????????????????28

2.1.1 TensorFlow 系統架構????????????????????????????????????????????????????????????????????????????????????29

2.1.2 構建計算圖???????????????????????????????????????????????????????????????????????????????????????????????????30

2.1.3 在會話中運行計算圖????????????????????????????????????????????????????????????????????????????????????31

2.1.4 指定GPU 設備??????????????????????????????????????????????????????????????????????????????????????????????34

2.2 TensorFlow 數據模型???????????????????????????????????????????????????????????????????????????????????????????????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.1 M-P 神經元擬合原理???????????????????????????????????????????????????????????????????????????????????????????????55

3.1.1 M-P 神經元模型????????????????????????????????????????????????????????????????????????????????????????????55

3.1.2 訓練神經元???????????????????????????????????????????????????????????????????????????????????????????????????58

3.2 激活函數實現神經元非線化???????????????????????????????????????????????????????????????????????????????????59

3.2.1 激活函數的作用????????????????????????????????????????????????????????????????????????????????????????????59

3.2.2 Sigmoid 激活函數?????????????????????????????????????????????????????????????????????????????????????????59

3.2.3 Tanh 激活函數???????????????????????????????????????????????????????????????????????????????????????????????61

3.2.4 Relu 激活函數???????????????????????????????????????????????????????????????????????????????????????????????62

3.3 BP 神經網絡模型?????????????????????????????????????????????????????????????????????????????????????????????????????63

3.3.1 BP 神經網絡結構??????????????????????????????????????????????????????????????????????????????????????????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.1 MNIST 數據集?????????????????????????????????????????????????????????????????????????????????????????????????????????86

4.1.1 MNIST 數據集簡介???????????????????????????????????????????????????????????????????????????????????????86

4.1.2 下載MNIST 數據集??????????????????????????????????????????????????????????????????????????????????????88

4.1.3 圖像的矩陣表示????????????????????????????????????????????????????????????????????????????????????????????89

4.1.4 標簽的獨熱表示????????????????????????????????????????????????????????????????????????????????????????????90

4.2 構建識別MNIST 模型?????????????????????????????????????????????????????????????????????????????????????????????91

4.2.1 MNIST 手寫字模型簡介???????????????????????????????????????????????????????????????????????????????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

任務5 LeNet-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.3 DropOut 機制??????????????????????????????????????????????????????????????????????????????????????????????? 116

5.3 捲積高級操作????????????????????????????????????????????????????????????????????????????????????????????????????????? 118

5.3.1 多通道捲積????????????????????????????????????????????????????????????????????????????????????????????????? 118

5.3.2 多捲積核????????????????????????????????????????????????????????????????????????????????????????????????????? 120

5.3.3 反捲積????????????????????????????????????????????????????????????????????????????????????????????????????????? 122

5.4 LeNet-5 識別手寫字??????????????????????????????????????????????????????????????????????????????????????????????? 124

5.4.1 LeNet-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.1 CIFAR-10 數據集簡介??????????????????????????????????????????????????????????????????????????????????????????? 136

6.1.1 CIFAR-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.5 ImageNet 圖像識別模型????????????????????????????????????????????????????????????????????????????????????????? 155

6.5.1 ImageNet 數據集簡介????????????????????????????????????????????????????????????????????????????????? 155

6.5.2 歷代ImageNet 識別模型???????????????????????????????????????????????????????????????????????????? 156

6.6 本章小結???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 158

6.7 本章習題???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 158

任務7 可視化性別識別模型?????????????????????????????????????????????????????????????????????????????????????? 160

7.1 在程序中使用TensorBoard ??????????????????????????????????????????????????????????????????????????????????? 160

7.1.1 TensorBoard 基本介紹???????????????????????????????????????????????????????????????????????????????? 160

7.1.2 TensorBoard 使用步驟???????????????????????????????????????????????????????????????????????????????? 161

7.2 TensorBoard 可視化??????????????????????????????????????????????????????????????????????????????????????????????? 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.1 Dataset 的基本機制???????????????????????????????????????????????????????????????????????????????????????????????? 182

8.1.1 Dataset 數據處理框架????????????????????????????????????????????????????????????????????????????????? 182

8.1.2 創建Dataset ???????????????????????????????????????????????????????????????????????????????????????????????? 183

8.2 Iterator 迭代數據集???????????????????????????????????????????????????????????????????????????????????????????????? 184

8.2.1 單次迭代器????????????????????????????????????????????????????????????????????????????????????????????????? 184

8.2.2 可初始化迭代器?????????????????????????????????????????????????????????????????????????????????????????? 185

8.2.3 可重新初始化迭代器?????????????????????????????????????????????????????????????????????????????????? 186

8.2.4 可饋送迭代器?????????????????????????????????????????????????????????????????????????????????????????????? 187

8.3 Dataset 數據批處理???????????????????????????????????????????????????????????????????????????????????????????????? 188

8.3.1 直接批處理????????????????????????????????????????????????????????????????????????????????????????????????? 188

8.3.2 預處理後批處理?????????????????????????????????????????????????????????????????????????????????????????? 189

8.4 Dataset 數據集構建與解析???????????????????????????????????????????????????????????????????????????????????? 190

8.4.1 數據集預處理?????????????????????????????????????????????????????????????????????????????????????????????? 190

8.4.2 構建TFRecordDataset 數據集???????????????????????????????????????????????????????????????????? 191

8.4.3 從tf.train.Example 中解析數據??????????????????????????????????????????????????????????????????? 192

8.5 本章小結???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 193

8.6 本章習題???????????????????????????????????????????????????????????????????????????????????????????????????????????????? 194

附錄人工智能數學基礎????????????????????????????????????????????????????????????????????????? 196