深度學(xué)習(xí)基礎(chǔ)與工程實踐
定 價:89 元
- 作者:郭澤文
- 出版時間:2021/9/1
- ISBN:9787121419225
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP181
- 頁碼:300
- 紙張:
- 版次:01
- 開本:16開
本書以工程實踐為主線,基于TensorFlow 2.0軟件框架詳細(xì)介紹了深度學(xué)習(xí)的工作原理和方法,并以實際代碼為例,剖析了構(gòu)建神經(jīng)網(wǎng)絡(luò)模型的流程、全連接網(wǎng)絡(luò)的運(yùn)行原理、卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)與運(yùn)行機(jī)制、循環(huán)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)與運(yùn)行機(jī)制,討論了使用Dense、Conv1D、Conv2D、SimpleRNN、LTSM、GRU、Bidirectional等深度學(xué)習(xí)模型解決計算機(jī)視覺、序列問題的方法,并在此基礎(chǔ)上基于具體示例介紹了深度學(xué)習(xí)的高階實踐。
香港理工大學(xué)軟件科技理學(xué)碩士,中國人工智能學(xué)會會員,香港理工大學(xué)北京校友會理事。在計算機(jī)行業(yè)工作近30年,長期從事產(chǎn)品研發(fā)與項目管理工作,曾就職于北控、盛大等企業(yè),目前是一家知名人工智能企業(yè)的合伙人,負(fù)責(zé)創(chuàng)新性產(chǎn)品的規(guī)劃與研發(fā),致力于深度學(xué)習(xí)領(lǐng)域的探索與產(chǎn)品化實踐。
第1章 搭建環(huán)境
1.1 安裝Anaconda 2
1.2 安裝CUDA及其加速器 3
1.3 安裝TensorFlow 2.0 4
1.4 開發(fā)環(huán)境——Spyder 6
1.5 可視化分析工具——TensorBoard 7
第2章 機(jī)器學(xué)習(xí)與深度學(xué)習(xí)
2.1 機(jī)器學(xué)習(xí) 11
2.2 深度學(xué)習(xí) 13
第3章 構(gòu)建神經(jīng)網(wǎng)絡(luò)模型
3.1 搭建一個全連接網(wǎng)絡(luò) 17
3.2 確定要解決的問題 19
3.3 準(zhǔn)備數(shù)據(jù)與數(shù)據(jù)預(yù)處理 20
3.3.1 數(shù)據(jù)集 22
3.3.2 擬合問題初探 23
3.3.3 數(shù)據(jù)集劃分與數(shù)據(jù)污染 25
3.3.4 神經(jīng)網(wǎng)絡(luò)中的數(shù)據(jù)表示 26
3.3.5 張量操作 30
3.3.6 數(shù)據(jù)預(yù)處理 32
3.4 構(gòu)建神經(jīng)網(wǎng)絡(luò) 34
3.4.1 構(gòu)建神經(jīng)網(wǎng)絡(luò)的方法 34
3.4.2 理解Sequential Model的構(gòu)建方法 35
3.4.3 理解layers與layer 37
3.4.4 理解models與model 39
3.4.5 理解Dense 39
3.4.6 激活函數(shù) 40
3.5 編譯模型 42
3.5.1 優(yōu)化器 43
3.5.2 損失函數(shù) 44
3.5.3 評價指標(biāo) 46
3.6 訓(xùn)練模型 47
3.6.1 使用fit方法訓(xùn)練模型 47
3.6.2 使用fit_generator方法訓(xùn)練模型 51
3.6.3 使用TensorBoard回調(diào)函數(shù)訓(xùn)練模型 52
3.7 測試模型 59
3.7.1 性能評估 59
3.7.2 模型預(yù)測 60
3.8 保存模型 62
3.8.1 save方式 62
3.8.2 save_weights方式 63
3.8.3 SavedModel方式 64
3.9 使用模型 64
3.9.1 以save_weights方式保存的模型的加載方法 64
3.9.2 以save方式保存的模型的加載方法 65
3.9.3 以SavedModel方式保存的模型的加載方法 66
3.10 模型的重新訓(xùn)練與預(yù)測 66
3.11 使用模型在新數(shù)據(jù)上進(jìn)行推理 69
第4章 全連接網(wǎng)絡(luò)
4.1 全連接層 72
4.2 使用全連接網(wǎng)絡(luò)解決文本分類問題 74
4.2.1 基于IMDB數(shù)據(jù)集的二分類任務(wù) 75
4.2.2 基于Reuters數(shù)據(jù)集的多分類任務(wù) 79
4.3 使用全連接網(wǎng)絡(luò)解決標(biāo)量回歸問題 82
4.3.1 使用留出驗證集方式訓(xùn)練模型 86
4.3.2 使用K折交叉驗證方式訓(xùn)練模型 87
4.4 全連接網(wǎng)絡(luò)圖片分類問題的優(yōu)化 88
4.4.1 降低模型容量:縮減模型的超參數(shù) 90
4.4.2 奧卡姆剃刀原則:正則化模型參數(shù) 91
4.4.3 初識隨機(jī)失活:Dropout 92
第5章 卷積神經(jīng)網(wǎng)絡(luò)
5.1 使用CNN解決MNIST數(shù)據(jù)集的分類問題 96
5.2 全連接網(wǎng)絡(luò)面臨的問題 98
5.3 局部相關(guān)性與權(quán)值共享 100
5.4 構(gòu)建卷積神經(jīng)網(wǎng)絡(luò) 102
5.4.1 CNN與Dense性能比較 102
5.4.2 卷積層 104
5.4.3 池化層 108
5.4.4 打平層 111
5.4.5 卷積神經(jīng)網(wǎng)絡(luò)基礎(chǔ)架構(gòu) 113
5.5 使用Conv1D解決二分類問題 115
5.5.1 EarlyStopping函數(shù):訓(xùn)練終止 118
5.5.2 ModelCheckpoint函數(shù):動態(tài)保存模型 120
5.5.3 再談隨機(jī)失活 122
第6章 循環(huán)神經(jīng)網(wǎng)絡(luò)
6.1 循環(huán)神經(jīng)網(wǎng)絡(luò)基礎(chǔ) 126
6.1.1 序列 126
6.1.2 序列向量化 126
6.1.3 權(quán)值共享 130
6.1.4 全局語義 130
6.1.5 循環(huán)神經(jīng)網(wǎng)絡(luò)概述 131
6.1.6 循環(huán)層 132
6.2 SimpleRNN 133
6.2.1 序列數(shù)據(jù)的預(yù)處理 136
6.2.2 理解SimpleRNN層 137
6.3 LSTM網(wǎng)絡(luò) 141
6.3.1 短時記憶與遺忘曲線 141
6.3.2 梯度問題 142
6.3.3 門控機(jī)制 143
6.3.4 理解LSTM層 144
6.4 GRU 151
6.4.1 LSTM網(wǎng)絡(luò)面臨的問題 151
6.4.2 門控機(jī)制的優(yōu)化方法 152
6.4.3 理解GRU層 152
6.5 雙向循環(huán)神經(jīng)網(wǎng)絡(luò) 159
6.5.1 雙向LSTM網(wǎng)絡(luò) 161
6.5.2 雙向GRU 164
6.6 解決循環(huán)神經(jīng)網(wǎng)絡(luò)的擬合問題 167
6.6.1 通過正則化模型參數(shù)解決擬合問題 167
6.6.2 使用隨機(jī)失活解決擬合問題 168
第7章 深度學(xué)習(xí)高階實踐
7.1 函數(shù)式API網(wǎng)絡(luò)模型 173
7.1.1 如何實現(xiàn)層圖共享 177
7.1.2 如何實現(xiàn)模型共享 180
7.1.3 如何實現(xiàn)模型組裝與嵌套 183
7.1.4 如何實現(xiàn)多輸入多輸出模型 185
7.2 混合網(wǎng)絡(luò)模型 189
7.3 基于Xception架構(gòu)實現(xiàn)圖片分類任務(wù) 191
7.3.1 Xception架構(gòu) 191
7.3.2 使用image_dataset_from_directory函數(shù)構(gòu)建數(shù)據(jù)集 194
7.3.3 數(shù)據(jù)增強(qiáng)技術(shù) 199
7.3.4 數(shù)據(jù)增強(qiáng)器的使用 201
7.3.5 二維深度分離卷積層:SeparableConv2D 202
7.3.6 數(shù)據(jù)標(biāo)準(zhǔn)化前置與中置 205
7.3.7 編譯與訓(xùn)練模型 206
7.3.8 在新數(shù)據(jù)上進(jìn)行推理 207
7.4 殘差網(wǎng)絡(luò)在CIFAR10數(shù)據(jù)集上的實踐 208
7.4.1 CIFAR10數(shù)據(jù)集 208
7.4.2 深度殘差網(wǎng)絡(luò):ResNet 209
7.4.3 基于ResNet構(gòu)建多分類任務(wù)模型 211
7.5 GloVe預(yù)訓(xùn)練詞嵌入實踐 215
7.5.1 從原始文件構(gòu)建訓(xùn)練集 216
7.5.2 解析并加載GloVe 220
7.5.3 在二分類模型中使用詞嵌入矩陣 221
7.5.4 模型的編譯與訓(xùn)練 222
7.5.5 構(gòu)建測試集與模型評估 222
7.6 基于預(yù)訓(xùn)練網(wǎng)絡(luò)VGG16完成圖片分類任務(wù) 224
7.6.1 預(yù)訓(xùn)練網(wǎng)絡(luò) 224
7.6.2 預(yù)訓(xùn)練網(wǎng)絡(luò)之特征提取方法 225
7.6.3 預(yù)訓(xùn)練網(wǎng)絡(luò)之微調(diào)模型方法 230
7.7 生成式深度學(xué)習(xí)實踐 237
7.7.1 基于ResNet50的Deep Dream技術(shù)實踐 238
7.7.2 基于VGG19網(wǎng)絡(luò)的風(fēng)格遷移實踐 244
7.8 使用自定義回調(diào)函數(shù)監(jiān)控模型的行為 253
7.8.1 將約束理論應(yīng)用于模型調(diào)優(yōu) 254
7.8.2 構(gòu)建全局回調(diào)函數(shù) 255
7.8.3 構(gòu)建epoch級的自定義回調(diào)函數(shù) 258
7.8.4 構(gòu)建batch級的自定義回調(diào)函數(shù) 260
第8章 模型的工程封裝與部署
8.1 深度學(xué)習(xí)模型的封裝方法 263
8.2 使用Flask部署神經(jīng)網(wǎng)絡(luò)模型 264
8.2.1 Flask是什么 265
8.2.2 將模型部署成接口提供給第三方使用 267
8.2.3 深度學(xué)習(xí)模型與Web應(yīng)用協(xié)同工作 270
8.3 基于TFX的部署實踐 273
8.3.1 TensorFlow Serving服務(wù)模型 273
8.3.2 基于TensorFlow Serving與Docker部署深度學(xué)習(xí)模型 275
第9章 回顧與展望
9.1 神經(jīng)網(wǎng)絡(luò)的架構(gòu) 281
9.2 構(gòu)建神經(jīng)網(wǎng)絡(luò)模型的流程與實踐 282
9.3 深度學(xué)習(xí)的局限性與展望 285