本書共分5方面內容:基礎知識、關鍵模塊、算法模型、內核揭秘、生態發展。前兩方面由淺入深地介紹了TensorFlow 平臺,算法模型方面依托TensorFlow 講解深度學習模型,內核揭秘方面主要分析C 內核中的通信原理、消息管理機制等,* 后從生態發展的角度講解以TensorFlow 為中心的一套開源大數據分析解決方案。
本書適合所有對深度學習和TensorFlow感興趣的開發人員和數據分析師閱讀。
本書介紹關于機器學習系統的深度學習算法,使你可以在搜索、圖像識別、語言處理等產品中實現這些算法。你將學習如何分析并改進深度學習模型的表現,通過與標準算法進行比較,借助機器智慧,在特定文本中從信息和決策行為中學習。讀完本書后,你將熟悉機器學習技術,尤其是使用TensorFlow進行深度學習,并將所學知識用于研究或商業項目。本書適合想要探索數據抽象層的數據科學家,展現了如何在實際中使用TensorFlow處理復雜且未經加工的數據。
?訪問并使用公共數據集,通過TensorFlow下載、處理、傳輸數據
?在實際數據集中應用TensorFlow,包括圖像、文本等
?學習如何評估深度學習模型的表現
?使用深度學習完成可擴展對象檢測和移動計算
?訓練機器通過探索加強學習技術從數據中進行快速學習
[意]Giancarlo Zaccone 在并行計算和可視化方向擁有豐富經驗,目前于某咨詢公司擔任系統和軟件工程師。
[孟加拉]Md. Rezaul Karim 擁有近10年軟件研發經驗,具備扎實的算法和數據結構知識,研究興趣包括機器學習、深度學習、語義網絡等。
[埃及]Ahmed Menshawy
愛爾蘭都柏林三一學院研究工程師,主要工作是使用ADAPT中心的機器學習和自然語言處理技術成果構建原型和應用,在機器學習和自然語言處理領域擁有多年工作經驗。
目 錄
* 1章 深度學習入門1
1.1 機器學習簡介1
1.1.1 監督學習2
1.1.2 無監督學習2
1.1.3 強化學習3
1.2 深度學習定義3
1.2.1 人腦的工作機制3
1.2.2 深度學習歷史4
1.2.3 應用領域5
1.3 神經網絡5
1.3.1 生物神經元5
1.3.2 人工神經元6
1.4 人工神經網絡的學習方式8
1.4.1 反向傳播算法8
1.4.2 權重優化8
1.4.3 隨機梯度下降法9
1.5 神經網絡架構10
1.5.1 多層感知器10
1.5.2 DNN架構11
1.5.3 卷積神經網絡12
1.5.4 受限玻爾茲曼機12
1.6 自編碼器13
1.7 循環神經網絡14
1.8 幾種深度學習框架對比14
1.9 小結16
* 2章 TensorFlow初探17
2.1 總覽17
2.1.1 TensorFlow 1.x版本特性18
2.1.2 使用上的改進18
2.1.3 TensorFlow安裝與入門19
2.2 在Linux上安裝TensorFlow19
2.3 為TensorFlow啟用NVIDIA GPU20
2.3.1 * 1步:安裝NVIDIA CUDA20
2.3.2* 2步:安裝NVIDIA cuDNN v5.1 21
2.3.3第3步:確定GPU卡的CUDA計算能力為3.0 22
2.3.4 第4步:安裝libcupti-dev庫22
2.3.5第5步:安裝Python(或Python3)22
2.3.6 第6步:安裝并升級PIP(或PIP3)22
2.3.7 第7步:安裝TensorFlow23
2.4 如何安裝TensorFlow23
2.4.1 直接使用pip安裝23
2.4.2 使用virtualenv安裝24
2.4.3 從源代碼安裝26
2.5 在Windows上安裝TensorFlow27
2.5.1 在虛擬機上安裝TensorFlow27
2.5.2 直接安裝到Windows27
2.6 測試安裝是否成功28
2.7 計算圖28
2.8 為何采用計算圖29
2.9 編程模型30
2.10 數據模型33
2.10.1 階33
2.10.2 形狀33
2.10.3 數據類型34
2.10.4 變量36
2.10.5 取回37
2.10.6 注入38
2.11 TensorBoard38
2.12 實現一個單輸入神經元39
2.13 單輸入神經元源代碼43
2.14 遷移到TensorFlow 1.x版本43
2.14.1 如何用腳本升級44
2.14.2 局限47
2.14.3 手動升級代碼47
2.14.4 變量47
2.14.5 匯總函數47
2.14.6 簡化的數學操作48
2.14.7 其他事項49
2.15 小結49
第3章 用TensorFlow構建前饋
神經網絡51
3.1 前饋神經網絡介紹51
3.1.1 前饋和反向傳播52
3.1.2 權重和偏差53
3.1.3 傳遞函數53
3.2 手寫數字分類54
3.3 探究MNIST數據集55
3.4 Softmax分類器57
3.5 TensorFlow模型的保存和還原63
3.5.1 保存模型63
3.5.2 還原模型63
3.5.3 Softmax源代碼65
3.5.4 Softmax啟動器源代碼66
3.6 實現一個五層神經網絡67
3.6.1 可視化69
3.6.2 五層神經網絡源代碼70
3.7 ReLU分類器72
3.8 可視化73
3.9 Dropout優化76
3.10 可視化78
3.11 小結80
第4章 TensorFlow與卷積神經網絡82
4.1 CNN簡介82
4.2 CNN架構84
4.3 構建你的* 一個CNN86
4.4 CNN表情識別95
4.4.1 表情分類器源代碼104
4.4.2 使用自己的圖像測試模型107
4.4.3 源代碼109
4.5 小結111
第5章 優化TensorFlow自編碼器112
5.1 自編碼器簡介112
5.2 實現一個自編碼器113
5.3 增強自編碼器的魯棒性119
5.4 構建去噪自編碼器120
5.5 卷積自編碼器127
5.5.1 編碼器127
5.5.2 解碼器128
5.5.3 卷積自編碼器源代碼134
5.6 小結138
第6章 循環神經網絡139
6.1 RNN的基本概念139
6.2 RNN的工作機制140
6.3 RNN的展開140
6.4 梯度消失問題141
6.5 LSTM網絡142
6.6 RNN圖像分類器143
6.7 雙向RNN149
6.8 文本預測155
6.8.1 數據集156
6.8.2 困惑度156
6.8.3 PTB模型156
6.8.4 運行例程157
6.9 小結158
第7章 GPU計算160
7.1 GPGPU計算160
7.2 GPGPU的歷史161
7.3 CUDA架構161
7.4 GPU編程模型162
7.5 TensorFlow中GPU的設置163
7.6 TensorFlow的GPU管理165
7.7 GPU內存管理168
7.8 在多GPU系統上分配單個GPU168
7.9 使用多個GPU170
7.10 小結171
第8章 TensorFlow高 級編程172
8.1 Keras簡介172
8.2 構建深度學習模型174
8.3 影評的情感分類175
8.4 添加一個卷積層179
8.5 Pretty Tensor181
8.6 數字分類器182
8.7 TFLearn187
8.8 泰坦尼克號幸存者預測器188
8.9 小結191
第9章 TensorFlow高 級多媒體編程193
9.1 多媒體分析簡介193
9.2 基于深度學習的大型對象檢測193
9.2.1 瓶頸層195
9.2.2 使用重訓練的模型195
9.3 加速線性代數197
9.3.1 TensorFlow的核心優勢197
9.3.2 加速線性代數的準時編譯197
9.4 TensorFlow和Keras202
9.4.1 Keras簡介202
9.4.2 擁有Keras的好處203
9.4.3 視頻問答系統203
9.5 Android上的深度學習209
9.5.1 TensorFlow演示程序209
9.5.2 Android入門211
9.6 小結214
* 10章 強化學習215
10.1 強化學習基本概念216
10.2 Q-learning算法217
10.3 OpenAI Gym框架簡介218
10.4 FrozenLake-v0實現問題220
10.5 使用TensorFlow實現Q-learning223
10.6 小結227