《TensorFlow2實戰(zhàn)》首先講解深度學習和TensorFlow2的基礎(chǔ)知識,然后通過圖像處理和自然語言處理兩方面的實例,幫助讀者進一步掌握深度學習的應用,最后通過對生成對抗網(wǎng)絡(luò)和強化學習知識的講解,帶領(lǐng)讀者精通深度學習。
《TensorFlow2實戰(zhàn)》適合想要學習和了解人工智能、深度學習技術(shù)的程序員閱讀,也可作為大專院校計算機專業(yè)師生的學習用書和培訓學校的教材。
用簡潔易懂的例子,循序漸進幫助讀者學懂 TensorFlow 2
通過圖像處理和自然語言處理兩類實例,幫助讀者掌握深度學習的應用
闡述對抗神經(jīng)網(wǎng)絡(luò)和強化學習的知識,使讀者進階深度學習
艾力,曾就職于暴風大腦研究院,擔任 NLP 架構(gòu)師一職。負責暴風大腦 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ù)學計算 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 應用方法 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 訓練神經(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章 深度學習基礎(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ò)訓練 45
4.1.5 深度學習的主要術(shù)語 46
4.1.6 深度學習的4個分支 48
4.2 評估深度學習模型 49
4.2.1 簡單的留出驗證 49
4.2.2 K折交叉驗證 50
4.2.3 隨機重復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章 泰坦尼克號幸存者預測 53
5.1 處理數(shù)據(jù)集 53
5.2 定義模型 57
5.3 編譯模型 57
5.4 訓練模型 59
5.5 評估模型 60
5.6 預測 63
5.7 代碼匯總 64
本章小結(jié) 66
第6章 TensorFlow 2介紹 67
6.1 TensorFlow 2基礎(chǔ)知識和學習路線圖 67
6.1.1 基礎(chǔ)知識 67
6.1.2 學習路線圖 69
6.2 模型的保存和恢復 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 訓練回調(diào) 72
6.4.1 模型檢查點和提前終止 73
6.4.2 動態(tài)調(diào)整學習率 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ù)集預處理 80
7.2 全連接神經(jīng)網(wǎng)絡(luò) 82
7.2.1 構(gòu)建模型 83
7.2.2 編譯模型 83
7.2.3 訓練模型 84
7.2.4 評估模型 84
7.2.5 預測 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ù)集預處理 96
8.1.3 簡單的卷積神經(jīng)網(wǎng)絡(luò) 97
8.1.4 數(shù)據(jù)增強 99
8.2 遷移學習 102
8.2.1 VGG16預訓練模型 103
8.2.2 特征提取 105
8.2.3 微調(diào)模型 108
8.2.4 保存模型 110
8.3 TensorFlow Hub 111
本章小結(jié) 113
第9章 圖像風格遷移 114
9.1 神經(jīng)風格遷移的原理 114
9.1.1 內(nèi)容損失 116
9.1.2 風格損失 117
9.2 實現(xiàn)神經(jī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)域的遷移學習 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ù)預處理 146
11.2 雙向長短期記憶網(wǎng)絡(luò) 151
11.3 預訓練詞嵌入網(wǎng)絡(luò) 152
11.4 保存和加載模型 155
本章小結(jié) 157
第12章 自然語言生成實戰(zhàn) 158
12.1 利用語言模型寫詩 158
12.1.1 語言模型的應用 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ù)預處理 169
12.3.3 Seq2Seq翻譯模型的訓練 171
12.3.4 Seq2Seq翻譯模型的預測 173
本章小結(jié) 176
第13章 中文實體識別實戰(zhàn) 177
13.1 報紙實體識別 177
13.1.1 數(shù)據(jù)集 177
13.1.2 訓練模型 181
13.1.3 評估序列標注 182
13.2 使用BERT進行遷移學習實體識別 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 訓練生成對抗網(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章 強化學習 206
15.1 強化學習概述 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的訓練 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