本書提供安裝、上機操作指南,同時輔以大量范例程序介紹TensorFlow Keras深度學(xué)習(xí)方面的知識。本書分9部分,共21章,內(nèi)容主要包括基本概念介紹、TensorFlow 與 Keras 的安裝、Keras MNIST手寫數(shù)字識別、Keras CIFAR-10照片圖像物體識別、Keras多層感知器預(yù)測泰坦尼克號上旅客的生存概率、使用Keras MLP、RNN、LSTM進(jìn)行IMDb自然語言處理與情感分析、以TensorFlow張量運算仿真神經(jīng)網(wǎng)絡(luò)的運行、TensorFlow MNIST手寫數(shù)字識別、使用GPU大幅加快深度學(xué)習(xí)訓(xùn)練。
TensorFlow Keras深度學(xué)習(xí)方面的知識不需要具備高等數(shù)學(xué)模型、算法等專業(yè)知識,讀者只需要具備基本的Python程序設(shè)計能力,按照本書的步驟循序漸進(jìn)地學(xué)習(xí),就可以了解深度學(xué)習(xí)的基本概念,進(jìn)而實際運用深度學(xué)習(xí)的技術(shù)。
淺入深地講解Keras與TensorFlow深度學(xué)習(xí)類神經(jīng)網(wǎng)絡(luò)使用實際的數(shù)據(jù)集配合范例程序代碼介紹各種深度學(xué)習(xí)算法,并示范如何進(jìn)行數(shù)據(jù)預(yù)處理、訓(xùn)練數(shù)據(jù)、建立模型和預(yù)測結(jié)果
林大貴,從事IT行業(yè)多年,在系統(tǒng)設(shè)計、網(wǎng)站開發(fā)、數(shù)字營銷、商業(yè)智慧、大數(shù)據(jù)、機器學(xué)習(xí)等領(lǐng)域具有豐富的實戰(zhàn)經(jīng)驗。
目 錄
第1章 人工智能、機器學(xué)習(xí)與深度學(xué)習(xí)簡介 1
1.1 人工智能、機器學(xué)習(xí)、深度學(xué)習(xí)的關(guān)系 2
1.2 機器學(xué)習(xí)介紹 4
1.3 機器學(xué)習(xí)分類 4
1.4 深度學(xué)習(xí)簡介 7
1.5 結(jié)論 8
第2章 深度學(xué)習(xí)的原理 9
2.1 神經(jīng)傳導(dǎo)的原理 10
2.2 以矩陣運算仿真神經(jīng)網(wǎng)絡(luò) 13
2.3 多層感知器模型 14
2.4 使用反向傳播算法進(jìn)行訓(xùn)練 16
2.5 結(jié)論 21
第3章 TensorFlow與Keras介紹 22
3.1
TensorFlow架構(gòu)圖 23
3.2
TensorFlow簡介 24
3.3
TensorFlow程序設(shè)計模式 26
3.4
Keras介紹 27
3.5
Keras程序設(shè)計模式 28
3.6
Keras與TensorFlow比較 29
3.7 結(jié)論 30
第4章 在Windows中安裝TensorFlow與Keras 31
4.1 安裝Anaconda 32
4.2 啟動命令提示符 35
4.3 建立TensorFlow的Anaconda虛擬環(huán)境 37
4.4 在Anaconda虛擬環(huán)境安裝TensorFlow與Keras 40
4.5 啟動Jupyter
Notebook 42
4.6 結(jié)論 48
第5章 在Linux Ubuntu中安裝TensorFlow與Keras 49
5.1 安裝Anaconda 50
5.2 安裝TensorFlow與Keras 52
5.3 啟動Jupyter
Notebook 53
5.4 結(jié)論 54
第6章 Keras MNIST手寫數(shù)字識別數(shù)據(jù)集 55
6.1 下載MNIST數(shù)據(jù) 56
6.2 查看訓(xùn)練數(shù)據(jù) 58
6.3 查看多項訓(xùn)練數(shù)據(jù)images與label 60
6.4 多層感知器模型數(shù)據(jù)預(yù)處理 62
6.5
features數(shù)據(jù)預(yù)處理 62
6.6
label數(shù)據(jù)預(yù)處理 64
6.7 結(jié)論 65
第7章 Keras多層感知器識別手寫數(shù)字 66
7.1
Keras多元感知器識別MNIST手寫數(shù)字圖像的介紹 67
7.2 進(jìn)行數(shù)據(jù)預(yù)處理 69
7.3 建立模型 69
7.4 進(jìn)行訓(xùn)練 73
7.5 以測試數(shù)據(jù)評估模型準(zhǔn)確率 77
7.6 進(jìn)行預(yù)測 78
7.7 顯示混淆矩陣 79
7.8 隱藏層增加為1000個神經(jīng)元 81
7.9 多層感知器加入DropOut功能以避免過度擬合 84
7.10
建立多層感知器模型包含兩個隱藏層 86
7.11
結(jié)論 89
第8章 Keras卷積神經(jīng)網(wǎng)絡(luò)識別手寫數(shù)字 90
8.1 卷積神經(jīng)網(wǎng)絡(luò)簡介 91
8.2 進(jìn)行數(shù)據(jù)預(yù)處理 97
8.3 建立模型 98
8.4 進(jìn)行訓(xùn)練 101
8.5 評估模型準(zhǔn)確率 104
8.6 進(jìn)行預(yù)測 104
8.7 顯示混淆矩陣 105
8.8
結(jié)論 107
第9章 Keras CIFAR-10圖像識別數(shù)據(jù)集 108
9.1 下載CIFAR-10數(shù)據(jù) 109
9.2 查看訓(xùn)練數(shù)據(jù) 111
9.3 查看多項images與label 112
9.4 將images進(jìn)行預(yù)處理 113
9.5 對label進(jìn)行數(shù)據(jù)預(yù)處理 114
9.6 結(jié)論 115
第10章 Keras卷積神經(jīng)網(wǎng)絡(luò)識別CIFAR-10圖像 116
10.1
卷積神經(jīng)網(wǎng)絡(luò)簡介 117
10.2
數(shù)據(jù)預(yù)處理 118
10.3
建立模型 119
10.4
進(jìn)行訓(xùn)練 123
10.5
評估模型準(zhǔn)確率 126
10.6
進(jìn)行預(yù)測 126
10.7
查看預(yù)測概率 127
10.8
顯示混淆矩陣 129
10.9
建立3次的卷積運算神經(jīng)網(wǎng)絡(luò) 132
10.10
模型的保存與加載 135
10.11
結(jié)論 136
第11章 Keras泰坦尼克號上的旅客數(shù)據(jù)集 137
11.1
下載泰坦尼克號旅客數(shù)據(jù)集 138
11.2
使用Pandas DataFrame讀取數(shù)據(jù)并進(jìn)行預(yù)處理 140
11.3
使用Pandas DataFrame進(jìn)行數(shù)據(jù)預(yù)處理 142
11.4
將DataFrame轉(zhuǎn)換為Array 143
11.5
將ndarray特征字段進(jìn)行標(biāo)準(zhǔn)化 145
11.6
將數(shù)據(jù)分為訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù) 145
11.7
結(jié)論 147
第12章 Keras多層感知器預(yù)測泰坦尼克號上旅客的生存概率 148
12.1
數(shù)據(jù)預(yù)處理 149
12.2
建立模型 150
12.3
開始訓(xùn)練 152
12.4
評估模型準(zhǔn)確率 155
12.5
加入《泰坦尼克號》電影中Jack與Rose的數(shù)據(jù) 156
12.6
進(jìn)行預(yù)測 157
12.7
找出泰坦尼克號背后的感人故事 158
12.8
結(jié)論 160
第13章 IMDb網(wǎng)絡(luò)電影數(shù)據(jù)集與自然語言處理 161
13.1
Keras自然語言處理介紹 163
13.2
下載IMDb數(shù)據(jù)集 167
13.3
讀取IMDb數(shù)據(jù) 169
13.4
查看IMDb數(shù)據(jù) 172
13.5
建立token 173
13.6
使用token將影評文字轉(zhuǎn)換成數(shù)字列表 174
13.7
讓轉(zhuǎn)換后的數(shù)字長度相同 174
13.8
結(jié)論 176
第14章 Keras建立MLP、RNN、LSTM模型進(jìn)行IMDb情感分析 177
14.1
建立多層感知器模型進(jìn)行IMDb情感分析 178
14.2
數(shù)據(jù)預(yù)處理 179
14.3
加入嵌入層 180
14.4
建立多層感知器模型 181
14.5
訓(xùn)練模型 182
14.6
評估模型準(zhǔn)確率 184
14.7
進(jìn)行預(yù)測 185
14.8
查看測試數(shù)據(jù)預(yù)測結(jié)果 185
14.9
查看《美女與野獸》的影評 187
14.10
預(yù)測《美女與野獸》的影評是正面或負(fù)面的 190
14.11
文字處理時使用較大的字典提取更多文字 192
14.12
RNN模型介紹 193
14.13
使用Keras RNN模型進(jìn)行IMDb情感分析 195
14.14
LSTM模型介紹 197
14.15
使用Keras LSTM模型進(jìn)行IMDb情感分析 199
14.16
結(jié)論 200
第15章 TensorFlow程序設(shè)計模式 201
15.1
建立計算圖 202
15.2
執(zhí)行計算圖 204
15.3
TensorFlow placeholder 206
15.4
TensorFlow數(shù)值運算方法介紹 207
15.5
TensorBoard 208
15.6
建立一維與二維張量 211
15.7
矩陣基本運算 212
15.8
結(jié)論 214
第16章 以TensorFlow張量運算仿真神經(jīng)網(wǎng)絡(luò)的運行 215
16.1
以矩陣運算仿真神經(jīng)網(wǎng)絡(luò) 216
16.2
以placeholder傳入X值 220
16.3
創(chuàng)建layer函數(shù)以矩陣運算仿真神經(jīng)網(wǎng)絡(luò) 222
16.4
建立layer_debug函數(shù)顯示權(quán)重與偏差 225
16.5
結(jié)論 226
第17章 TensorFlow MNIST手寫數(shù)字識別數(shù)據(jù)集 227
17.1
下載MNIST數(shù)據(jù) 228
17.2
查看訓(xùn)練數(shù)據(jù) 229
17.3
查看多項訓(xùn)練數(shù)據(jù)images與labels 232
17.4
批次讀取MNIST數(shù)據(jù) 234
17.5
結(jié)論 235
第18章 TensorFlow多層感知器識別手寫數(shù)字 236
18.1
TensorFlow建立多層感知器辨識手寫數(shù)字的介紹 237
18.2
數(shù)據(jù)準(zhǔn)備 239
18.3
建立模型 239
18.4
定義訓(xùn)練方式 242
18.5
定義評估模型準(zhǔn)確率的方式 243
18.6
進(jìn)行訓(xùn)練 244
18.7
評估模型準(zhǔn)確率 249
18.8
進(jìn)行預(yù)測 249
18.9
隱藏層加入更多神經(jīng)元 250
18.10
建立包含兩個隱藏層的多層感知器模型 251
18.11
結(jié)論 252
第19章 TensorFlow卷積神經(jīng)網(wǎng)絡(luò)識別手寫數(shù)字 253
19.1
卷積神經(jīng)網(wǎng)絡(luò)簡介 254
19.2
進(jìn)行數(shù)據(jù)預(yù)處理 255
19.3
建立共享函數(shù) 256
19.4
建立模型 258
19.5
定義訓(xùn)練方式 264
19.6
定義評估模型準(zhǔn)確率的方式 264
19.7
進(jìn)行訓(xùn)練 265
19.8
評估模型準(zhǔn)確率 266
19.9
進(jìn)行預(yù)測 267
19.10
TensorBoard 268
19.11
結(jié)論 270
第20章 TensorFlow GPU版本的安裝 271
20.1
確認(rèn)顯卡是否支持CUDA 273
20.2
安裝CUDA 274
20.3
安裝cuDNN 278
20.4
將cudnn64_5.dll存放的位置加入Path環(huán)境變量 281
20.5
在Anaconda建立TensorFlow GPU虛擬環(huán)境 283
20.6
安裝TensorFlow GPU版本 285
20.7
安裝Keras 286
20.8
結(jié)論 286
第21章 使用GPU加快TensorFlow與Keras訓(xùn)練 287
21.1
啟動TensorFlow GPU環(huán)境 288
21.2
測試GPU與CPU執(zhí)行性能 293
21.3
超出顯卡內(nèi)存的限制 296
21.4
以多層感知器的實際范例比較CPU與GPU的執(zhí)行速度 297
21.5
以CNN的實際范例比較CPU與GPU的執(zhí)行速度 299
21.6
以Keras Cifar CNN的實際范例比較CPU與GPU的執(zhí)行速度 302
21.7
結(jié)論 304
附錄A 本書范例程序的下載與安裝說明 305
A.1 在Windows系統(tǒng)中下載與安裝范例程序 306
A.2 在Ubuntu Linux系統(tǒng)中下載與安裝范例程序 310