輕松學會TensorFlow 2.0人工智能深度學習應用開發
內容描述
本書從介紹深度學習和重要入門知識入手,通過範例講解TensorFlow的應用開發。本書文字清晰、嚴謹,並輔以簡潔明瞭的插圖說明,同時提供步驟細致的範例程序教學,讓讀者可以輕松理解並掌握深度學習原理和TensorFlow開發方法。 本書分為12章,內容包括:環境安裝、TensorFlow 2.0介紹、回歸問題、二分類問題、多分類問題、神經網絡訓練技巧、TensorFlow 2.0高級技巧、TensorBoard高級技巧、捲積神經網絡經典架構、遷移學習、變分自編碼器和生成式對抗網絡。 本書適合TensorFlow深度學習自學者、深度學習開發人員、人工智能行業咨詢顧問等閱讀,也適合作為高等院校和培訓學校人工智能及其相關專業師生的教學參考書。
目錄大綱
目錄
第1章 環境安裝 1
1.1 Python安裝 1
1.1.1 Windows安裝方法 1
1.1.2 Ubuntu安裝方法 2
1.2 TensorFlow安裝 2
1.2.1 Windows安裝方法 2
1.2.2 Ubuntu安裝方法 5
1.3 Python 擴充套件安裝 8
1.4 Jupyter Notebook 9
1.4.1 Windows安裝方法 9
1.4.2 Ubuntu安裝方法 10
1.4.3 設置並建立項目 10
1.4.4 常用快捷鍵 11
1.4.5 Jupyter Notebook操作練習 11
1.5 本書的範例程序 13
1.5.1 在Windows中打開項目 14
1.5.2 在Ubuntu中打開項目 14
第2章 TensorFlow 2.0介紹 16
2.1 什麽是深度學習 16
2.2 建立項目 17
2.3 TensorFlow介紹 18
2.4 TensorFlow 2.0的變化 20
2.5 Eager Execution 21
2.5.1 Eager Execution介紹 21
2.5.2 TensorFlow基本運算 22
2.6 Keras 24
2.6.1 Keras介紹 24
2.6.2 序貫模型 26
2.6.3 Functional API 28
2.7 tf.data 32
2.7.1 tf.data介紹 32
2.7.2 基本操作 34
第3章 回歸問題 39
3.1 深度神經網絡 39
3.1.1 神經網絡簡史 39
3.1.2 神經網絡原理 40
3.1.3 全連接 41
3.1.4 損失函數MSE 和MAE 41
3.1.5 神經網絡權重更新 43
3.1.6 神經網絡訓練步驟 44
3.2 Kaggle介紹 46
3.3 實驗一:房價預測模型 47
3.3.1 數據集介紹 47
3.3.2 新建項目 48
3.3.3 程序代碼 49
3.4 TensorBoard 介紹 56
3.5 實驗二:過擬合問題 58
3.5.1 過擬合說明 58
3.5.2 程序代碼 60
3.5.3 TensorBoard 數據分析 64
3.6 參考文獻 65
第4章 二分類問題 67
4.1 機器學習的四大類別 67
4.2 二分類問題介紹 69
4.2.1 邏輯回歸 69
4.2.2 Sigmoid 69
4.2.3 二分類交叉熵 69
4.2.4 獨熱編碼 71
4.3 實驗:精靈寶可夢對戰預測 72
4.3.1 數據集介紹 72
4.3.2 新建項目 75
4.3.3 程序代碼 76
4.4 參考文獻 91
第5章 多分類問題 94
5.1 捲積神經網絡 94
5.1.1 捲積神經網絡簡介 94
5.1.2 捲積神經網絡架構 95
5.1.3 捲積神經網絡的原理 102
5.2 多分類問題介紹 105
5.2.1 Softmax 105
5.2.2 多分類交叉熵 106
5.2.3 數據增強 107
5.3 實驗:CIFAR-10圖像識別 108
5.3.1 數據集介紹 108
5.3.2 TensorFlow Datasets 109
5.3.3 新建項目 110
5.3.4 程序代碼 111
5.4 參考文獻 127
第6章 神經網絡訓練技巧 129
6.1 反向傳播 129
6.2 權重初始化 133
6.2.1 正態分佈 133
6.2.2 Xavier/Glorot 初始化 135
6.2.3 He初始化 137
6.3 批量歸一化 139
6.3.1 批量歸一化介紹 139
6.3.2 批量歸一化網絡架構 140
6.4 實驗一:使用CIFAR-10數據集實驗 3種權重初始化方法 141
6.4.1 新建項目 141
6.4.2 建立圖像增強函數 142
6.4.3 程序代碼 144
6.4.4 TensorBoard可視化權重分佈 148
6.5 實驗二:使用CIFAR-10數據集實驗 批量歸一化方法 151
6.6 總結各種網絡架構的性能比較 154
6.7 參考文獻 155
第7章 TensorFlow 2.0高級技巧 157
7.1 TensorFlow高級技巧 157
7.1.1 自定義網絡層 158
7.1.2 自定義損失函數 159
7.1.3 自定義評價指標函數 159
7.1.4 自定義回調函數 160
7.2 Keras高級API與自定義API比較 161
7.2.1 網絡層 161
7.2.2 損失函數 162
7.2.3 評價指標函數 163
7.2.4 回調函數 165
7.3 實驗:比較Keras 高級API和 自定義API兩種網絡訓練的結果 166
7.3.1 新建項目 166
7.3.2 程序代碼 167
第8章 TensorBoard高級技巧 176
8.1 TensorBoard的高級技巧 176
8.1.1 tf.summary 177
8.1.2 tf.summary.scalar 177
8.1.3 tf.summary.image 179
8.1.4 tf.summary.text 181
8.1.5 tf.summary.audio 182
8.1.6 tf.summary.histogram 183
8.2 實驗一:使用tf.summary.image記錄訓練結果 186
8.2.1 新建項目 186
8.2.2 程序代碼 187
8.3 實驗二:使用TensorBoard超參數調校工具來 訓練多個網絡模型 195
8.3.1 啟動TensorBoard(命令行) 196
8.3.2 程序代碼 197
第9章 捲積神經網絡經典架構 205
9.1 神經網絡架構 205
9.1.1 LeNet 205
9.1.2 AlexNet 206
9.1.3 VGG 206
9.1.4 GoogLeNet 207
9.1.5 ResNet 210
9.1.6 總結各種網絡架構的比較 211
9.2 實驗:實現Inception V3網絡架構 212
9.2.1 新建項目 213
9.2.2 Keras Applications 214
9.2.3 TensorFlow Hub 217
9.3 參考文獻 222
第10章 遷移學習 224
10.1 認識遷移學習 224
10.1.1 遷移學習介紹 224
10.1.2 遷移學習訓練技巧 225
10.2 實驗:遷移學習範例 230
10.2.1 新建項目 230
10.2.2 數據集介紹 231
10.2.3 程序代碼 231
10.3 參考文獻 237
第11章 變分自編碼器 239
11.1 自編碼器介紹 239
11.2 變分自編碼器介紹 241
11.3 變分自解碼器的損失函數 243
11.4 實驗:變分自編碼器程序代碼的實現 244
11.4.1 建立項目 245
11.4.2 數據集介紹 247
11.4.3 變分自編碼器項目說明 248
11.4.4 變分自編碼器訓練和生成圖像 254
11.5 參考文獻 257
第12章 生成式對抗網絡 258
12.1 認識生成式對抗網絡 258
12.1.1 生成式對抗網絡介紹 258
12.1.2 生成式對抗網絡訓練及損失函數 260
12.2 GAN、WGAN、WGAN-GP的演進 262
12.2.1 生成式對抗網絡的問題 262
12.2.2 Wasserstein距離介紹 264
12.2.3 WGAN-GP 損失函數 266
12.3 實驗:WGAN-GP程序代碼的實現 268
12.3.1 建立項目 269
12.3.2 數據集介紹 271
12.3.3 WGAN-GP 項目說明 272
12.4 參考文獻 281
作者介紹
黃士嘉,科技大學電子工程系教授。