TensorFlow深度学习.pdf

TensorFlow深度学习.pdf

TensorFlow深度学习.pdf


PDF: https://github.com/jash-git/Jash-good-idea-20200304-001

本书页面(http://www.ituring.com.cn/book/2420)下载书中示例代码 [https://github.com/PacktPublishing/Deep-Learning-with-TensorFlow]

第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 上安装TensorFlow ……………… 19
2.3 为TensorFlow 启用NVIDIA GPU ……… 20
2.3.1 第1 步:安装NVIDIA CUDA …. 20
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
(或Python 3) …………………….. 22
2.3.6 第6 步:安装并升级PIP
(或PIP3) …………………………… 22
2.3.7 第7 步:安装TensorFlow ………. 23
2.4 如何安装TensorFlow………………………… 23
2.4.1 直接使用pip 安装 ………………….. 23
2.4.2 使用virtualenv 安装 ……………….. 24
2.4.3 从源代码安装 ………………………… 26
2.5 在Windows 上安装TensorFlow …………. 27
2.5.1 在虚拟机上安装TensorFlow …… 27
2.5.2 直接安装到Windows ……………… 27
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
目 录 xi
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
18
17
2.10.6 注入 …………………………………… 38
2.11 TensorBoard ……………………………………. 38
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 构建你的第一个CNN ……………………….. 86
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 双向RNN ………………………………………. 149
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
xii 目 录
7.5 TensorFlow 中GPU 的设置 ……………… 163
7.6 TensorFlow 的GPU 管理 …………………. 165
7.7 GPU 内存管理 ………………………………… 168
7.8 在多GPU 系统上分配单个GPU ………. 168
7.9 使用多个GPU ………………………………… 170
7.10 小结 …………………………………………….. 171
第8 章 TensorFlow 高级编程 ………………. 172
8.1 Keras 简介 ……………………………………… 172
8.2 构建深度学习模型 ………………………….. 174
8.3 影评的情感分类 ……………………………… 175
8.4 添加一个卷积层 ……………………………… 179
8.5 Pretty Tensor …………………………………… 181
8.6 数字分类器 …………………………………….. 182
8.7 TFLearn …………………………………………. 187
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 和Keras ……………………….. 202
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-learning ……. 223
10.6 小结 …………………………………………….. 227

第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 上安裝TensorFlow ……………… 19
2.3 為TensorFlow 啟用NVIDIA GPU ……… 20
2.3.1 第1 步:安裝NVIDIA CUDA …. 20
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
(或Python 3) …………………….. 22
2.3.6 第6 步:安裝並升級PIP
(或PIP3) …………………………… 22
2.3.7 第7 步:安裝TensorFlow ………. 23
2.4 如何安裝TensorFlow………………………… 23
2.4.1 直接使用pip 安裝 ………………….. 23
2.4.2 使用virtualenv 安裝 ……………….. 24
2.4.3 從原始程式碼安裝 ………………………… 26
2.5 在Windows 上安裝TensorFlow …………. 27
2.5.1 在虛擬機器上安裝TensorFlow …… 27
2.5.2 直接安裝到Windows ……………… 27
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
目 錄 xi
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
18
17
2.10.6 注入 …………………………………… 38
2.11 TensorBoard ……………………………………. 38
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 構建你的第一個CNN ……………………….. 86
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 雙向RNN ………………………………………. 149
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
xii 目 錄
7.5 TensorFlow 中GPU 的設置 ……………… 163
7.6 TensorFlow 的GPU 管理 …………………. 165
7.7 GPU 記憶體管理 ………………………………… 168
7.8 在多GPU 系統上分配單個GPU ………. 168
7.9 使用多個GPU ………………………………… 170
7.10 小結 …………………………………………….. 171
第8 章 TensorFlow 高級程式設計 ………………. 172
8.1 Keras 簡介 ……………………………………… 172
8.2 構建深度學習模型 ………………………….. 174
8.3 影評的情感分類 ……………………………… 175
8.4 添加一個卷積層 ……………………………… 179
8.5 Pretty Tensor …………………………………… 181
8.6 數字分類器 …………………………………….. 182
8.7 TFLearn …………………………………………. 187
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 和Keras ……………………….. 202
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-learning ……. 223
10.6 小結 …………………………………………….. 227

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *