編輯推薦
適讀人群 :希望了解和套用TensorFlow和深度學習技術的數據科學家、工程師,對人工智慧、深度學習感興趣的計算機領域從業人員,高等院校相關專業學生
提供示例代碼,可根據書中文前提供地址下載,或關注“科技電眼”微信號,回復書後條碼下的ISBN號獲取。
內容簡介
TensorFlow是目前流行的數值計算庫,專用於構建分散式、雲計算和移動環境。TensorFlow將數據表示為張量,將計算表示為計算圖。
《精通TensorFlow》是一本綜合指南,可讓您理解TensorFlow 1.x的高級功能,深入了解TensorFlow 核心、Keras、 TF Estimator、TFLearn、TF Slim、PrettyTensor和Sonnet。利用TensorFlow和Keras提供的功能,使用遷移學習、生成對抗網路和深度強化學習等概念來構建深度學習模型。通過本書,您將獲得在各種數據集(例如 MNIST、CIFAR-10、PTB、text8和COCO圖像)上的實踐經驗。
您還能夠學習TensorFlow1.x的高級功能,例如分散式TensorFlow,使用TensorFlow服務部署生產模型,以及在Android和iOS平台上為移動和嵌入式設備構建和部署TensorFlow模型。您將看到如何在R統計軟體中調用 TensorFlow和Keras API,還能了解在TensorFlow的代碼無法按預期工作時所需的調試技術。
《精通TensorFlow》可幫助您深入了解TensorFlow,使您成為解決人工智慧問題的專家。總之,在學習本書之後,可掌握TensorFlow和Keras的產品,並獲得構建更智慧型、更快速、更高效的機器學習和深度學習系統所需的技能。
作者簡介
作者:
Fandango利用自己在深度學習、計算方法和分散式計算方面的專業知識,創造了人工智慧(AI)產品。他為Owen.ai公司在AI產品戰略方面提供建議。他創建了NeuraSights公司,其目標是利用神經網路創建有技術深度的產品。他還創建了Vets2Data公司,這家非盈利機構主要幫助美國退役軍人掌握AI技能。
Armando出版了2本專著,並在國際期刊和會議上發表了他的研究成果。
譯者:
劉波博士,重慶工商大學人工智慧學院副教授,主要研究領域為機器學習理論、計算機視覺和自然語言處理,同時愛好Hadoop和Spark平台上的大數據分析。
何希平博士,重慶工商大學人工智慧學院院長、教授,主要研究領域為時序分析、推薦系統。
目錄
譯者序
原書序
原書前言
第 1章 TensorFlow 101 // 1
1.1 什麼是 TensorFlow // 1
1.2 TensorFlow核心 // 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對象創建張量 // 7
1.2.7 變數 // 9
1.2.8 由庫函式生成的張量 // 10
1.2.9 通過 tf.get_variable( )獲取變數 // 13
1.3 數據流圖或計算圖 // 14
1.3.1 執行順序和延遲載入 // 15
1.3.2 跨計算設備執行計算圖 -CPU和 GPU // 15
1.3.3 多個計算圖 // 18
1.4 TensorBoard // 19
1.4.1 TensorBoard最小的例子 // 19
1.4.2 TensorBoard的細節 // 21
1.5 總結 // 21
第 2章 TensorFlow的高級庫 // 22
2.1 TF Estimator // 22
2.2 TF Slim // 24
2.3 TFLearn // 25
2.3.1 創建 TFLearn層 // 26
2.3.2 創建 TFLearn模型 // 30
2.3.3 訓練 TFLearn模型 // 30
2.3.4 使用 TFLearn模型 // 30
2.4 PrettyTensor // 31
2.5 Sonnet // 32
2.6 總結 // 34
第 3章 Keras101 // 35
3.1 安裝 Keras // 35
3.2 Keras的神經網路模型 // 36
3.2.1 在 Keras中創建模型的過程 // 36
3.3 創建 Keras模型 // 36
3.3.1 用於創建 Keras模型的序列化 API // 36
3.3.2 用於創建 Keras模型的功能性 API // 37
3.4 Keras的層 // 37
3.4.1 Keras核心層 // 37
3.4.2 Keras卷積層 // 38
3.4.3 Keras池化層 // 38
3.4.4 Keras局連線層 // 39
3.4.5 Keras循環層 // 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 將網路層添加到 Keras模型中 // 40
3.5.1 利用序列化 API將網路層添加到 Keras模型中 // 40
3.5.2 利用功能性 API將網路層添加到 Keras模型中 // 41
3.6 編譯 Keras模型 // 41
3.7 訓練 Keras模型 // 42
3.8 使用 Keras模型進行預測 // 42
3.9 Keras中的其他模組 // 43
3.10 基於 MNIST數據集的 Keras順序模型示例 // 43
3.11 總結 // 45
第 4章 基於TensorFlow的經典機器學習算法 // 47
4.1 簡單的線性回歸 // 48
4.1.1 數據準備 // 49
4.1.2 建立簡單的回歸模型 // 50
4.1.3 使用訓練好的模型進行預測 // 55
4.2 多元回歸 // 55
4.3 正則化回歸 // 58
4.3.1 Lasso正則化 // 59
4.3.2 嶺正則化 // 62
4.3.3 彈性網正則化 // 64
4.4 使用 Logistic回歸進行分類 // 65
4.4.1 二分類的 Logistic回歸 // 65
4.4.2 多類分類的 Logistic回歸 // 66
4.5 二分類 // 66
4.6 多分類 // 69
4.7 總結 // 73
第 5章 基於 TensorFlow和 Keras的神經網路和多層感知機 // 74
5.1 感知機 // 74
5.2 多層感知機 // 76
5.3 用於圖像分類的多層感知機 // 77
5.3.1 通過 TensorFlow構建用於 MNIST分類的多層感知機 // 77
5.3.2 通過 Keras構建用於 MNIST分類的多層感知機 // 83
5.3.3 通過 TFLearn構建用於 MNIST分類的多層感知機 // 85
5.3.4 多層感知機與 TensorFlow、 Keras和 TFLearn的總結 // 86
5.4 用於時間序列回歸的多層感知機 // 86
5.5 總結 // 89
第 6章 基於TensorFlow和Keras的 RNN // 90
6.1 簡單 RNN // 90
6.2 RNN改進版本 // 92
6.3 LSTM網路 // 93
6.4 GRU網路 // 95
6.5 基於TensorFlow的 RNN // 96
6.5.1 TensorFlow的RNN單元類 // 96
6.5.2 TensorFlow 的RNN模型構造類 // 97
6.5.3 TensorFlow的 RNN單元封裝類 // 97
6.6 基於Keras的 RNN // 98
6.7 RNN的套用領域 // 98
6.8 將基於Keras的 RNN用於MNIST數據 // 99
6.9 總結 // 100
第 7章 基於TensorFlow和 Keras的 RNN在時間序列數據中的套用 //101
7.1 航空公司乘客數據集 // 101
7.1.1 載入 airpass數據集 // 102
7.1.2 可視化 airpass數據集 // 102
7.2 使用TensorFlow為 RNN模型預處理數據集 // 103
7.3 TensorFlow中的簡單 RNN // 104
7.4 TensorFlow中的 LSTM網路 // 106
7.5 TensorFlow中的 GRU網路 // 107
7.6 使用 Keras為 RNN模型預處理數據集 // 108
7.7 基於 Keras的簡單 RNN // 109
7.8 基於 Keras的 LSTM網路 // 111
7.9 基於 Keras的 GRU網路 // 112
7.10 總結 // 113
第 8章 基於TensorFlow和 Keras的RNN在文本數據中的套用 // 114
8.1 詞向量表示 // 114
8.2 為 word2vec模型準備數據 // 116
8.2.1 載入和準備PTB數據集 // 117
8.2.2 載入和準備text8數據集 // 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.6.2 使用Keras中的 LSTM模型生成文本 // 134
8.7 總結 // 137
第 9章 基於TensorFlow和Keras的 CNN // 138
9.1 理解卷積 // 138
9.2 理解池化 // 141
9.3 CNN架構模式 - LeNet // 142
9.4 在MNIST數據集上構建 LeNet // 143
9.4.1 使用 TensorFlow的 LeNet CNN對 MNIST數據集進行分類 // 143
9.4.2 使用 Keras的 LeNet CNN對MNIST數據集進行分類 // 146
9.5 在CIFAR10數據集上構建LeNet // 148
9.5.1 使用TensorFlow的 CNN對CIFAR10數據集進行分類 // 149
9.5.2 使用Keras的 CNN對CIFAR10數據集進行分類 // 150
9.6 總結 // 151
第 10章 基於TensorFlow和Keras的自編碼器 // 152
10.1 自編碼器類型 // 152
10.2 基於TensorFlow的堆疊自編碼器 // 154
10.3 基於Keras的堆疊自編碼器 // 157
10.4 基於TensorFlow的去噪自編碼器 // 159
10.5 基於Keras的去噪自編碼器 // 161
10.6 基於TensorFlow的變分自編碼器 // 162
10.7 基於Keras的變分自編碼器 // 167
10.8 總結 // 170
第 11章 使用TF服務提供生成環境下的 TensorFlow模型 // 171
11.1 在 TensorFlow中保存和恢復模型 // 171
11.1.1 使用saver類保存和恢復所有網路計算圖變數 // 172
11.1.2 使用saver類保存和恢復所選變數 // 173
11.2 保存和恢復 Keras模型 // 175
11.3 TensorFlow服務 // 175
11.3.1 安裝TF服務 // 175
11.3.2 保存TF服務的模型 // 176
11.3.3 使用TF服務提供服務模型 // 180
11.4 在Docker容器中提供 TF服務 // 181
11.4.1 安裝Docker // 182
11.4.2 為TF服務構建 Docker鏡像 // 183
11.4.3 在Docker容器中提供模型 // 185
11.5 基於Kubernetes的 TF服務 // 186
11.5.1 安裝 Kubernetes // 186
11.5.2 將 Docker鏡像上傳到dockerhub // 187
11.5.3 在 Kubernetes中部署 // 188
11.6 總結 // 192
第 12章 遷移學習模型和預訓練模型 // 193
12.1 ImageNet數據集 // 193
12.2 重新訓練或微調模型 // 196
12.3 COCO動物數據集和預處理圖像 // 197
12.4 TensorFlow中的 VGG16 // 203
12.4.1 使用TensorFlow中預先訓練的VGG16進行圖像分類 // 204
12.5 將TensorFlow中的圖像預處理用於預先訓練的 VGG16 // 208
12.5.1 使用TensorFlow中重新訓練的VGG16進行圖像分類 // 209
12.6 Keras中的 VGG16 // 215
12.6.1 使用Keras中預先訓練的VGG16進行圖像分類 // 215
12.6.2 使用Keras中重新訓練的VGG16進行圖像分類 // 220
12.7 TensorFlow中的 Inception v3 // 226
12.7.1 使用TensorFlow中 Inception v3進行圖像分類 // 226
12.7.2 使用TensorFlow中重新訓練的Inception v3進行圖像分類 // 231
12.8 總結 // 237
第 13章 深度強化學習 // 238
13.1 OpenAI Gym 101 // 239
13.2 將簡單的策略套用於 cartpole遊戲 // 242
13.3 強化學習 101 // 246
13.3.1 Q函式(在模型無效時學習最佳化)// 246
13.3.2 強化學習算法的探索與開發 // 246
13.3.3 V函式(在模型可用時學習最佳化)// 247
13.3.4 強化學習技巧 // 247
13.4 強化學習的樸素神經網路策略 // 248
13.5 實施 Q-Learning // 250
13.5.1 Q-Learning的初始化和離散化 // 251
13.5.2 基於Q表的 Q-Learning // 252
13.5.3 使用Q網路或深度 Q網路(DQN)進行 Q-Learning // 253
13.6 總結 // 254
第 14章 生成對抗網路(GAN) // 256
14.1 GAN 101 // 256
14.2 建立和訓練 GAN的最佳實踐 // 258
14.3 基於TensorFlow的簡單 GAN // 258
14.4 基於Keras的簡單 GAN // 263
14.5 基於TensorFlow和 Keras的深度卷積 GAN // 268
14.6 總結 // 270
第 15章 基於TensorFlow集群的分散式模型 // 271
15.1 分散式執行策略 // 271
15.2 TensorFlow集群 // 272
15.2.1 定義集群規範 // 274
15.2.2 創建伺服器實例 // 274
15.2.3 定義伺服器和設備之間的參數和操作 // 276
15.2.4 定義並訓練計算圖以進行異步更新 // 276
15.2.5 定義並訓練計算圖以進行同步更新 // 281
15.3 總結 // 282
第 16章 移動和嵌入式平台上的TensorFlow模型 // 283
16.1 移動平台上的 TensorFlow // 283
16.2 Android應用程式中的 TF Mobile // 284
16.3 演示Android上的 TF Mobile // 285
16.4 iOS應用程式中的 TF Mobile // 287
16.5 演示iOS上的TF Mobile // 288
16.6 TensorFlow Lite // 289
16.7 演示Android上的TF Lite應用程式 // 290
16.8 演示iOS上的TF Lite應用程式 // 291
16.9 總結 // 291
第 17章 R中的 TensorFlow和 Keras // 292
17.1 在R中安裝 TensorFlow和 Keras軟體包 // 292
17.2 R中的TF核心 API // 294
17.3 R中的TF Estimator API // 295
17.4 R中的Keras API // 297
17.5 R中的TensorBoard // 300
17.6 R中的tfruns包 // 302
17.7 總結 // 304
第 18章 調試TensorFlow模型 // 305
18.1 使用tf.Session.run( )獲取張量值 // 305
18.2 使用tf.Print( )輸出張量值 // 306
18.3 使用tf.Assert( )斷言條件 // 306
18.4 使用TensorFlow調試器(tfdbg)進行調試 // 308
18.5 總結 // 310
附錄 張量處理單元 // 311