第1章 TensorFlow 101 1
1.1什么是TensorFlow 1
1.2 TensorFlow内核 2
1.2.1简单的示例代码-HelloTensorFlow 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对CIFAR 10数据集进行分类 149
9.5.2使用Keras的CNN对CIFAR 10数据集进行分类 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中预先训练的VGG 16进行图像分类 204
12.5将TensorFlow中的图像预处理用于预先训练的VGG 16208
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 OpenAl 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 101256
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.6TensorFlow 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章 调试TenSorFIOW模型 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