《TensorFlow2實戰(zhàn)》首先講解深度學(xué)習(xí)和TensorFlow2的基礎(chǔ)知識,然后通過圖像處理和自然語言處理兩方面的實例,幫助讀者進一步掌握深度學(xué)習(xí)的應(yīng)用,最后通過對生成對抗網(wǎng)絡(luò)和強化學(xué)習(xí)知識的講解,帶領(lǐng)讀者精通深度學(xué)習(xí)。
《TensorFlow2實戰(zhàn)》適合想要學(xué)習(xí)和了解人工智能、深度學(xué)習(xí)技術(shù)的程序員閱讀,也可作為大專院校計算機專業(yè)師生的學(xué)習(xí)用書和培訓(xùn)學(xué)校的教材。
用簡潔易懂的例子,循序漸進幫助讀者學(xué)懂 TensorFlow 2
通過圖像處理和自然語言處理兩類實例,幫助讀者掌握深度學(xué)習(xí)的應(yīng)用
闡述對抗神經(jīng)網(wǎng)絡(luò)和強化學(xué)習(xí)的知識,使讀者進階深度學(xué)習(xí)
艾力,曾就職于暴風(fēng)大腦研究院,擔(dān)任 NLP 架構(gòu)師一職。負責(zé)暴風(fēng)大腦 NLP 引擎的設(shè)計和開發(fā)。Github 上開源了其極簡 NLP 框架 Kashgari,幫助大家把最新的 NLP 論文落地到生產(chǎn)環(huán)境。
目錄
第1章 環(huán)境配置 1
1.1 云Notebook環(huán)境簡介 1
1.2 本地Notebook環(huán)境準備 1
1.2.1 搭建Python環(huán)境 2
1.2.2 創(chuàng)建虛擬環(huán)境 2
1.2.3 安裝JupyterLab 3
1.3 安裝TensorFlow 6
1.4 本書的代碼規(guī)范 7
本章小結(jié) 8
第2章 常見工具介紹 9
2.1 NumPy 9
2.1.1 創(chuàng)建數(shù)組 10
2.1.2 數(shù)組索引 11
2.1.3 數(shù)組切片 11
2.1.4 數(shù)學(xué)計算 12
2.1.5 神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)表示 13
2.2 Pandas 14
2.2.1 讀取數(shù)據(jù) 14
2.2.2 探索數(shù)據(jù) 15
2.2.3 過濾數(shù)據(jù) 16
2.2.4 應(yīng)用方法 17
2.2.5 重構(gòu)數(shù)據(jù) 17
2.2.6 保存數(shù)據(jù) 18
2.3 Matplotlib 18
2.3.1 簡單的圖形 19
2.3.2 子圖 20
2.3.3 直方圖 21
2.3.4 標題、標簽和圖例 21
2.3.5 三維圖形 22
2.3.6 結(jié)合Pandas使用 23
本章小結(jié) 24
第3章 從零開始搭建神經(jīng)網(wǎng)絡(luò) 25
3.1 構(gòu)建神經(jīng)元 26
3.2 搭建神經(jīng)網(wǎng)絡(luò) 28
3.3 前向傳播例子 28
3.4 訓(xùn)練神經(jīng)網(wǎng)絡(luò) 30
3.4.1 損失 31
3.4.2 損失計算實例 31
3.5 優(yōu)化神經(jīng)網(wǎng)絡(luò) 32
3.6 隨機梯度下降 35
3.7 完整的代碼實現(xiàn) 36
本章小結(jié) 41
第4章 深度學(xué)習(xí)基礎(chǔ) 42
4.1 基礎(chǔ)概念 42
4.1.1 神經(jīng)元 42
4.1.2 神經(jīng)網(wǎng)絡(luò) 44
4.1.3 損失函數(shù) 45
4.1.4 神經(jīng)網(wǎng)絡(luò)訓(xùn)練 45
4.1.5 深度學(xué)習(xí)的主要術(shù)語 46
4.1.6 深度學(xué)習(xí)的4個分支 48
4.2 評估深度學(xué)習(xí)模型 49
4.2.1 簡單的留出驗證 49
4.2.2 K折交叉驗證 50
4.2.3 隨機重復(fù)K折交叉驗證 50
4.2.4 模型評估的注意事項 50
4.3 過擬合和欠擬合 51
4.3.1 減小神經(jīng)網(wǎng)絡(luò)模型的大小 51
4.3.2 添加權(quán)重正則化 52
4.3.3 添加Dropout正則化 52
本章小結(jié) 52
第5章 泰坦尼克號幸存者預(yù)測 53
5.1 處理數(shù)據(jù)集 53
5.2 定義模型 57
5.3 編譯模型 57
5.4 訓(xùn)練模型 59
5.5 評估模型 60
5.6 預(yù)測 63
5.7 代碼匯總 64
本章小結(jié) 66
第6章 TensorFlow 2介紹 67
6.1 TensorFlow 2基礎(chǔ)知識和學(xué)習(xí)路線圖 67
6.1.1 基礎(chǔ)知識 67
6.1.2 學(xué)習(xí)路線圖 69
6.2 模型的保存和恢復(fù) 70
6.2.1 全模型保存 70
6.2.2 保存為SavedModel格式 71
6.2.3 僅保存模型結(jié)構(gòu) 71
6.2.4 僅保存模型權(quán)重 72
6.3 模型增量更新 72
6.4 訓(xùn)練回調(diào) 72
6.4.1 模型檢查點和提前終止 73
6.4.2 動態(tài)調(diào)整學(xué)習(xí)率 73
6.4.3 自定義回調(diào)函數(shù) 74
6.5 TensorBoard可視化 76
本章小結(jié) 78
第7章 圖像識別入門 79
7.1 Fashion-MNIST數(shù)據(jù)集 79
7.1.1 數(shù)據(jù)集簡介 79
7.1.2 數(shù)據(jù)集預(yù)處理 80
7.2 全連接神經(jīng)網(wǎng)絡(luò) 82
7.2.1 構(gòu)建模型 83
7.2.2 編譯模型 83
7.2.3 訓(xùn)練模型 84
7.2.4 評估模型 84
7.2.5 預(yù)測 84
7.2.6 代碼小結(jié) 87
7.3 卷積神經(jīng)網(wǎng)絡(luò) 88
7.3.1 卷積神經(jīng)網(wǎng)絡(luò)的原理 88
7.3.2 卷積層和池化層 89
7.3.3 實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò) 91
本章小結(jié) 92
第8章 圖像識別進階 93
8.1 數(shù)據(jù)集處理 93
8.1.1 準備數(shù)據(jù)集 93
8.1.2 數(shù)據(jù)集預(yù)處理 96
8.1.3 簡單的卷積神經(jīng)網(wǎng)絡(luò) 97
8.1.4 數(shù)據(jù)增強 99
8.2 遷移學(xué)習(xí) 102
8.2.1 VGG16預(yù)訓(xùn)練模型 103
8.2.2 特征提取 105
8.2.3 微調(diào)模型 108
8.2.4 保存模型 110
8.3 TensorFlow Hub 111
本章小結(jié) 113
第9章 圖像風(fēng)格遷移 114
9.1 神經(jīng)風(fēng)格遷移的原理 114
9.1.1 內(nèi)容損失 116
9.1.2 風(fēng)格損失 117
9.2 實現(xiàn)神經(jīng)風(fēng)格遷移算法 117
本章小結(jié) 127
第10章 自然語言處理入門 128
10.1 分詞 128
10.1.1 英文分詞 128
10.1.2 中文分詞 129
10.2 語言模型 131
10.2.1 獨熱編碼 131
10.2.2 詞嵌入 133
10.2.3 從文本到詞嵌入 134
10.2.4 自然語言處理領(lǐng)域的遷移學(xué)習(xí) 137
10.3 循環(huán)神經(jīng)網(wǎng)絡(luò) 139
10.3.1 循環(huán)神經(jīng)網(wǎng)絡(luò)的 原理 139
10.3.2 使用NumPy實現(xiàn)RNN層前向傳播 140
10.3.3 循環(huán)神經(jīng)網(wǎng)絡(luò)存在的問題 142
10.3.4 長短期記憶網(wǎng)絡(luò) 143
本章小結(jié) 143
第11章 語音助手意圖分類 144
11.1 數(shù)據(jù)集 144
11.1.1 加載數(shù)據(jù)集 145
11.1.2 數(shù)據(jù)預(yù)處理 146
11.2 雙向長短期記憶網(wǎng)絡(luò) 151
11.3 預(yù)訓(xùn)練詞嵌入網(wǎng)絡(luò) 152
11.4 保存和加載模型 155
本章小結(jié) 157
第12章 自然語言生成實戰(zhàn) 158
12.1 利用語言模型寫詩 158
12.1.1 語言模型的應(yīng)用 158
12.1.2 采樣策略 159
12.1.3 利用LSTM語言模型 寫詩 159
12.2 Seq2Seq語言模型 167
12.2.1 編碼器 167
12.2.2 解碼器 168
12.3 利用Seq2Seq語言模型實現(xiàn)中英文翻譯 168
12.3.1 tf.keras中的函數(shù)式模型 168
12.3.2 數(shù)據(jù)預(yù)處理 169
12.3.3 Seq2Seq翻譯模型的訓(xùn)練 171
12.3.4 Seq2Seq翻譯模型的預(yù)測 173
本章小結(jié) 176
第13章 中文實體識別實戰(zhàn) 177
13.1 報紙實體識別 177
13.1.1 數(shù)據(jù)集 177
13.1.2 訓(xùn)練模型 181
13.1.3 評估序列標注 182
13.2 使用BERT進行遷移學(xué)習(xí)實體識別 183
13.2.1 在tf.keras中加載BERT模型 184
13.2.2 構(gòu)建遷移模型 186
本章小結(jié) 188
第14章 生成對抗網(wǎng)絡(luò) 189
14.1 生成對抗網(wǎng)絡(luò)的原理 189
14.2 搭建生成對抗網(wǎng)絡(luò) 190
14.2.1 生成器 190
14.2.2 判別器 191
14.2.3 完成生成對抗網(wǎng)絡(luò)的 搭建 191
14.3 訓(xùn)練生成對抗網(wǎng)絡(luò) 192
14.4 輔助類別生成對抗網(wǎng)絡(luò) 196
14.5 GAN的評估 201
14.5.1 Inception Score 202
14.5.2 Fréchet Inception 距離 203
本章小結(jié) 205
第15章 強化學(xué)習(xí) 206
15.1 強化學(xué)習(xí)概述 206
15.1.1 基礎(chǔ)內(nèi)容 206
15.1.2 Gym框架簡介 208
15.1.3 隨機動作策略 210
15.2 Q-Learning 212
15.2.1 Q-Learning簡介 212
15.2.2 Q-Learning的實現(xiàn) 213
15.3 Deep Q-Learning 216
15.3.1 Lunar Lander v2 216
15.3.2 隨機動作Agent 217
15.3.3 DQN的訓(xùn)練 219
本章小結(jié) 225
第16章 部署模型 226
16.1 使用Flask部署 226
16.1.1 Flask入門 226
16.1.2 利用Flask部署圖像分類模型 227
16.2 TensorFlow Serving 229
16.2.1 使用命令行工具部署 230
16.2.2 使用Docker部署 231
16.2.3 調(diào)用REST接口 232
16.2.4 版本控制 233
本章小結(jié) 234