TensorFlow是目前流行的數(shù)值計算庫,專用于構(gòu)建分布式、云計算和移動環(huán)境。TensorFlow將數(shù)據(jù)表示為張量,將計算表示為計算圖。
《精通TensorFlow》是一本綜合指南,可讓您理解TensorFlow 1.x的高級功能,深入了解TensorFlow 內(nèi)核、Keras、 TF Estimator、TFLearn、TF Slim、PrettyTensor和Sonnet。利用TensorFlow和Keras提供的功能,使用遷移學(xué)習、生成對抗網(wǎng)絡(luò)和深度強化學(xué)習等概念來構(gòu)建深度學(xué)習模型。通過本書,您將獲得在各種數(shù)據(jù)集(例如 MNIST、CIFAR-10、PTB、text8和COCO圖像)上的實踐經(jīng)驗。
您還能夠?qū)W習TensorFlow1.x的高級功能,例如分布式TensorFlow,使用TensorFlow服務(wù)部署生產(chǎn)模型,以及在Android和iOS平臺上為移動和嵌入式設(shè)備構(gòu)建和部署TensorFlow模型。您將看到如何在R統(tǒng)計軟件中調(diào)用 TensorFlow和Keras API,還能了解在TensorFlow的代碼無法按預(yù)期工作時所需的調(diào)試技術(shù)。
《精通TensorFlow》可幫助您深入了解TensorFlow,使您成為解決人工智能問題的專家。總之,在學(xué)習本書之后,可掌握TensorFlow和Keras的產(chǎn)品,并獲得構(gòu)建更智能、更快速、更高效的機器學(xué)習和深度學(xué)習系統(tǒng)所需的技能。
1.牛津大學(xué)物聯(lián)網(wǎng)課程創(chuàng)建者和首席數(shù)據(jù)科學(xué)家Ajit Jaokar為本書作序并傾情推薦。
2.通過閱讀本書,能夠深入了解和掌握TensorFlow,并能構(gòu)建實用的機器學(xué)習和深度學(xué)習系統(tǒng)。
3.本書涵蓋了TensorFlow 1.x的許多高級功能,并涉及很多先進的技術(shù),如遷移學(xué)習、深度強化學(xué)習、生成對抗網(wǎng)絡(luò)等。
4.本書提供了大量示例,其代碼可以通過GitHub網(wǎng)址下載,具體地址見封面背面。
原書前言
Google公司的 TensorFlow已經(jīng)成為開發(fā)人員在應(yīng)用程序中引入智能處理技術(shù)的主要開發(fā)工具。與此同時, TensorFlow已經(jīng)成為每個組織的主要研究工具和工程工具。因此,需要進一步學(xué)習 TensorFlow的高級用例,這些用例可以在各種軟件和設(shè)備上構(gòu)建智能系統(tǒng)。 TensorFlow憑借迅速的迭代更新以及代碼調(diào)試,可將智能理念帶入到項目中。因此,精通TensorFlow是創(chuàng)造先進的機器學(xué)習、深度學(xué)習應(yīng)用的必由之路!毒═ensorFlow》一書將幫您學(xué)習 TensorFlow的所有高級功能。為了使讀者學(xué)習進入人工智能世界所需的專業(yè)知識,本書匯集了關(guān)鍵信息,因此本書可拓展中級 TensorFlow用戶的知識面,使其達到更高水平。本書涵蓋了從實現(xiàn)先進計算到接近現(xiàn)實世界的研究領(lǐng)域。有了這個非常全面的指南,可以讓讀者在開發(fā)者社區(qū)中充分施展才能,也為讀者提供了一個為研究工作或項目做出貢獻的平臺。
本書讀者對象
《精通TensorFlow》適用于任何想要用 TensorFlow解決深度學(xué)習問題的人員,也適用于那些正在尋找易于理解的技術(shù)指南,想深入學(xué)習復(fù)雜使用案例的技術(shù)人員。要想充分利用本書,需要對 TensorFlow和 Python有基本的了解。
本書涵蓋的內(nèi)容
第1章,TensorFlow 101。本章介紹了 TensorFlow的基礎(chǔ)知識,例如如何創(chuàng)建張量、常量、變量、占位符和相關(guān)操作;了解計算圖以及如何將計算圖節(jié)點放置在各種設(shè)備(如 GPU)上。通過本章,還可以學(xué)習如何使用 TensorBoard來可視化各種中間結(jié)果和最終的輸出值。
第2章,TensorFlow的高級庫。本章介紹了幾個高級庫,包括 TF Contrib Learn、TF Slim、TFLearn、Sonnet和 Pretty Tensor等。
第3章,Keras 101。本章詳細介紹了高級庫 Keras,這是 TensorFlow核心之一。
第4章,基于 TensorFlow的經(jīng)典機器學(xué)習算法。本章介紹如何使用 TensorFlow來實現(xiàn)經(jīng)典的機器學(xué)習算法,如線性回歸和邏輯回歸分類。
第5章,基于 TensorFlow和 Keras的神經(jīng)網(wǎng)絡(luò)和多層感知機。本章介紹了神經(jīng)網(wǎng)絡(luò)的概念,并介紹如何構(gòu)建簡單的神經(jīng)網(wǎng)絡(luò)模型,還介紹了如何構(gòu)建多層感知機(MLP)。
第6章,基于 TensorFlow和 Keras的 RNN。本章介紹如何用 TensorFlow和 Keras構(gòu)建 RNN。這里將介紹 RNN、長短期記憶( LSTM)網(wǎng)絡(luò)和門控循環(huán)單元( GRU)網(wǎng)絡(luò)的內(nèi)部結(jié)構(gòu)。本章還會簡要介紹在 TensorFlow和 Keras中用于實現(xiàn) RNN模型的 API函數(shù)和類。
第7章,基于 TensorFlow和 Keras的 RNN在時間序列數(shù)據(jù)中的應(yīng)用。本章介紹了如何構(gòu)建和訓(xùn)練基于時間序列數(shù)據(jù)的 RNN模型,并提供相應(yīng)的示例。
第8章,基于 TensorFlow和 Keras 的 RNN在文本數(shù)據(jù)中的應(yīng)用。本章介紹如何構(gòu)建和訓(xùn)練基于文本數(shù)據(jù)的 RNN模型,并給出相應(yīng)的示例。這一章會學(xué)習使用 TensorFlow和 Keras來構(gòu)建詞向量,然后通過基于詞向量嵌入的 LSTM模型從示例文本數(shù)據(jù)中生成文本。
第9章,基于 TensorFlow和 Keras的 CNN。本章介紹用于處理圖像數(shù)據(jù)的 CNN模型,并給出基于 TensorFlow和 Keras庫的示例,該示例實現(xiàn)了 LeNet架構(gòu)模式。
第10章,基于 TensorFlow和 Keras的自編碼器。本章介紹了用于處理圖像數(shù)據(jù)的自編碼模型,并給出基于 TensorFlow和 Keras庫的示例,同時也給出了簡單自編碼器、去噪自編碼器和變分自編碼器的實現(xiàn)。
第11章,使用 TF服務(wù)提供生成環(huán)境下的 TensorFlow模型。本章會介紹如何用 TensorFlow服務(wù)來部署模型,學(xué)習如何在 Docker容器和 Kubernetes集群中使用 TF服務(wù)進行部署。
第12章,遷移學(xué)習模型和預(yù)訓(xùn)練模型。本章會介紹如何用預(yù)訓(xùn)練模型來進行預(yù)測,學(xué)習如何在不同的數(shù)據(jù)集上重新訓(xùn)練模型。本章提供基于 VGG16和 Inception V3模型的示例,這些模型預(yù)先在 ImageNet數(shù)據(jù)集上訓(xùn)練好,并用來預(yù)測 COCO數(shù)據(jù)集中的圖像;也會介紹一個示例,它通過使用 COCO數(shù)據(jù)集重新訓(xùn)練模型的最后一層來改進預(yù)測效果。
第13章,深度強化學(xué)習。本章會介紹強化學(xué)習和 OpenAIgym框架。也會介紹如何使用各種強化學(xué)習策略(包括深度 Q網(wǎng)絡(luò))來構(gòu)建和訓(xùn)練多個模型。
第14章,生成對抗網(wǎng)絡(luò)( GAN)。本章介紹如何通過 TensorFlow和 Keras來構(gòu)建和訓(xùn)練生成對抗模型。
第15章,基于 TensorFlow集群的分布式模型。本章將介紹如何基于 TensorFlow集群來訓(xùn)練 TensorFlow模型,這是一種分布式訓(xùn)練方法。本章還會通過示例介紹以數(shù)據(jù)并行方式訓(xùn)練模型時的異步和同步更新方法。
第16章,移動和嵌入式平臺上的 TensorFlow模型。本章會介紹如何在基于 iOS和 Android平臺的移動設(shè)備上部署 TensorFlow模型。本章涵蓋了基于 TensorFlow庫的 TF Mobile和 TF Lite API。
第17章,R中的 TensorFlow和 Keras。本章介紹了如何在 R統(tǒng)計軟件中構(gòu)建和訓(xùn)練 TensorFlow模型,還介紹 R Studio用于實現(xiàn) TF Core,TF Estimators和 Keras API的三個軟件包。
第18章,調(diào)試 TensorFlow模型。本章會介紹當模型無法按預(yù)期工作時,如何發(fā)現(xiàn)熱點問題的策略和技巧。本章涵蓋了 TensorFlow調(diào)試器和其他調(diào)試方法。
附錄,張量處理單元。本章簡要介紹了張量處理單元( TPU)。TPU是用來訓(xùn)練和
Armando Fandango利用自己在深度學(xué)習、計算方法和分布式計算方面的專業(yè)知識,創(chuàng)造了人工智能(AI)產(chǎn)品。他為Owen.ai公司在AI產(chǎn)品戰(zhàn)略方面提供建議。他創(chuàng)建了NeuraSights公司,其目標是利用神經(jīng)網(wǎng)絡(luò)創(chuàng)建有技術(shù)深度的產(chǎn)品。他還創(chuàng)建了Vets2Data公司,這家非盈利機構(gòu)主要幫助美國退役軍人掌握AI技能。
Armando出版了2本專著,并在國際期刊和會議上發(fā)表了他的研究成果。
譯者序
原書序
原書前言
第 1章 TensorFlow 101 // 1
1.1 什么是 TensorFlow // 1
1.2 TensorFlow內(nèi)核 // 2
1.2.1 簡單的示例代碼 -Hello TensorFlow // 2
1.2.2 張量 // 3
1.2.3 常量 // 4
1.2.4 操作 // 5
1.2.5 占位符 // 6
1.2.6 從 Python對象創(chuàng)建張量 // 7
1.2.7 變量 // 9
1.2.8 由庫函數(shù)生成的張量 // 10
1.2.9 通過 tf.get_variable( )獲取變量 // 13
1.3 數(shù)據(jù)流圖或計算圖 // 14
1.3.1 執(zhí)行順序和延遲加載 // 15
1.3.2 跨計算設(shè)備執(zhí)行計算圖 -CPU和 GPU // 15
1.3.3 多個計算圖 // 18
1.4 TensorBoard // 19
1.4.1 TensorBoard最小的例子 // 19
1.4.2 TensorBoard的細節(jié) // 21
1.5 總結(jié) // 21
第 2章 TensorFlow的高級庫 // 22
2.1 TF Estimator // 22
2.2 TF Slim // 24
2.3 TFLearn // 25
2.3.1 創(chuàng)建 TFLearn層 // 26
2.3.2 創(chuàng)建 TFLearn模型 // 30
2.3.3 訓(xùn)練 TFLearn模型 // 30
2.3.4 使用 TFLearn模型 // 30
2.4 PrettyTensor // 31
2.5 Sonnet // 32
2.6 總結(jié) // 34
第 3章 Keras101 // 35
3.1 安裝 Keras // 35
3.2 Keras的神經(jīng)網(wǎng)絡(luò)模型 // 36
3.2.1 在 Keras中創(chuàng)建模型的過程 // 36
3.3 創(chuàng)建 Keras模型 // 36
3.3.1 用于創(chuàng)建 Keras模型的序列化 API // 36
3.3.2 用于創(chuàng)建 Keras模型的功能性 API // 37
3.4 Keras的層 // 37
3.4.1 Keras內(nèi)核層 // 37
3.4.2 Keras卷積層 // 38
3.4.3 Keras池化層 // 38
3.4.4 Keras局連接層 // 39
3.4.5 Keras循環(huán)層 // 39
3.4.6 Keras嵌入層 // 39
3.4.7 Keras合并層 // 39
3.4.8 Keras高級激活層 // 40
3.4.9 Keras歸一化層 // 40
3.4.10 Keras噪聲層 // 40
3.5 將網(wǎng)絡(luò)層添加到 Keras模型中 // 40
3.5.1 利用序列化 API將網(wǎng)絡(luò)層添加到 Keras模型中 // 40
3.5.2 利用功能性 API將網(wǎng)絡(luò)層添加到 Keras模型中 // 41
3.6 編譯 Keras模型 // 41
3.7 訓(xùn)練 Keras模型 // 42
3.8 使用 Keras模型進行預(yù)測 // 42
3.9 Keras中的其他模塊 // 43
3.10 基于 MNIST數(shù)據(jù)集的 Keras順序模型示例 // 43
3.11 總結(jié) // 45
第 4章 基于TensorFlow的經(jīng)典機器學(xué)習算法 // 47
4.1 簡單的線性回歸 // 48
4.1.1 數(shù)據(jù)準備 // 49
4.1.2 建立簡單的回歸模型 // 50
4.1.3 使用訓(xùn)練好的模型進行預(yù)測 // 55
4.2 多元回歸 // 55
4.3 正則化回歸 // 58
4.3.1 Lasso正則化 // 59
4.3.2 嶺正則化 // 62
4.3.3 彈性網(wǎng)正則化 // 64
4.4 使用 Logistic回歸進行分類 // 65
4.4.1 二分類的 Logistic回歸 // 65
4.4.2 多類分類的 Logistic回歸 // 66
4.5 二分類 // 66
4.6 多分類 // 69
4.7 總結(jié) // 73
第 5章 基于 TensorFlow和 Keras的神經(jīng)網(wǎng)絡(luò)和多層感知機 // 74
5.1 感知機 // 74
5.2 多層感知機 // 76
5.3 用于圖像分類的多層感知機 // 77
5.3.1 通過 TensorFlow構(gòu)建用于 MNIST分類的多層感知機 // 77
5.3.2 通過 Keras構(gòu)建用于 MNIST分類的多層感知機 // 83
5.3.3 通過 TFLearn構(gòu)建用于 MNIST分類的多層感知機 // 85
5.3.4 多層感知機與 TensorFlow、 Keras和 TFLearn的總結(jié) // 86
5.4 用于時間序列回歸的多層感知機 // 86
5.5 總結(jié) // 89
第 6章 基于TensorFlow和Keras的 RNN // 90
6.1 簡單 RNN // 90
6.2 RNN改進版本 // 92
6.3 LSTM網(wǎng)絡(luò) // 93
6.4 GRU網(wǎng)絡(luò) // 95
6.5 基于TensorFlow的 RNN // 96
6.5.1 TensorFlow的RNN單元類 // 96
6.5.2 TensorFlow 的RNN模型構(gòu)造類 // 97
6.5.3 TensorFlow的 RNN單元封裝類 // 97
6.6 基于Keras的 RNN // 98
6.7 RNN的應(yīng)用領(lǐng)域 // 98
6.8 將基于Keras的 RNN用于MNIST數(shù)據(jù) // 99
6.9 總結(jié) // 100
第 7章 基于TensorFlow和 Keras的 RNN在時間序列數(shù)據(jù)中的應(yīng)用 //101
7.1 航空公司乘客數(shù)據(jù)集 // 101
7.1.1 加載 airpass數(shù)據(jù)集 // 102
7.1.2 可視化 airpass數(shù)據(jù)集 // 102
7.2 使用TensorFlow為 RNN模型預(yù)處理數(shù)據(jù)集 // 103
7.3 TensorFlow中的簡單 RNN // 104
7.4 TensorFlow中的 LSTM網(wǎng)絡(luò) // 106
7.5 TensorFlow中的 GRU網(wǎng)絡(luò) // 107
7.6 使用 Keras為 RNN模型預(yù)處理數(shù)據(jù)集 // 108
7.7 基于 Keras的簡單 RNN // 109
7.8 基于 Keras的 LSTM網(wǎng)絡(luò) // 111
7.9 基于 Keras的 GRU網(wǎng)絡(luò) // 112
7.10 總結(jié) // 113
第 8章 基于TensorFlow和 Keras的RNN在文本數(shù)據(jù)中的應(yīng)用 // 114
8.1 詞向量表示 // 114
8.2 為 word2vec模型準備數(shù)據(jù) // 116
8.2.1 加載和準備PTB數(shù)據(jù)集 // 117
8.2.2 加載和準備text8數(shù)據(jù)集 // 118
8.2.3 準備小的驗證集 // 119
8.3 使用TensorFlow的 skip-gram模型 // 119
8.4 使用t-SNE可視化單詞嵌入 // 124
8.5 基于Keras的 skip-gram模型 // 126
8.6 使用TensorFlow和 Keras中的 RNN模型生成文本 // 130
8.6.1 使用TensorFlow中的 LSTM模型生成文本 // 131
8