《深入理解TensorFlow架构设计与实现原理》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:彭靖田,林健,白小龙著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2018
  • ISBN:9787115480941
  • 页数:354 页
图书介绍:本书以TensorFlow 1.2为基础,首先介绍了设计目标、基本架构、环境准备和基础概念,接着重点介绍了以数据流图为核心的机器学习编程框架的设计原则与核心实现,紧接着还将其与深度学习相结合,从理论基础和程序实现这两个方面系统介绍了CNN、GAN和RNN等经典模型,然后深入剖析了TensorFlow运行时核心、通信原理和数据流图计算的原理与实现,最后全面介绍了TensorFlow生态系统的发展。

第一部分 基础篇 2

第1章TensorFlow系统概述 2

1.1简介 2

1.1.1产生背景 2

1.1.2独特价值 3

1.1.3版本变迁 4

1.1.4与其他主流深度学习框架的对比 6

1.2设计目标 7

1.2.1灵活通用的深度学习库 8

1.2.2端云结合的人工智能引擎 9

1.2.3高性能的基础平台软件 10

1.3基本架构 12

1.3.1工作形态 12

1.3.2组件结构 13

1.4小结 14

第2章TensorFlow环境准备 15

2.1安装 15

2.1.1 TensorFlow安装概述 15

2.1.2使用Anaconda安装 17

2.1.3使用原生Pip安装 17

2.1.4使用virtualenv安装 18

2.1.5使用Docker安装 19

2.1.6使用源代码编译安装 20

2.1.7 Hello TensorFlow 22

2.2依赖项 23

2.2.1 Bazel软件构建工具 24

2.2.2 Protocol Buffers数据结构序列化工具 25

2.2.3 Eigen线性代数计算库 27

2.2.4 CUDA统一计算设备架构 28

2.3源代码结构 29

2.3.1根目录 29

2.3.2 tensorflow目录 30

2.3.3 tensorflow/core目录 31

2.3.4 tensorflow/python目录 32

2.3.5安装目录 33

2.4小结 33

第3章TensorFlow基础概念 34

3.1编程范式:数据流图 34

3.1.1声明式编程与命令式编程 34

3.1.2声明式编程在深度学习应用上的优势 35

3.1.3 TensorFlow数据流图的基本概念 38

3.2数据载体:张量 40

3.2.1张量:Tensor 40

3.2.2稀疏张量:SparseTensor 44

3.3模型载体:操作 46

3.3.1计算节点:Operation 46

3.3.2存储节点:Variable 49

3.3.3数据节点:Placeholder 53

3.4运行环境:会话 55

3.4.1普通会话:Session 55

3.4.2交互式会话:InteractiveSession 59

3.4.3扩展阅读:会话实现原理 59

3.5训练工具:优化器 61

3.5.1损失函数与优化算法 61

3.5.2优化器概述 64

3.5.3使用minimize方法训练模型 66

3.5.4扩展阅读:模型训练方法进阶 68

3.6一元线性回归模型的最佳实践 72

3.7小结 76

第二部分 关键模块篇 78

第4章TensorFlow数据处理方法 78

4.1输入数据集 78

4.1.1使用输入流水线并行读取数据 78

4.1.2创建批样例数据的方法 86

4.1.3填充数据节点的方法 87

4.1.4处理CIFAR-10数据集的最佳实践 88

4.1.5扩展阅读:MNIST数据集 91

4.2模型参数 92

4.2.1模型参数的典型使用流程 92

4.2.2使用tf.Variable创建、初始化和更新模型参数 92

4.2.3使用tf.train.Saver保存和恢复模型参数 98

4.2.4使用变量作用域处理复杂模型 100

4.3命令行参数 103

4.3.1使用argparse解析命令行参数 103

4.3.2使用tf.app.flags解析命令行参数 108

4.4小结 111

第5章TensorFlow编程框架 112

5.1单机程序编程框架 112

5.1.1概述 112

5.1.2创建单机数据流图 114

5.1.3创建并运行单机会话 116

5.2分布式程序编程框架 118

5.2.1 PS-worker架构概述 118

5.2.2分布式程序编程框架概述 120

5.2.3创建TensorFlow集群 121

5.2.4将操作放置到目标设备 124

5.2.5数据并行模式 124

5.2.6同步训练机制 125

5.2.7异步训练机制 130

5.2.8使用Supervisor管理模型训练 131

5.2.9分布式同步训练的最佳实践 133

5.3小结 137

第6章TensorBoard可视化工具 138

6.1概述 138

6.2可视化数据流图 142

6.2.1名字作用域与抽象节点 142

6.2.2可视化数据流图的最佳实践 144

6.2.3扩展阅读:汇总数据和事件数据 145

6.2.4扩展阅读:揭秘tf.summary.Filewriter工作原理 147

6.3可视化学习过程 149

6.3.1汇总操作概述 149

6.3.2使用tf.summary.scalar生成折线图 150

6.3.3使用tf.summary.histogram生成数据分布图 152

6.3.4使用tf.summary.image生成图像 154

6.3.5使用tf.summary.audio生成音频 155

6.3.6可视化MNIST softmax模型学习过程的最佳实践 156

6.4可视化高维数据 158

6.4.1使用TensorBoard可视化高维数据 158

6.4.2可视化MNIST数据集的最佳实践 160

6.5小结 163

第7章 模型托管工具:TensorFlow Serving 164

7.1概述 164

7.2系统架构 165

7.3安装 167

7.3.1使用APT安装ModelServer 168

7.3.2使用源码编译安装ModelServer 169

7.4最佳实践 170

7.4.1导出模型 170

7.4.2发布模型服务 173

7.4.3更新线上模型服务 174

7.5小结 175

第三部分 算法模型篇 178

第8章 深度学习概述 178

8.1深度学习的历史 178

8.1.1感知机模型与神经网络 178

8.1.2神经网络的寒冬与复苏 179

8.1.3神经网络的发展与第二次寒冬 181

8.1.4深度学习时代的到来 183

8.2深度学习的主要应用 184

8.2.1计算机视觉 185

8.2.2自然语言处理 186

8.2.3强化学习 188

8.3深度学习与TensorFlow 190

8.4小结 191

第9章CNN模型 192

9.1 CNN 192

9.1.1 CNN简介 192

9.1.2卷积层 193

9.1.3激活层 195

9.1.4池化层 195

9.1.5全连接层 196

9.1.6 Dropout层 196

9.1.7 BN层 197

9.1.8常用的CNN图像分类模型 197

9.2 TensorFlow-Slim 204

9.2.1 TensorFlow-Slim总体结构 204

9.2.2 datasets包和data包 205

9.2.3 preprocessing包 207

9.2.4 deployment包 207

9.2.5 nets包 209

9.2.6 TensorFlow-Slim最佳实践 212

9.3应用 216

9.3.1物体检测 216

9.3.2图像分割 221

9.4小结 222

第10章GAN模型 223

10.1原理、特点及应用 223

10.1.1原理 224

10.1.2特点 225

10.1.3应用 226

10.2 GAN模型的改进 228

10.2.1 CGAN模型 228

10.2.2 LAPGAN模型 229

10.2.3 DCGAN模型 230

10.2.4 InfoGAN模型 230

10.2.5 LSGAN模型 231

10.2.6 WGAN模型 232

10.3最佳实践 233

10.4小结 238

第11章RNN模型 239

11.1基本RNN单元及其变种 239

11.1.1 RNN模型简介 239

11.1.2基本RNN单元 240

11.1.3 LSTM单元 242

11.1.4 GRU单元 243

11.1.5双向RNN单元 244

11.1.6带有其他特性的RNN单元 245

11.2 RNN模型 247

11.2.1 PTB-LSTM语言模型 247

11.2.2 Seq2Seq模型 251

11.3小结 254

第四部分 核心揭秘篇 256

第12章TensorFlow运行时核心设计与实现 256

12.1运行时框架概述 256

12.2关键数据结构 257

12.2.1张量相关数据结构 258

12.2.2设备相关数据结构 260

12.2.3数据流图相关的数据结构 263

12.3公共基础机制 266

12.3.1内存分配 266

12.3.2线程管理 268

12.3.3多语言接口 269

12.3.4 XLA编译技术 270

12.3.5单元测试框架 271

12.4外部环境接口 272

12.4.1加速器硬件接口 272

12.4.2系统软件接口 275

12.5小结 276

第13章 通信原理与实现 277

13.1概述 277

13.2进程内通信 278

13.2.1通信接口 278

13.2.2会合点机制 280

13.2.3异构设备内存访问 282

13.3进程间通信 283

13.3.1 gRPC通信机制 284

13.3.2控制通信 286

13.3.3数据通信 290

13.4 RDMA通信模块 294

13.4.1模块结构 295

13.4.2消息语义 296

13.4.3通信流程 297

13.5小结 300

第14章 数据流图计算原理与实现 301

14.1概述 301

14.2数据流图创建 302

14.2.1流程与抽象 303

14.2.2全图构造 305

14.2.3子图提取 306

14.2.4图切分 307

14.2.5图优化 308

14.3单机会话运行 308

14.3.1流程与抽象 309

14.3.2执行器获取 311

14.3.3输入数据填充 312

14.3.4图运行 313

14.3.5输出数据获取 315

14.3.6张量保存 315

14.4分布式会话运行 315

14.4.1主-从模型 316

14.4.2主要抽象 317

14.4.3 client创建会话 319

14.4.4 client请求图运行 320

14.4.5 master驱动图运行 321

14.4.6 worker实施图运行 323

14.5操作节点执行 325

14.5.1核函数抽象 325

14.5.2 CPU上的执行流程 326

14.5.3 CUDA GPU上的执行流程 326

14.6小结 327

第五部分 生态发展篇 330

第15章TensorFlow生态环境 330

15.1生态环境概况 330

15.1.1社区托管组件 330

15.1.2第三方项目 333

15.2深度神经网络库Keras 334

15.2.1概述 334

15.2.2模型概述 335

15.2.3顺序模型 336

15.2.4函数式模型 338

15.3 TensorFlow与Kubernetes生态的结合 340

15.4 TensorFlow与Spark生态的结合 344

15.5 TensorFlow通信优化技术 345

15.6 TPU及神经网络处理器 348

15.7 NNVM模块化深度学习组件 349

15.8 TensorFlow未来展望——TFX 351

15.9小结 353

附录A 354