簡明的TensorFlow 2(全彩印刷)(圖靈出品)
定 價:99 元
- 作者:李錫涵,李卓桓,朱金鵬 著
- 出版時間:2020/9/1
- ISBN:9787115546685
- 出 版 社:人民郵電出版社
- 中圖法分類:TP18
- 頁碼:215
- 紙張:膠版紙
- 版次:1
- 開本:16開
本書圍繞 TensorFlow 2 的概念和功能展開介紹,旨在以“即時執(zhí)行”視角幫助讀者快速入門 TensorFlow。本書共分5篇:基礎(chǔ)篇首先介紹了 TensorFlow的安裝配置和基本概念,然后以深度學習中常用的卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)等網(wǎng)絡(luò)結(jié)構(gòu)為例,介紹了使用 TensorFlow建立和訓練模型的方式,最后介紹了 TensorFlow中常用模塊的使用方法;部署篇介紹了在服務(wù)器、嵌入式設(shè)備和瀏覽器等平臺部署 TensorFlow模型的方法;大規(guī)模訓練篇介紹了在 TensorFlow中進行分布式訓練和使用 TPU 訓練的方法;擴展篇介紹了多種 TensorFlow 生態(tài)系統(tǒng)內(nèi)的常用及前沿工具;高級篇則為進階開發(fā)者介紹了 TensorFlow程序開發(fā)的更多深入細節(jié)及技巧。
TensorFlow 中國研發(fā)負責人李雙峰,Google 全球生態(tài)系統(tǒng)項目負責人傾力推薦;
3位 ML GDE 共同創(chuàng)作,以“即時執(zhí)行”視角帶你領(lǐng)略 TensorFlow 2 的全新開發(fā)模式;
TensorFlow 2降低機器學習門檻,促使機器學習無處不在;
一本書讓你快速入門 TensorFlow 2,同時掌握多端部署能力!
本書以簡潔的方式講解 TensorFlow 2,為你開啟深度學習編程進階之旅。
——汪軍,倫敦大學學院計算機科學系教授
本書不僅僅是一本 TensorFlow 2 工具書,它除了有零門檻的入門章節(jié)與簡明的用法示例外,還兼有基礎(chǔ)理論的介紹以及面向應(yīng)用場景的擴展章節(jié)。本書摒棄了傳統(tǒng)軟件工具書嚴肅刻板的教學風格,圍繞實際代碼案例展開經(jīng)驗分享式敘述,是一本適合讀者溫習機器學習理論、了解 TensorFlow 用法并開拓視野的優(yōu)秀技術(shù)書。
——吳康隆,加利福尼亞大學戴維斯分校博士研究生,《簡單高效LaTeX》作者
一直想寫一本關(guān)于 TensorFlow 2 的書,可惜忙于創(chuàng)業(yè)無暇投入。有幸從 0 到 1 見證了好友錫涵、卓桓和金鵬的新書落地,作為一個過來人,深知不易。本書從算法科學家的視角切入,由淺入深帶你逐步掌握 TensorFlow 2 的核心模塊和常見用例。本書作為官方文檔的補充學習材料,具有獨特的參考價值。
——彭靖田,品覽聯(lián)合創(chuàng)始人兼CTO,《深入理解TensorFlow:架構(gòu)設(shè)計與實現(xiàn)原理》作者
李錫涵,谷歌開發(fā)者專家(機器學習領(lǐng)域),北京大學信息科學技術(shù)學院智能科學系理學碩士,本科畢業(yè)于浙江大學竺可楨學院混合班。曾獲全國青少年信息學奧林匹克聯(lián)賽一等獎,美國大學生數(shù)學建模競賽特等獎。曾在多智能體會議AAMAS和自然語言處理會議COLING上發(fā)表學術(shù)論文。現(xiàn)研究方向為強化學習在優(yōu)化領(lǐng)域的實際應(yīng)用,即將赴倫敦大學學院攻讀計算機博士學位。開源在線入門手冊《簡單粗暴TensorFlow 2》作者。本書封面插圖作者。
李卓桓,谷歌開發(fā)者專家(機器學習領(lǐng)域)。清華大學本科,中歐國際工商學院EMBA,北京郵電大學計算機博士在讀,F(xiàn)任PreAngel合伙人,Plug and Play Ventures Partner,關(guān)注種子期AI創(chuàng)業(yè)項目。zixia BBS、嘰歪網(wǎng)創(chuàng)始人,曾任優(yōu)酷網(wǎng)首席科學家、水木清華BBS站長、ChinaRen系統(tǒng)工程師。擁有豐富的互聯(lián)網(wǎng)創(chuàng)業(yè)投資和編程經(jīng)驗,著有《Linux網(wǎng)絡(luò)編程》《反垃圾郵件完全手冊》《智能問答與深度學習》《Chatbot從0到1:對話式交互設(shè)計實踐指南》等技術(shù)書。GitHub 8000+ Star 開源項目 Wechaty 作者。
朱金鵬,華為高級軟件工程師,前谷歌開發(fā)者專家(機器學習領(lǐng)域),從事Android系統(tǒng)和運行時設(shè)計開發(fā)9年,在Android系統(tǒng)、運行時、機器學習等領(lǐng)域都有較深入的研究和探索。積極參與谷歌技術(shù)社區(qū)活動并進行技術(shù)分享。歡迎關(guān)注作者的微信公眾號deepinthinking。
目 錄
第0 章 TensorFlow 概述 1
基 礎(chǔ) 篇
第 1 章 TensorFlow 的安裝與環(huán)境配置 4
1.1 一般安裝步驟 4
1.2 GPU 版本 TensorFlow 安裝指南 6
1.2.1 GPU 硬件的準備 6
1.2.2 NVIDIA 驅(qū)動程序的安裝 6
1.2.3 CUDA Toolkit 和 cuDNN 的安裝 8
1.3 第 一個程序 8
1.4 IDE 設(shè)置 9
1.5* TensorFlow 所需的硬件配置 10
第 2 章 TensorFlow 基礎(chǔ) 12
2.1 TensorFlow 1+1 12
2.2 自動求導機制 14
2.3 基礎(chǔ)示例:線性回歸 15
2.3.1 NumPy 下的線性回歸 16
2.3.2 TensorFlow 下的線性回歸 17
第 3 章 TensorFlow 模型建立與訓練 19
3.1 模型與層 19
3.2 基礎(chǔ)示例:多層感知器(MLP) 22
3.2.1 數(shù)據(jù)獲取及預處理:tf.keras.datasets 23
3.2.2 模型的構(gòu)建:tf.keras.Model 和 tf.keras.layers 24
3.2.3 模型的訓練:tf.keras.losses 和 tf.keras.optimizer 25
3.2.4 模型的評估:tf.keras.metrics 26
3.3 卷積神經(jīng)網(wǎng)絡(luò)(CNN) 28
3.3.1 使用 Keras 實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò) 29
3.3.2 使用 Keras 中預定義的經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) 30
3.4 循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN) 35
3.5 深度強化學習(DRL) 40
3.6* Keras Pipeline 43
3.6.1 Keras Sequential/Functional API 模式建立!44
3.6.2 使用 Keras Model 的 compile、fit 和 evaluate 方法訓練和評估模型 44
3.7* 自定義層、損失函數(shù)和評估指標 45
3.7.1 自定義層 45
3.7.2 自定義損失函數(shù)和評估指標 46
第 4 章 TensorFlow 常用模塊 48
4.1 tf.train.Checkpoint:變量的保存與恢復 48
4.2 TensorBoard:訓練過程可視化 52
4.2.1 實時查看參數(shù)變化情況 52
4.2.2 查看 Graph 和 Profile 信息 53
4.2.3 實例:查看多層感知器模型的訓練情況 55
4.3 tf.data:數(shù)據(jù)集的構(gòu)建與預處理 55
4.3.1 數(shù)據(jù)集對象的建立 55
4.3.2 數(shù)據(jù)集對象的預處理 57
4.3.3 使用 tf.data 的并行化策略提高訓練流程效率 60
4.3.4 數(shù)據(jù)集元素的獲取與使用 61
4.3.5 實例:cats_vs_dogs 圖像分類 62
4.4 TFRecord:TensorFlow 數(shù)據(jù)集存儲格式 64
4.4.1 將數(shù)據(jù)集存儲為 TFRecord 文件 65
4.4.2 讀取 TFRecord 文件 66
4.5* @tf.function:圖執(zhí)行模式 68
4.5.1 @tf.function 基礎(chǔ)使用方法 68
4.5.2 @tf.function 內(nèi)在機制 69
4.5.3 AutoGraph:將 Python 控制流轉(zhuǎn)換為 TensorFlow 計算圖 72
4.5.4 使用傳統(tǒng)的 tf.Session 73
4.6* tf.TensorArray:TensorFlow 動態(tài)數(shù)組 74
4.7* tf.config:GPU 的使用與分配 75
4.7.1 指定當前程序使用的 GPU 75
4.7.2 設(shè)置顯存使用策略 76
4.7.3 單 GPU 模擬多 GPU 環(huán)境 77
部 署 篇
第 5 章 TensorFlow 模型導出 80
5.1 使用 SavedModel 完整導出模型 80
5.2 Keras 自有的模型導出格式 82
第 6 章 TensorFlow Serving 84
6.1 TensorFlow Serving 安裝 84
6.2 TensorFlow Serving 模型部署 85
6.2.1 Keras Sequential 模式模型的部署 86
6.2.2 自定義 Keras 模型的部署 86
6.3 在客戶端調(diào)用以 TensorFlow Serving 部署的模型 87
6.3.1 Python 客戶端示例 87
6.3.2 Node.js 客戶端示例(Ziyang) 88
第 7 章 TensorFlow Lite 91
7.1 模型轉(zhuǎn)換 91
7.2 Android 部署 92
7.3 Quantized 模型轉(zhuǎn)換 96
7.4 總結(jié) 100
第 8 章 TensorFlow.js 101
8.1 TensorFlow.js 環(huán)境配置 102
8.1.1 在瀏覽器中使用 TensorFlow.js 102
8.1.2 在 Node.js 中使用 TensorFlow.js 103
8.1.3 在微信小程序中使用 TensorFlow.js 104
8.2 ensorFlow.js 模型部署 105
8.2.1 在瀏覽器中加載 Python 模型 105
8.2.2 在 Node.js 中執(zhí)行原生 SavedModel 模型 106
8.2.3 使用 TensorFlow.js 模型庫 107
8.2.4 在瀏覽器中使用 MobileNet 進行攝像頭物體識別 107
8.3* TensorFlow.js 模型訓練與性能對比 110
大規(guī)模訓練篇
第 9 章 TensorFlow 分布式訓練 116
9.1 單機多卡訓練:MirroredStrategy 116
9.2 多機訓練:MultiWorkerMirrored-Strategy 118
第 10 章 使用 TPU 訓練 TensorFlow 模型 120
10.1 TPU 簡介 120
10.2 TPU 環(huán)境配置 122
10.3 TPU 基本用法 123
擴 展 篇
第 11 章 TensorFlow Hub 模型復用 126
11.1 TF Hub 網(wǎng)站 126
11.2 TF Hub 安裝與復用 127
11.3 TF Hub 模型二次訓練樣例 130
第 12 章 TensorFlow Datasets 數(shù)據(jù)集載入 131
第 13 章 Swift for TensorFlow 133
13.1 S4TF 環(huán)境配置 133
13.2 S4TF 基礎(chǔ)使用 134
13.2.1 在 Swift 中使用標準的 TensorFlow API 135
13.2.2 在 Swift 中直接加載 Python 語言庫 136
13.2.3 語言原生支持自動微分 136
13.2.4 MNIST 數(shù)字分類 137
第 14 章* TensorFlow Quantum: 混合量子 - 經(jīng)典機器學習 140
14.1 量子計算基本概念 141
14.1.1 量子位 141
14.1.2 量子邏輯門 142
14.1.3 量子線路 143
14.1.4 實例:使用 Cirq 建立簡單的量子線路 144
14.2 混合量子 - 經(jīng)典機器學習 144
14.2.1 量子數(shù)據(jù)集與帶參數(shù)的量子門 145
14.2.2 參數(shù)化的量子線路(PQC) 146
14.2.3 將參數(shù)化的量子線路嵌入機器學習模型 146
14.2.4 實例:對量子數(shù)據(jù)集進行二分類 147
高 級 篇
第 15 章 圖執(zhí)行模式下的 TensorFlow 2 150
15.1 TensorFlow 1+1 150
15.1.1 使用計算圖進行基本運算 150
15.1.2 計算圖中的占位符與數(shù)據(jù)輸入 152
15.1.3 計算圖中的變量 153
15.2 自動求導機制與優(yōu)化器 156
15.2.1 自動求導機制 156
15.2.2 優(yōu)化器 157
15.2.3* 自動求導機制的計算圖對比 158
15.3 基礎(chǔ)示例:線性回歸 161
15.3.1 自動求導機制 162
15.3.2 優(yōu)化器 162
第 16 章 tf.GradientTape 詳解 164
16.1 基本使用 164
16.2 監(jiān)視機制 165
16.3 高階求導 166
16.4 持久保持記錄與多次求導 166
16.5 圖執(zhí)行模式 167
16.6 性能優(yōu)化 167
16.7 實例:對神經(jīng)網(wǎng)絡(luò)的各層變量獨立求導 167
第 17 章 TensorFlow 性能優(yōu)化 169
17.1 關(guān)于計算性能的若干重要事實 169
17.2 模型開發(fā):擁抱張量運算 170
17.3 模型訓練:數(shù)據(jù)預處理和預載入 171
17.4 模型類型與加速潛力的關(guān)系 171
17.5 使用針對特定 CPU 指令集優(yōu)化的 TensorFlow 172
17.6 性能優(yōu)化策略 172
第 18 章 Android 端側(cè) Arbitrary Style Transfer 模型部署 173
18.1 Arbitrary Style Transfer 模型解析 174
18.1.1 輸入輸出 174
18.1.2 bottleneck 數(shù)組 174
18.2 Arbitrary Style Transfer 模型部署 175
18.2.1 gradle 設(shè)置 175
18.2.2 style predict 模型部署 175
18.2.3 transform 模型部署 178
18.2.4 效果 180
18.3 總結(jié) 182
附錄 A 強化學習簡介 183
附錄 B 使用 Docker 部署 TensorFlow 環(huán)境 197
附錄 C 在云端使用 TensorFlow 200
附錄 D 部署自己的交互式 Python 開發(fā)環(huán)境 JupyterLab 211
附錄 E 參考資料與推薦閱讀 214
附錄 F 術(shù)語中英對照 216