深入理解 TensorFlow 架構設計與實現原理 深入理解TensorFlow:架构设计与实现原理
彭靖田 林健 白小龍
- 出版商: 人民郵電
- 出版日期: 2018-05-01
- 定價: $474
- 售價: 8.5 折 $403
- 語言: 簡體中文
- 頁數: 354
- 裝訂: 平裝
- ISBN: 711548094X
- ISBN-13: 9787115480941
-
相關分類:
DeepLearning、TensorFlow
下單後立即進貨 (約4週~6週)
買這商品的人也買了...
-
$862編譯系統透視:圖解編譯原理
-
$250貝葉斯思維 : 統計建模的 Python 學習法 (Think Bayes : Bayesian Statistics in Python)
-
$403TensorFlow技術解析與實戰
-
$948$901 -
$454區塊鏈原理、設計與應用
-
$500$390 -
$580$458 -
$474$450 -
$40321個項目玩轉深度學習 -- 基於 TensorFlow 的實踐詳解
-
$408強化學習精要:核心算法與 TensorFlow 實現
-
$620$490 -
$414$393 -
$680$578 -
$1,680$1,596 -
$237Python 深度學習:基於 TensorFlow
-
$414$393 -
$454精通 TensorFlow
-
$520$411 -
$811深度學習之 TensorFlow 工程化項目實戰
-
$500$395 -
$653深度學習私房菜:跟著案例學 TensorFlow
-
$505TensorFlow 與捲積神經網絡從算法入門到項目實戰
-
$857強化學習, 2/e (Reinforcement Learning: An Introduction, 2/e)
-
$1,260Applied Reinforcement Learning with Python: With Openai Gym, Tensorflow, and Keras
-
$505白話強化學習與 PyTorch
相關主題
商品描述
本書以TensorFlow 1.2為基礎,從基本概念、內部實現和實踐等方面深入剖析了TensorFlow。書中首先介紹了TensorFlow設計目標、基本架構、環境準備和基礎概念,接著重點介紹了以數據流圖為核心的機器學習編程框架的設計原則與核心實現,緊接著還將TensorFlow與深度學習相結合,從理論基礎和程序實現這兩個方面系統介紹了CNN、GAN和RNN等經典模型,然後深入剖析了TensorFlow運行時核心、通信原理和數據流圖計算的原理與實現,最後全面介紹了TensorFlow生態系統的發展。
作者簡介
彭靖田,才雲科技技術總監,谷歌機器學習開發專家(ML GDE),Kubeflow Core Maintainer,TensorFlow Contributor,曾一度成為TensorFlow社區全球前40的貢獻者。加州大學圣迭戈分校訪問學者,畢業於浙江大學竺可楨學院求是科學班。曾為華為深度學習團隊核心成員,主要參與華為深度學習平台的設計和研發工作。
林健,華為深度學習團隊系統工程師。在中科院計算所取得博士學位,並在美國俄亥俄州立大學做過博士後研究。長期從事系統軟件研發,工作涉及高性能計算與分佈式系統,愛好開源軟件與人工智能。曾參與開發CNGrid GOS、MVAPICH等工業級軟件,並協作創建LingCloud、DataMPI等開源項目。
白小龍,華為公司深度學習雲服務的技術負責人,主要負責深度學習平台、模型和算法的研發。長期從事信號、圖像處理和機器學習研究,於2015年6月畢業於浙江大學並取得工學博士學位,曾獲教育部博士生學術新人獎。
目錄大綱
第一部分基礎篇
第1章TensorFlow系統概述2
1.1簡介2
1.1.1產生背景2
1.1.2獨特價值3
1.1.3版本變遷4
1.1.4與其他主流深度學習框架的對比6
1.2設計目標7
1.2. 1靈活通用的深度學習庫8
1.2.2端雲結合的人工智能引擎9
1.2.3高性能的基礎平台軟件10
1.3基本架構12
1.3.1工作形態12
1.3.2組件結構13
1.4小結14
第2章TensorFlow環境準備15
2.1安裝15
2.1.1 TensorFlow安裝概述15
2.1.2使用Anaconda安裝17
2.1.3使用原生pip安裝17
2.1.4使用virtualenv安裝18
2.1.5使用Docker安裝19
2.1.6使用源代碼編譯安裝20
2.1.7 Hello TensorFlow 22
2.2依賴項23
2.2.1 Bazel軟件構建工具24
2.2.2 Protocol Buffers數據結構序列化工具25
2.2.3 Eigen線性代數計算庫27
2.2.4 CUDA統一計算設備架構28
2.3源代碼結構29
2.3.1根目錄29
2.3.2 tensorflow目錄30
2.3.3 tensorflow/core目錄31
2.3.4 tensorflow/python目錄32
2.3.5安裝目錄33
2.4小結33
第3章TensorFlow基礎概念34
3.1編程範式:數據流圖34
3.1.1聲明式編程與命令式編程34
3.1.2聲明式編程在深度學習應用上的優勢35
3.1.3 TensorFlow數據流圖的基本概念38
3.2數據載體:張量40
3.2.1張量:Tensor 40
3.2.2稀疏張量:SparseTensor 44
3.3模型載體:操作46
3.3.1計算節點:Operation 46
3.3 .2存儲節點:Variable 49
3.3.3數據節點:Placeholder 53
3.4運行環境:會話55
3.4.1普通會話:Session 55
3.4.2交互式會話:InteractiveSession 59
3.4.3擴展閱讀:會話實現原理59
3.5訓練工具:優化器61
3.5.1損失函數與優化算法61
3.5.2優化器概述64
3.5.3使用minimize方法訓練模型66
3.5.4擴展閱讀:模型訓練方法進階68
3.6一元線性回歸模型的最佳實踐72
3.7小結76
第二部分關鍵模塊篇
第4章TensorFlow數據處理方法78
4.1輸入數據集78
4.1.1使用輸入流水線並行讀取數據78
4.1.2創建批樣例數據的方法86
4.1.3填充數據節點的方法87
4.1.4處理CIFAR-10數據集的最佳實踐88
4.1.5擴展閱讀:MNIST數據集91
4.2模型參數92
4.2.1模型參數的典型使用流程92
4.2.2使用tf.Variable創建、初始化和更新模型參數92
4.2.3使用tf.train.Saver保存和恢復模型參數98
4.2.4使用變量作用域處理複雜模型100
4.3命令行參數103
4.3.1使用argparse解析命令行參數103
4.3.2使用tf. app.flags解析命令行參數108
4.4小結111
第5章TensorFlow編程框架112
5.1單機程序編程框架112
5.1.1概述112
5.1.2創建單機數據流圖114
5.1.3創建並運行單機會話116
5.2分佈式程序編程框架118
5.2.1 PS-worker架構概述118
5.2.2分佈式程序編程框架概述120
5.2.3創建TensorFlow集群121
5.2.4將操作放置到目標設備124
5.2.5數據並行模式124
5.2.6同步訓練機制125
5.2.7異步訓練機制130
5.2.8使用Supervisor管理模型訓練131
5.2.9分佈式同步訓練的最佳實踐133
5.3小結137
第6章TensorBoard可視化工具138
6.1概述138
6.2可視化數據流圖142
6.2.1名字作用域與抽象節點142
6.2.2可視化數據流圖的最佳實踐144
6.2.3擴展閱讀:匯總數據和事件數據145
6.2.4擴展閱讀:揭秘tf.summary.FileWriter工作原理147
6.3可視化學習過程149
6.3.1匯總操作概述149
6.3.2使用tf.summary.scalar生成折線圖150
6.3.3使用tf.summary.histogram生成數據分佈圖152
6.3.4使用tf.summary.image生成圖像154
6.3.5使用tf.summary.audio生成音頻155
6.3.6可視化MNIST softmax模型學習過程的最佳實踐156
6.4可視化高維數據158
6.4.1使用TensorBoard可視化高維數據158
6.4.2可視化MNIST數據集的最佳實踐160
6.5小結163
第7章模型託管工具:TensorFlow Serving 164
7.1概述164
7.2系統架構165
7.3安裝167
7.3.1使用APT安裝ModelServer 168
7.3.2使用源碼編譯安裝ModelServer 169
7.4最佳實踐170
7.4.1導出模型170
7.4.2發布模型服務173
7.4.3更新線上模型服務174
7.5小結175
第三部分算法模型篇
第8章深度學習概述178
8.1深度學習的歷史178
8.1.1感知機模型與神經網絡178
8.1.2神經網絡的寒冬與復蘇179
8.1.3神經網絡的發展與第二次寒冬181
8.1.4深度學習時代的到來183
8.2深度學習的主要應用184
8.2.1計算機視覺185
8.2.2自然語言處理186
8.2.3強化學習188
8.3深度學習與TensorFlow 190
8.4小結191
第9章CNN模型192
9.1 CNN 192
9.1.1 CNN簡介192
9.1.2卷積層193
9.1.3激活層195
9.1.4池化層195
9.1.5全連接層196
9.1.6 Dropout層196
9.1.7 BN層197
9.1.8常用的CNN圖像分類模型197
9.2 TensorFlow-Slim 204
9.2.1 TensorFlow-Slim總體結構204
9.2.2 datasets包和data包205
9.2.3 preprocessing包207
9.2.4 deployment包207
9.2.5 nets包209
9.2.6 TensorFlow-Slim最佳實踐212
9.3應用216
9.3.1物體檢測216
9.3.2圖像分割221
9.4小結222
第10章GAN模型223
10.1原理、特點及應用223
10.1.1原理224
10.1.2特點225
10.1.3應用226
10.2 GAN模型的改進228
10.2.1 CGAN模型228
10.2.2 LAPGAN模型229
10.2.3 DCGAN模型230
10.2.4 InfoGAN模型230
10.2.5 LSGAN模型231
10.2.6 WGAN模型232
10.3最佳實踐233
10.4小結238
第11章RNN模型239
11.1基本RNN單元及其變種239
11.1.1 RNN模型簡介239
11.1.2基本RNN單元240
11.1.3 LSTM單元242
11.1.4 GRU單元243
11.1.5雙向RNN單元244
11.1.6帶有其他特性的RNN單元245
11.2 RNN模型247
11.2.1 PTB-LSTM語言模型247
11.2.2 Seq2Seq模型251
11.3小結254
第四部分核心揭秘篇
第12章TensorFlow運行時核心設計與實現256
12.1運行時框架概述256
12.2關鍵數據結構257
12.2.1張量相關數據結構258
12.2.2設備相關數據結構260
12.2.3數據流圖相關的數據結構263
12.3公共基礎機制266
12.3.1內存分配266
12.3.2線程管理268
12.3.3多語言接口269
12.3.4 XLA編譯技術270
12.3.5單元測試框架271
12.4外部環境接口272
12.4.1加速器硬件接口272
12.4.2系統軟件接口275
12.5小結276
第13章通信原理與實現277
13.1概述277
13.2進程內通信278
13.2.1通信接口278
13.2.2會合點機制280
13.2.3異構設備內存訪問282
13.3進程間通信283
13.3.1 gRPC通信機制284
13.3.2控制通信286
13.3.3數據通信290
13.4 RDMA通信模塊294
13.4.1模塊結構295
13.4.2消息語義296
13.4.3通信流程297
13.5小結300
第14章數據流圖計算原理與實現301
14.1概述301
14.2數據流圖創建302
14.2.1流程與抽象303
14.2.2全圖構造305
14.2.3子圖提取306
14.2.4圖切分307
14.2.5圖優化308
14.3單機會話運行308
14.3.1流程與抽象309
14.3.2執行器獲取311
14.3.3輸入數據填充312
14.3.4圖運行313
14.3.5輸出數據獲取315
14.3.6張量保存315
14.4分佈式會話運行315
14.4.1主-從模型316
14.4.2主要抽象317
14.4.3 client創建會話319
14.4.4 client請求圖運行320
14.4.5 master驅動圖運行321
14.4.6 worker實施圖運行323
14.5操作節點執行325
14.5.1核函數抽象325
14.5 .2 CPU上的執行流程326
14.5.3 CUDA GPU上的執行流程326
14.6小結327
第五部分生態發展篇
第15章TensorFlow生態環境330
15.1生態環境概況330
15.1.1社區託管組件330
15.1.2第三方項目333
15.2深度神經網絡庫Keras 334
15.2.1概述334
15.2.2模型概述335
15.2.3順序模型336
15.2.4函數式模型338
15.3 TensorFlow與Kubernetes生態的結合340
15.4 TensorFlow與Spark生態的結合344
15.5 TensorFlow通信優化技術345
15.6 TPU及神經網絡處理器348
15.7 NNVM模塊化深度學習組件349
15.8 TensorFlow未來展望——TFX 351
15.9小結353
附錄A 354