TensorFlow技術解析與實戰 TensorFlow技术解析与实战

李嘉璇

買這商品的人也買了...

商品描述

TensorFlow 是谷歌公司開發的深度學習框架,也是目前深度學習的主流框架之一。本書從深度學習的基礎講起,深入TensorFlow框架原理、模型構建、源代碼分析和網絡實現等各個方面。全書分為基礎篇、實戰篇和提高篇三部分。基礎篇講解人工智能的入門知識,深度學習的方法,TensorFlow的基礎原理、系統架構、設計理念、編程模型、常用API、批標準化、模型的存儲與加載、隊列與線程,實現一個自定義操作,並進行TensorFlow源代碼解析,介紹捲積神經網絡(CNN)和循環神經網絡(RNN)的演化發展及其TensorFlow實現、TensorFlow的高級框架等知識;實戰篇講解如何用TensorFlow寫一個神經網絡程序並介紹TensorFlow實現各種網絡(CNN、RNN和自編碼網絡等)並對MNIST數據集進行訓練,講解TensorFlow在人臉識別、自然語言處理、圖像和語音的結合、生成式對抗網絡等方面的應用;提高篇講解TensorFlow的分佈式原理、架構、模式、API,還會介紹TensorFlow XLA、TensorFlow Debugger、TensorFlow和Kubernetes結合、TensorFlowOnSpark、TensorFlow移動端應用,以及TensorFlow Serving、TensorFlow Fold和TensorFlow計算加速等其他特性。*後,附錄中列出一些可供參考的公開數據集,並結合作者的項目經驗介紹項目管理的一些建議。

作者簡介

李嘉璇,創建TensorFlow交流社區(tf.greatgeekgrace.com),活躍於國內各大技術社區,知乎編程問題回答者。致力於人工智能的研究,對深度學習框架的架構、源碼分析及在不同領域的應用有濃厚興趣。

有過上百篇論文閱讀和深度學習經驗,處理圖像、社交文本數據情感分析、數據挖掘經驗,參與過基於深度學習的自動駕駛二維感知系統Hackathon競賽,曾任職百度研發工程師。

目錄大綱

第一篇基礎篇

第1章人工智能概述2 
1.1什麼是人工智能2 
1.2什麼是深度學習5 
1.3深度學習的入門方法7 
1.4什麼是TensorFlow 11 
1.5為什麼要學TensorFlow 12 
1.5.1 TensorFlow的特性14 
1.5 .2使用TensorFlow的公司15 
1.5.3 TensorFlow的發展16 
1.6機器學習的相關賽事16 
1.6.1 ImageNet的ILSVRC 17 
1.6.2 Kaggle 18 
1.6.3天池大數據競賽19 
1.7國內的人工智能公司20 
1.8小結22 


第2章TensorFlow環境的準備23 
2.1下載TensorFlow 1.1.0 23 
2.2基於pip的安裝23 
2.2.1 Mac OS環境準備24 
2.2.2 Ubuntu/Linux環境準備25 
2.2.3 Windows環境準備25 
2.3基於Java的安裝28 
2.4從源代碼安裝29 
2.5依賴的其他模塊30 
2.5.1 numpy 30 
2.5.2 matplotlib 31 
2.5.3 jupyter 31 
2.5.4 scikit-image 32 
2.5.5 librosa 32 
2.5.6 nltk 32 
2.5.7 keras 33 
2.5.8 tflearn 33 
2.6小結33 

第3章可視化TensorFlow 34 
3.1 PlayGround 34 
3.1.1數據35 
3.1.2特徵36 
3.1.3隱藏層36 
3.1.4輸出37 
3.2 TensorBoard 39 
3.2.1 SCALARS面板40 
3.2. 2 I MAGES面板41 
3.2.3 AUDIO面板42 
3.2.4 GRAPHS面板42 
3.2.5 DISTRIBUTIONS面板43 
3.2.6 HISTOGRAMS面板43 
3.2.7 EMBEDDINGS面板44 
3.3可視化的例子44 
3.3.1降維分析44 
3.3.2嵌入投影儀48 
3.4小結51 

第4章TensorFlow基礎知識52 
4.1系統架構52 
4.2設計理念53 
4.3編程模型54 
4.3.1邊56 
4.3.2節點57 
4.3.3其他概念57 
4.4常用API 60 
4.4.1圖、操作和張量60 
4.4.2可視化61 
4.5變量作用域62 
4.5.1 variable_scope示例62 
4.5.2 name_scope示例64 
4.6批標準化64 
4.6.1方法65 
4.6.2優點65 
4.6.3示例65 
4.7神經元函數及優化方法66 
4.7.1激活函數66 
4.7.2卷積函數69 
4.7.3池化函數72 
4.7.4分類函數73 
4.7.5優化方法74 
4.8模型的存儲與加載79 
4.8.1模型的存儲與加載79 
4.8.2圖的存儲與加載82 
4.9隊列和線程82 
4.9.1隊列82 
4.9.2隊列管理器85 
4.9.3線程和協調器86 
4.10加載數據87 
4.10.1預加載數據87 
4.10.2填充數據87 
4.10.3從文件讀取數據88 
4.11實現一個自 義操作92 
4.11.1步驟92 
4.11.2 *佳實踐93 
4.12小結101 

第5章TensorFlow源代碼解析102 
5.1 TensorFlow的目錄結構102 
5.1.1 contirb 103 
5.1.2 core 104 
5.1.3 examples 105 
5.1.4 g3doc 105 
5.1.5 python 105 
5.1.6 tensorboard 105 
5.2 TensorFlow源代碼的學習方法106 
5.3小結108 

第6章神經網絡的發展及其TensorFlow實現109 
6.1卷積神經網絡109 
6.2卷積神經網絡發展110 
6.2. 1網絡加深111 
6.2.2增強卷積層的功能115 
6.2.3從分類任務到檢測任務120 
6.2.4增加新的功能模塊121 
6.3 MNIST的AlexNet實現121 
6.3.1加載數據121 
6.3.2構建網絡模型122 
6.3.3訓練模型和評估模型124 
6.4循環神經網絡125 
6.5循環神經網絡發展126 
6.5.1增強隱藏層的功能127 
6.5.2雙向化及加深網絡129 
6.6 TensorFlow Model Zoo 131 
6.7其他研究進展131 
6.7.1強化學習132 
6.7.2深度森林132 
6.7.3深度學習與藝術132 
6.8小結133 

第7章TensorFlow的高級框架134 
7.1 TFLearn 134 
7.1.1加載數據134 
7.1. 2構建網絡模型135 
7.1.3訓練模型135 
7.2 Keras 135 
7.2.1 Keras的優點136 
7.2.2 Keras的模型136 
7.2.3 Keras的使用137 
7.3小結141 

第二篇實戰篇

第8章第一個TensorFlow程序144 
8.1 TensorFlow的運行方式144 
8.1.1生成及加載數據144 
8.1.2構建網絡模型145 
8.1.3訓練模型145 
8.2超參數的設定146 
8.3小結147 

第9章TensorFlow在MNIST中的應用148 
9.1 MNIST數據集簡介148 
9.1.1訓練集的標記文件148 
9.1.2訓練集的圖片文件149 
9.1.3測試集的標記文件149 
9.1.4測試集的圖片文件150 
9.2 MNIST的分類問題150 
9.2.1加載數據150 
9.2.2構建回歸模型151 
9.2.3訓練模型151 
9.2.4評估模型152 
9.3訓練過程的可視化152 
9.4 MNIST的捲積神經網絡156 
9.4.1加載數據157 
9.4.2構建模型157 
9.4. 3訓練模型和評估模型159 
9.5 MNIST的循環神經網絡161 
9.5.1加載數據161 
9.5.2構建模型161 
9.5.3訓練數據及評估模型163 
9.6 MNIST的無監督學習164 
9.6.1自編碼網絡164 
9.6 .2 TensorFlow的自編碼網絡實現165 
9.7小結169 

第10章人臉識別170 
10.1人臉識別簡介170 
10.2人臉識別的技術流程171 
10.2.1人臉圖像採集及檢測171 
10.2.2人臉圖像預處理171 
10.2.3人臉圖像特徵提取171 
10.2.4人臉圖像匹配與識別172 
10.3人臉識別的分類172 
10.3.1人臉檢測172 
10.3.2人臉關鍵點檢測173 
10.3.3人臉驗證174 
10.3.4人臉屬性檢測174 
10.4人臉檢測175 
10.4.1 LFW數據集175 
10.4.2數據預處理175 
10.4.3進行檢測176 
10.5性別和年齡識別178 
10.5.1數據預處理179 
10.5.2構建模型181 
10.5.3訓練模型182 
10.5.4驗證模型184 
10.6小結185 

第11章自然語言處理186 
11.1模型的選擇186 
11.2英文數字語音識別187 
11.2.1定義輸入數據並預處理數據188 
11.2.2定義網絡模型188 
11.2.3訓練模型188 
11.2.4預測模型189 
11.3智能聊天機器人189 
11.3.1原理190 
11.3.2 *佳實踐191 
11.4小結200 

第12章圖像與語音的結合201 
12.1看圖說話模 型201 
12.1.1原理202 
12.1.2 *佳實踐203 
12.2小結205 

第13章生成式對抗網絡206 
13.1生成式對抗網絡的原理206 
13.2生成式對抗網絡的應用207 
13.3生成式對抗網絡的實現208 
13.4生成式對抗網絡的改進214 
13.5小結214 

第三篇提高篇

第14章分佈式TensorFlow 216 
14.1分佈式原理216 
14.1.1單機多卡和分佈式216 
14.1.2分佈式部署方式217 
14.2分佈式架構218 
14.2.1客戶端、主節點和工作節點的關係218 
14.2.2客戶端、主節點和工作節點的交互過程220 
14.3分佈式模式221 
14.3.1數據並行221 
14.3.2同步更新和異步更新222 
14.3 .3模型並行224 
14.4分佈式API 225 
14.5分佈式訓練代碼框架226 
14.6分佈式*佳實踐227 
14.7小結235 

第15章TensorFlow線性代數編譯框架XLA 236 
15.1 XLA的優勢236 
15.2 XLA的工作原理237 
15.3 JIT編譯方式238 
15.3.1打開JIT編譯238 
15.3.2將操作符放在XLA設備上238 
15.4 JIT編譯在MNIST上的實現239 
15.5小結240 

第16 TensorFlow Debugger 241 
16.1 Debugger的使用示例241 
16.2遠程調試方法245 
16.3小結245 

第17章TensorFlow和Kubernetes結合246 
17.1為什麼需要Kubernetes 246 
17.2分佈式TensorFlow在Kubernetes中的運行247 
17.2.1部署及運行247 
17.2.2其他應用253 
17.3小結254 

第18章TensorFlowOnSpark 255 
18.1 TensorFlowOnSpark的架構255 
18.2 TensorFlowOnSpark在MNIST上的實踐257 
18.3小結261 

第19章TensorFlow移動端應用262 
19.1移動端應用原理262 
19.1.1量化263 
19.1.2優化矩陣乘法運算266 
19.2 iOS系統實踐266 
19.2.1環境準備266 
19.2.2編譯演示程序並運行267 
19.2.3自定義模型的編譯及運行269 
19.3 Android系統實踐273 
19.3.1環境準備274 
19.3.2編譯演示程序並運行275 
19.3.3自定義模型的編譯及運行277 
19.4樹莓派實踐278 
19.5小結278 

第20章TensorFlow的其他特性279 
20.1 TensorFlow Serving 279 
20.2 TensorFlow Flod 280 
20.3 TensorFlow計算加速281 
20.3.1 CPU加速281 
20.3.2 TPU加速和FPGA 速282 
20.4小結283 

第21章機器學習的評測體系284 
21.1人臉識別的性能指標284 
21.2聊天機器人的性能指標284 
21.3機器翻譯的評價方法286 
21.3.1 BLEU 286 
21.3.2 METEOR 287 
21.4常用的通用評價指標287 
21.4.1 ROC和AUC 288 
21.4.2 AP和mAP 288 
21.5小結288 

附錄A公開數據集289 

附錄B項目管理經驗小談292