深入理解TensorFlow 架构设计与实现原理 出版时间:2018内容简介 本书以TensorFlow 1.2为基础,从基本概念、内部实现和实践等方面深入剖析了TensorFlow。书中首先介绍了TensorFlow设计目标、基本架构、环境准备和基础概念,接着重点介绍了以数据流图为核心的机器学习编程框架的设计原则与核心实现,紧接着还将TensorFlow与深度学习相结合,从理论基础和程序实现这两个方面系统介绍了CNN、GAN和RNN等经典模型,然后深入剖析了TensorFlow运行时核心、通信原理和数据流图计算的原理与实现,全面介绍了TensorFlow生态系统的发展。目录第 一部分 基础篇第 1章 TensorFlow系统概述 21.1 简介 21.1.1 产生背景 21.1.2 独特价值 31.1.3 版本变迁 41.1.4 与其他主流深度学习框架的对比 61.2 设计目标 71.2.1 灵活通用的深度学习库 81.2.2 端云结合的人工智能引擎 91.2.3 高性能的基础平台软件 101.3 基本架构 121.3.1 工作形态 121.3.2 组件结构 131.4 小结 14第 2章 TensorFlow环境准备 152.1 安装 152.1.1 TensorFlow安装概述 152.1.2 使用Anaconda安装 172.1.3 使用原生pip安装 172.1.4 使用virtualenv安装 182.1.5 使用Docker安装 192.1.6 使用源代码编译安装 202.1.7 Hello TensorFlow 222.2 依赖项 232.2.1 Bazel软件构建工具 242.2.2 Protocol Buffers数据结构序列化工具 252.2.3 Eigen线性代数计算库 272.2.4 CUDA统一计算设备架构 282.3 源代码结构 292.3.1 根目录 292.3.2 tensorflow目录 302.3.3 tensorflow/core目录 312.3.4 tensorflow/python目录 322.3.5 安装目录 332.4 小结 33第3章 TensorFlow基础概念 343.1 编程范式:数据流图 343.1.1 声明式编程与命令式编程 343.1.2 声明式编程在深度学习应用上的优势 353.1.3 TensorFlow数据流图的基本概念 383.2 数据载体:张量 403.2.1 张量:Tensor 403.2.2 稀疏张量:SparseTensor 443.3 模型载体:操作 463.3.1 计算节点:Operation 463.3.2 存储节点:Variable 493.3.3 数据节点:Placeholder 533.4 运行环境:会话 553.4.1 普通会话:Session 553.4.2 交互式会话:InteractiveSession 593.4.3 扩展阅读:会话实现原理 593.5 训练工具:优化器 613.5.1 损失函数与优化算法 613.5.2 优化器概述 643.5.3 使用minimize方法训练模型 663.5.4 扩展阅读:模型训练方法进阶 683.6 一元线性回归模型的最佳实践 723.7 小结 76第二部分 关键模块篇第4章 TensorFlow数据处理方法 784.1 输入数据集 784.1.1 使用输入流水线并行读取数据 784.1.2 创建批样例数据的方法 864.1.3 填充数据节点的方法 874.1.4 处理CIFAR-10数据集的最佳实践 884.1.5 扩展阅读:MNIST数据集 914.2 模型参数 924.2.1 模型参数的典型使用流程 924.2.2 使用tf.Variable创建、初始化和更新模型参数 924.2.3 使用tf.train.Saver保存和恢复模型参数 984.2.4 使用变量作用域处理复杂模型 1004.3 命令行参数 1034.3.1 使用argparse解析命令行参数 1034.3.2 使用tf.app.flags解析命令行参数 1084.4 小结 111第5章 TensorFlow编程框架 1125.1 单机程序编程框架 1125.1.1 概述 1125.1.2 创建单机数据流图 1145.1.3 创建并运行单机会话 1165.2 分布式程序编程框架 1185.2.1 PS-worker架构概述 1185.2.2 分布式程序编程框架概述 1205.2.3 创建TensorFlow集群 1215.2.4 将操作放置到目标设备 1245.2.5 数据并行模式 1245.2.6 同步训练机制 1255.2.7 异步训练机制 1305.2.8 使用Supervisor管理模型训练 1315.2.9 分布式同步训练的最佳实践 1335.3 小结 137第6章 TensorBoard可视化工具 1386.1 概述 1386.2 可视化数据流图 1426.2.1 名字作用域与抽象节点 1426.2.2 可视化数据流图的最佳实践 1446.2.3 扩展阅读:汇总数据和事件数据 1456.2.4 扩展阅读:揭秘tf.summary.FileWriter工作原理 1476.3 可视化学习过程 1496.3.1 汇总操作概述 1496.3.2 使用tf.summary.scalar生成折线图 1506.3.3 使用tf.summary.histogram生成数据分布图 1526.3.4 使用tf.summary.image生成图像 1546.3.5 使用tf.summary.audio生成音频 1556.3.6 可视化MNIST softmax模型学习过程的最佳实践 1566.4 可视化高维数据 1586.4.1 使用TensorBoard可视化高维数据 1586.4.2 可视化MNIST数据集的最佳实践 1606.5 小结 163第7章 模型托管工具:TensorFlow Serving 1647.1 概述 1647.2 系统架构 1657.3 安装 1677.3.1 使用APT安装ModelServer 1687.3.2 使用源码编译安装ModelServer 1697.4 最佳实践 1707.4.1 导出模型 1707.4.2 发布模型服务 1737.4.3 更新线上模型服务 1747.5 小结 175第三部分 算法模型篇第8章 深度学习概述 1788.1 深度学习的历史 1788.1.1 感知机模型与神经网络 1788.1.2 神经网络的寒冬与复苏 1798.1.3 神经网络的发展与第二次寒冬 1818.1.4 深度学习时代的到来 1838.2 深度学习的主要应用 1848.2.1 计算机视觉 1858.2.2 自然语言处理 1868.2.3 强化学习 1888.3 深度学习与TensorFlow 1908.4 小结 191第9章 CNN模型 1929.1 CNN 1929.1.1 CNN简介 1929.1.2 卷积层 1939.1.3 激活层 1959.1.4 池化层 1959.1.5 全连接层 1969.1.6 Dropout层 1969.1.7 BN层 1979.1.8 常用的CNN图像分类模型 1979.2 TensorFlow-Slim 2049.2.1 TensorFlow-Slim总体结构 2049.2.2 datasets包和data包 2059.2.3 preprocessing包 2079.2.4 deployment包 2079.2.5 nets包 2099.2.6 TensorFlow-Slim最佳实践 2129.3 应用 2169.3.1 物体检测 2169.3.2 图像分割 2219.4 小结 222第 10章 GAN模型 22310.1 原理、特点及应用 22310.1.1 原理 22410.1.2 特点 22510.1.3 应用 22610.2 GAN模型的改进 22810.2.1 CGAN模型 22810.2.2 LAPGAN模型 22910.2.3 DCGAN模型 23010.2.4 InfoGAN模型 23010.2.5 LSGAN模型 23110.2.6 WGAN模型 23210.3 最佳实践 23310.4 小结 238第 11章 RNN模型 23911.1 基本RNN单元及其变种 23911.1.1 RNN模型简介 23911.1.2 基本RNN单元 24011.1.3 LSTM单元 24211.1.4 GRU单元 24311.1.5 双向RNN单元 24411.1.6 带有其他特性的RNN单元 24511.2 RNN模型 24711.2.1 PTB-LSTM语言模型 24711.2.2 Seq2Seq模型 25111.3 小结 254第四部分 核心揭秘篇第 12章 TensorFlow运行时核心设计与实现 25612.1 运行时框架概述 25612.2 关键数据结构 25712.2.1 张量相关数据结构 25812.2.2 设备相关数据结构 26012.2.3 数据流图相关的数据结构 26312.3 公共基础机制 26612.3.1 内存分配 26612.3.2 线程管理 26812.3.3 多语言接口 26912.3.4 XLA编译技术 27012.3.5 单元测试框架 27112.4 外部环境接口 27212.4.1 加速器硬件接口 27212.4.2 系统软件接口 27512.5 小结 276第 13章 通信原理与实现 27713.1 概述 27713.2 进程内通信 27813.2.1 通信接口 27813.2.2 会合点机制 28013.2.3 异构设备内存访问 28213.3 进程间通信 28313.3.1 gRPC通信机制 28413.3.2 控制通信 28613.3.3 数据通信 29013.4 RDMA通信模块 29413.4.1 模块结构 29513.4.2 消息语义 29613.4.3 通信流程 29713.5 小结 300第 14章 数据流图计算原理与实现 30114.1 概述 30114.2 数据流图创建 30214.2.1 流程与抽象 30314.2.2 全图构造 30514.2.3 子图提取 30614.2.4 图切分 30714.2.5 图优化 30814.3 单机会话运行 30814.3.1 流程与抽象 30914.3.2 执行器获取 31114.3.3 输入数据填充 31214.3.4 图运行 31314.3.5 输出数据获取 31514.3.6 张量保存 31514.4 分布式会话运行 31514.4.1 主-从模型 31614.4.2 主要抽象 31714.4.3 client创建会话 31914.4.4 client请求图运行 32014.4.5 master驱动图运行 32114.4.6 worker实施图运行 32314.5 操作节点执行 32514.5.1 核函数抽象 32514.5.2 CPU上的执行流程 32614.5.3 CUDA GPU上的执行流程 32614.6 小结 327第五部分 生态发展篇第 15章 TensorFlow生态环境 33015.1 生态环境概况 33015.1.1 社区托管组件 33015.1.2 第三方项目 33315.2 深度神经网络库Keras 33415.2.1 概述 33415.2.2 模型概述 33515.2.3 顺序模型 33615.2.4 函数式模型 33815.3 TensorFlow与Kubernetes生态的结合 34015.4 TensorFlow与Spark生态的结合 34415.5 TensorFlow通信优化技术 34515.6 TPU及神经网络处理器 34815.7 NNVM模块化深度学习组件 34915.8 TensorFlow未来展望——TFX 35115.9 小结 353附录A 354 上一篇: Android应用案例开发大全 第四版 下一篇: 强化学习精要 核心算法与TensorFlow实现