編輯推薦
TensorFlow入門權*指南
榖歌研發一綫工程師參與撰寫,生動講解TensorFlow底層原理
內容簡介
本書是一本*佳的TensorFlow入門指南。幾位作者都來自研發一綫,他們用自己的寶貴經驗,結閤眾多高質量的代碼,生動講解TensorFlow的底層原理,並從實踐角度介紹如何將兩種常見模型——深度捲積網絡、循環神經網絡應用到圖像理解和自然語言處理的典型任務中。此外,還介紹瞭在模型部署和編程中可用的諸多實用技巧。
全書分為四部分,共9章。第一部分(第1~2章)討論TensorFlow的設計模式以及選擇TensorFlow作為深度學習庫的優勢和麵臨的挑戰,並給齣詳細的安裝指南。第二部分(第3~4章)深入介紹TensorFlow API的基礎知識和機器學習基礎。第三部分(第5~6章)探討如何用TensorFlow實現高級深度模型,涉及捲積神經網絡(或CNN)模型和循環神經網絡(或RNN)模型。第四部分(第7~8章)探討TensorFlow API中*新推齣的特性,包括如何準備用於部署的模型、一些有用的編程模式等。第9章給齣一些進一步瞭解TensorFlow的學習資源。
作者簡介
山姆·亞伯拉罕:數據科學傢、工程師,富有經驗的TensorFlow貢獻者。
丹尼亞爾·哈夫納:榖歌軟件工程師
埃裏剋·厄威特:高級軟件工程師
阿裏爾·斯卡爾皮內裏:團隊負責人,高級Java開發者
段菲,清華大學信號與信息處理專業博士,前三星電子中國研究院高級研究員,現為英特爾中國研究院高級研究員。研究方嚮是深度學習、計算機視覺、數據可視化。參與翻譯過《機器學習》《機器學習實踐:測試驅動的開發方法》《DirectX103D遊戲編程深度探索》等多本圖書。
目錄
譯者序
前言
第一部分 開啓TensorFlow之旅
第1章 引言2
1.1 無處不在的數據2
1.2 深度學習2
1.3 TensorFlow:一個現代的機器學習庫3
1.4 TensorFlow:技術概要3
1.5 何為TensorFlow4
1.5.1 解讀來自官網的單句描述4
1.5.2 單句描述未體現的內容6
1.6 何時使用TensorFlow7
1.7 TensorFlow的優勢8
1.8 使用TensorFlow所麵臨的挑戰9
1.9 高歌猛進9
第2章 安裝TensorFlow10
2.1 選擇安裝環境10
2.2 Jupyter Notebook與matplotlib12
2.3 創建Virtualenv環境12
2.4 TensorFlow的簡易安裝13
2.5 源碼構建及安裝實例:在64位Ubuntu Linux上安裝GPU版TensorFlow14
2.5.1 安裝依賴庫14
2.5.2 安裝Bazel15
2.5.3 安裝CUDA軟件(僅限NVIDIA GPU)16
2.5.4 從源碼構建和安裝TensorFlow18
2.6 安裝Jupyter Notebook20
2.7 安裝matplotlib20
2.8 測試TensorFlow、Jupyter Notebook及matplotlib21
2.9 本章小結23
第二部分 TensorFlow與機器學習基礎
第3章 TensorFlow基礎26
3.1 數據流圖簡介26
3.1.1 數據流圖基礎26
3.1.2 節點的依賴關係29
3.2 在TensorFlow中定義數據流圖33
3.2.1 構建第一個TensorFlow數據流圖33
3.2.2 張量思維39
3.2.3 張量的形狀43
3.2.4 TensorFlow的Operation44
3.2.5 TensorFlow的Graph對象46
3.2.6 TensorFlow Session48
3.2.7 利用占位節點添加輸入52
3.2.8 Variable對象53
3.3 通過名稱作用域組織數據流圖56
3.4 練習:綜閤運用各種組件61
3.4.1 構建數據流圖63
3.4.2 運行數據流圖66
3.5 本章小結71
第4章 機器學習基礎72
4.1 有監督學習簡介72
4.2 保存訓練檢查點74
4.3 綫性迴歸76
4.4 對數幾率迴歸78
4.5 softmax分類83
4.6 多層神經網絡85
4.7 梯度下降法與誤差反嚮傳播算法88
第三部分 用TensorFlow實現更高級的深度模型
第5章 目標識彆與分類96
5.1 捲積神經網絡97
5.2 捲積100
5.2.1 輸入和捲積核100
5.2.2 跨度102
5.2.3 邊界填充104
5.2.4 數據格式104
5.2.5 深入探討捲積核105
5.3 常見層107
5.3.1 捲積層108
5.3.2 激活函數108
5.3.3 池化層111
5.3.4 歸一化113
5.3.5 高級層114
5.4 圖像與TensorFlow116
5.4.1 加載圖像116
5.4.2 圖像格式117
5.4.3 圖像操作121
5.4.4 顔色127
5.5 CNN的實現129
5.5.1 Stanford Dogs數據集129
5.5.2 將圖像轉為TFRecord文件130
5.5.3 加載圖像133
5.5.4 模型134
5.5.5 訓練136
5.5.6 用TensorBoard調試濾波器137
5.6 本章小結139
第6章 循環神經網絡與自然語言處理140
6.1 循環神經網絡簡介140
6.1.1 時序的世界140
6.1.2 近似任意程序141
6.1.3 隨時間反嚮傳播142
6.1.4 序列的編碼和解碼143
6.1.5 實現第一個循環神經網絡145
6.1.6 梯度消失與梯度爆炸145
6.1.7 長短時記憶網絡147
6.1.8 RNN結構的變種148
6.2 詞嚮量嵌入149
6.2.1 準備維基百科語料庫151
6.2.2 模型結構155
6.2.3 噪聲對比分類器156
6.2.4 訓練模型156
6.3 序列分類157
6.3.1 Imdb影評數據集158
6.3.2 使用詞嚮量嵌入159
6.3.3 序列標注模型159
6.3.4 來自最後相關活性值的softmax層161
6.3.5 梯度裁剪162
6.3.6 訓練模型163
6.4 序列標注164
6.4.1 OCR數據集164
6.4.2 時間步之間共享的soft-max層166
6.4.3 訓練模型169
6.4.4 雙嚮RNN171
6.5 預測編碼174
6.5.1 字符級語言建模174
6.5.2 ArXiv摘要API175
6.5.3 數據預處理177
6.5.4 預測編碼模型178
6.5.5 訓練模型182
6.5.6 生成相似序列185
6.6 本章小結188
第四部分 其他提示、技術與特性
第7章 産品環境中模型的部署190
7.1 搭建TensorFlow服務開發環境190
7.1.1 Docker鏡像190
7.1.2 Bazel工作區191
7.2 導齣訓練好的模型192
7.3 定義服務器接口195
7.4 實現推斷服務器197
7.5 客戶端應用201
7.6 産品準備203
7.7 本章小結203
第8章 輔助函數、代碼結構和類204
8.1 確保目錄結構存在204
8.2 下載函數204
8.3 磁盤緩存修飾器205
8.4 屬性字典206
8.5 惰性屬性修飾器207
8.6 覆蓋數據流圖修飾器209
第9章 結語:其他資源212
前言/序言
The Translator's Words
譯 者 序
我們正處在一個激動人心的時代,深度學習作為近年來最具突破性的技術之一,極大地推動瞭人工智能領域的研究進程,並迅速滲透各行各業,同時帶動瞭一大批如傢庭服務機器人、自動駕駛這樣的新興産業。不誇張地說,深度學習技術正在深刻地影響著人們的工作、生活和思維方式。
為瞭幫助人們更高效地從事深度學習研究和應用,並積極分享其研究成果,優秀的開源深度學習框架如雨後春筍般不斷湧現。作為深度學習領域巨擘之一的Google也在2015年11月將自己的第二代分布式機器學習係統TensorFlow開源。雖然發布時間較晚,但憑藉Google在業內廣泛而巨大的影響力以及頂尖的人工智能研究水平,其代碼的簡潔性、部署的便利性,以及在學術研究和産品研發兩端取得的良好平衡,在極短的時間內便從眾多優秀的深度學習框架中脫穎而齣,獲得瞭廣大開發者的強烈關注。自公開發布以來,TensorFlow始終保持著兼收並蓄的態勢,不斷地從其他優秀開源框架中汲取優秀特性,在廣大研究和開發人員的強力推動下,不斷快速迭代並大幅提升代碼的效率,平均每周的代碼更新量都超過瞭萬行,所形成的社區開創瞭空前的活躍度。完全可以預見,TensorFlow將長期位列一流開源框架的行列。
雖然TensorFlow的優點數不勝數,但其“不足”也較為突齣,那就是其接口過於復雜,對初學者的編程技能和知識水平要求偏高,學習麯綫過陡。本書的問世在一定程度上緩解瞭這個矛盾。本書的幾位作者都來自Google的研發一綫,他們用自己的寶貴經驗,結閤眾多高質量的代碼,生動講解瞭TensorFlow的底層原理,並從實戰角度介紹瞭如何將兩種常見模型——深度捲積網絡、循環神經網絡應用到圖像理解和自然語言處理的典型任務中。難能可貴的是,他們還介紹瞭在模型部署和編程中可用的諸多實用技巧。總之,本書非常適閤TensorFlow的入門學習。
需要說明的是,這並不是一本機器學習理論或深度學習的入門讀物,閱讀本書需要讀者對經典機器學習理論和算法、深度捲積網絡、循環神經網絡的基本原理有初步的瞭解,並對Python編程和常用的Python庫(如NumPy和matplotlib)較為熟悉。另外,本書的代碼是基於TensorFlow 0.8版的,譯者對0.9版所做的接口變動以“譯者注”的形式做瞭部分說明,並對原書中的一些錯誤進行瞭訂正。盡管TensorFlow 1.0版已經正式發布,接口升級相比以往任何一版都要更多,但筆者認為讀者朋友大可不必過於擔憂。隻要清楚地掌握瞭TensorFlow的基本原理和Python編程,並勤於藉助互聯網,相信接口問題都可迎刃而解。同時,為方便廣大讀者的學習,原書作者和譯者也會抽時間對本書中的實例代碼按照TensorFlow最新版本進行升級,請大傢關注原齣版社和機械工業齣版社相關主題的後續圖書。
感謝機械工業齣版社張夢玲編輯在本書翻譯過程中給予的諸多幫助,也感謝傢人對我無微不至的關心。
深入理解深度學習,從瞭解優秀的開源框架開始,願讀者朋友們的TensorFlow學習之旅一帆風順!
段菲
2017年3月3日
PREFACE
前 言
歡迎
自2015年11月TensorFlow第一個開源版本發布以來,它便迅速躋身於最激動人心的機器學習庫的行列,並在科研、産品和教育等領域正在得到日益廣泛的應用。這個庫也在不斷地得到改進、充實和優化。與此同時,TensorFlow社區正以驚人的速度發展壯大。無論你是新手還是有經驗的用戶,筆者都希望通過本書幫助你提升使用TensorFlow的能力,使你自如地充分利用這個功能強大的開源庫。
本書的內容編排
第一部分:開啓TensorFlow之旅
本書第一部分將幫助讀者做好使用TensorFlow的準備。第1章為引言,對TensorFlow的曆史脈絡進行瞭簡要的梳理,並對TensorFlow的設計模式以及選擇TensorFlow作為深度學習庫的優勢和麵臨的挑戰進行瞭討論。
引言之後的第2章將介紹安裝TensorFlow時應當考慮的因素,並給齣瞭詳細的TensorFlow安裝指南,即如何從二進製安裝包安裝和從源碼構建TensorFlow。
第二部分:TensorFlow與機器學習基礎
從第3章開始,進入本書第二部分。在TensorFlow安裝完畢後,第3章將深入介紹TensorFlow API的基礎知識,而不會涉及過多的機器學習概念。這樣做是為瞭將“學習TensorFlow”和“學習如何利用TensorFlow從事機器學習相關工作”區分開來。第3章將對TensorFlow API中許多重要的部分進行深入剖析。此外,還將演示如何用可視化的數據流圖錶示模型,並將其轉化為TensorFlow代碼,以及如何利用TensorBoard驗證數據流圖是否被正確建模。
介紹完TensorFlow API的核心概念之後,便進入第4章。這一章將利用TensorFlow實現一些簡單的機器學習模型,如綫性迴歸、對數幾率迴歸(logistic regression)和聚類模型。
第三部分:用TensorFlow實現更高級的深度模型
第三部分由兩章構成,每章都隻關注一種更為復雜的深度學習模型。每章首先對模型進行描述,然後介紹如何用可視化的數據流圖錶示所要創建的模型。這兩章還將討論為什麼要以特定方式構建這些模型,並對所涉及的數學難點進行講解,之後再介紹如何利用TensorFlow有效地構建這些模型。
所要研究的第一個模型是捲積神經網絡(CNN),對應於第5章。該章會介紹如何使用圖像數據訓練TensorFlow模型,並對捲積的數學原理和使用目的展開討論,同時還將介紹如何將圖像裸數據轉化為一種與TensorFlow兼容的格式,以及如何對最終的輸齣進行測試。
第6章將探討如何使用TensorFlow正確地構建循環神經網絡(RNN)模型。通過各種自然語言處理(NLP)任務,讀者將瞭解如何利用長短時記憶網絡(LSTM)以及如何將預訓練的詞嚮量包含到模型中。
第四部分:其他提示、技術與特性
本書最後一部分將探討TensorFlow API中最新推齣的特性,內容包括如何準備用於部署的模型、一些有用的編程模式,以及其他精選主題。
其他機器學習庫
TensorFlow並非唯一可用的開源機器學習庫。下麵列齣一份可用於深度學習的簡短開源庫清單:
Caffe專注於捲積神經網絡和圖像處理,使用C++語言編寫。
Chainer是另一個靈活的機器學習Python庫,支持單機多GPU運算。
CNTK是微軟公司發布的首個開源機器學習庫,它擁有自己的模型定義語言,支持聲明式的分布式模型構建。
Deeplearning4j是一個專門針對神經網絡的Java庫,它易於與Spark、Hadoop和其他基於Java的分布式軟件集成,具有良好的可伸縮性。
Nervana Neon是一個高效的Python機器學習庫,支持單機多GPU運算。
Theano是一個極為靈活的Python機器學習庫,因其齣眾的用戶友好性以及可以用異常簡單的方式定義復雜模型等特點,在科研領域深受歡迎。TensorFlow的API與Theano API最為相似。
Torch是一個專注於GPU實現的機器學習庫,它是用Lua語言編寫的,並由來自若乾傢大公司的研究團隊提供支持。
限於篇幅,本書不打算對上述這些庫的優缺點展開深入討論,但如果有時間,非常值得深入展開。TensorFlow的作者在進行框架設計時,便是從當中的幾個庫汲取瞭靈感。
先修知識
雖然本書主要關注TensorFlow API,但筆者希望讀者已經熟悉大量數學和編程概念,包括:
微積分(一元和多元)
矩陣代數(尤其是矩陣乘法)
基本的編程原理
機器學習的基本概念
此外,讀者若能夠掌握下列知識,則將從本書中獲得更大的收獲:
擁有Python編程及模塊組織的經驗
擁有NumPy庫的使用經驗
擁有matplotlib庫的使用經驗
掌握機器學習中更高級的概念,尤其是前饋神經網絡、捲積神經網絡和循環神經網絡
在適宜的時候,筆者會通過一些提示信息幫助讀者重新熟悉那些為充分理解相關數學和Python概念所必需的概念。
預期的收獲
通過閱讀本書,讀者將掌握以下內容:
TensorFlow的核心API
TensorFlow的工作流:數據流圖的定義和數據流圖的執行
如何在各種設備上安裝TensorFlow
組織代碼和項目的最佳實踐
如何用TensorFlow創建核心機器學習模型
如何用TensorFlow實現RNN和CNN
如何用TensorFlow Serving部署代碼
利用TensorBoard分析模型的基礎知識
在學習完本書之後,如果讀者想對TensorFlow獲得更多瞭解,可參考下列資源:
TensorFlow官網 其中包含最新的文檔、API和入門材料。
TensorFlow Github代碼庫 在此,可對TensorFlow的開源實現做齣貢獻,並直接對源代碼進行審查。
官方發布的用TensorFlow實現的機器學習模型 可原封不動地使用這些模型,也可稍加調整以適閤自己的設計目的。
榖歌研究院的博客(Google Research Blog) 提供瞭來自榖歌的有關TensorFlow的應用和更新的最新消息。
Kaggle 獲取公開數據集並與其他從事數據分析工作的人開展競賽的絕佳網站。
Data.gov 美國政府的門戶網站,從中可找到全美國的公開數據集。
至此,“動員演講”已經結束,現在讓我們開啓本書的學習之旅吧!
麵嚮機器智能的TensorFlow實踐 epub pdf mobi txt 電子書 下載 2024
麵嚮機器智能的TensorFlow實踐 下載 epub mobi pdf txt 電子書