任務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