《深入理解TensorFlow 架構設計與實現原理》是一部由彭靖田,林健,白小龍所編著的書籍,人民郵電出版社出版發行。
基本介紹
- 書名:深入理解TensorFlow 架構設計與實現原理
- 作者:彭靖田,林健,白小龍
- ISBN:9787115480941
- 出版社:人民郵電出版社
出版信息,內容簡介,目錄,
出版信息
- 出版社:人民郵電出版社
- ISBN:9787115480941
- 版次:1
- 商品編碼:12349620
- 包裝:平裝
- 開本:16開
- 出版時間:2018-05-01
- 用紙:膠版紙
內容簡介
本書以TensorFlow 1.2為基礎,從基本概念、內部實現和實踐等方面深入剖析了TensorFlow。書中首先介紹了TensorFlow設計目標、基本架構、環境準備和基礎概念,接著重點介紹了以數據流圖為核心的機器學習編程框架的設計原則與核心實現,緊接著還將TensorFlow與深度學習相結合,從理論基礎和程式實現這兩個方面系統介紹了CNN、GAN和RNN等經典模型,然後深入剖析了TensorFlow運行時核心、通信原理和數據流圖計算的原理與實現,全面介紹了TensorFlow生態系統的發展。
目錄
第 一部分 基礎篇
第 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