TensorFlow 内核剖析 PDF 文档
本书定位
这是一本剖析 TensorFlow 内核工作原理的书籍,并非讲述如何使用 TensorFlow 构建机器学习模型,也不会讲述应用 TensorFlow 的最佳实践。本书将通过剖析 TensorFlow 源代码的方式,揭示 TensorFlow 的系统架构、领域模型、工作原理、及其实现模式等相关内容,以便揭示内在的知识。
面向的读者
本书假设读者已经了解机器学习相关基本概念与理论,了解机器学习相关的基本方法论;同时,假设读者熟悉 Python, C++ 等程序设计语言。本书适合于渴望深入了解 TensorFlow 内核设计,期望改善 TensorFlow 系统设计和性能优化,及其探究 TensorFlow 关键技术的设计和实现的系统架构师、AI 算法工程师、和 AI 软件工程师。
前言
第 I 部分 基础知识
1 介绍
1.1 前世今生
1.1.1 DistBelief
1.1.2 TensorFlow
1.2 社区发展
1.2.1 开源
1.2.2 里程碑
1.2.3 工业应用
2 编程环境
2.1 代码结构
2.1.1 克隆源码
2.1.2 源码结构
2.1.3 Core
2.1.4 Python
2.1.5 Contrib
2.1.6 StreamExecutor
2.1.7 Compiler
2.2 工程构建
2.2.1 环境准备
2.2.2 配置
2.2.3 构建
2.2.4 安装
2.2.5 验证
2.2.6 IDE
2.3 代码生成
2.4 技术栈
3 破冰之旅
3.1 问题提出
3.1.1 样本数据集
3.1.2 图示说明
3.2 单层感知器
3.2.1 理论基础
3.2.2 定义模型
3.2.3 优化算法
3.2.4 训练模型
3.3 多层感知器
3.3.1 理论基础
3.3.2 定义模型
3.3.3 优化技术
3.4 卷积网络
3.4.1 特征与优势
3.4.2 卷积运算
3.4.3 公式推导
3.4.4 实现卷积网络
3.4.5 增强卷积网络
第 II 部分 系统架构
4 系统架构
4.1 系统架构
4.1.1 Client
4.1.2 Master
4.1.3 Worker
4.1.4 Kernel
4.2 图控制
4.2.1 组建集群
4.2.2 图构造
4.2.3 图执行
4.3 会话管理
4.3.1 创建会话
4.3.2 迭代运行
4.3.3 关闭会话
5 C API:分水岭
5.1 Swig:幕后英雄
5.2 会话控制
5.3 会话生命周期
5.3.1 Python 前端
5.3.2 C++后端
5.4 创建会话
5.4.1 编程接口
5.4.2 C API
5.4.3 后端系统
5.5 创建/扩展图
5.5.1 编程接口
5.5.2 C API
5.5.3 后端系统
5.6 迭代运行
5.6.1 编程接口
5.6.2 C API
5.6.3 后端系统
5.7 关闭会话
5.7.1 编程接口
5.7.2 C API
5.7.3 后端系统
5.8 销毁会话
5.8.1 编程接口
5.8.2 C API
5.8.3 后端系统
5.9 性能调优
5.9.1 共享图实例
5.9.2 消除序列化
第 III 部分 编程模型
6 计算图
6.1 Python 前端
6.1.1 Operation
6.1.2 Tensor
6.1.3 TensorShape
6.1.4 Graph
6.1.5 图构造
6.2 后端 C++
6.2.1 边
6.2.2 节点
6.2.3 图
6.2.4 OpDef 仓库
6.3 图传递
7 设备
7.1 设备规范
7.1.1 形式化
7.1.2 上下文管理器
8 会话
8.1 资源管理
8.1.1 关闭会话
8.1.2 上下文管理器
8.1.3 图实例
8.2 默认会话
8.2.1 张量求值
8.2.2 OP 运算
8.2.3 线程相关
8.3 会话类型
8.3.1 Session
8.3.2 InteractiveSession
8.3.3 BaseSession
9 变量
9.1 实战:线性模型
9.2 初始化模型
9.2.1 操作变量
9.2.2 初始值
9.2.3 初始化器
9.2.4 快照
9.2.5 变量子图
9.2.6 初始化过程
9.2.7 同位关系
9.2.8 初始化依赖
9.2.9 初始化器列表
9.3 变量分组
9.3.1 全局变量
9.3.2 本地变量
9.3.3 训练变量
9.3.4 global_step
9.4 源码分析:构造变量
9.4.1 构造初始值
9.4.2 构造变量 OP
9.4.3 构造初始化器
9.4.4 构造快照
9.4.5 变量分组
10 队列
10.1 队列
10.1.1 FIFOQueue
10.1.2 用途
10.2 协调器
10.2.1 使用方法
10.2.2 异常处理
10.2.3 实战:LoopThread
10.3 QueueRunner
10.3.1 注册 QueueRunner
10.3.2 执行 QueueRunner
10.3.3 关闭队列
11 OP 本质论
11.1 OP 的注册
11.1.1 REGISTER_OP
11.1.2 查询接口
11.1.3 OpDef 仓库
第 IV 部分 运行模型
12 本地执行
12.1 本地模式
12.1.1 部分执行
12.1.2 并发执行
12.2 会话控制
12.2.1 领域模型
12.2.2 创建会话
12.2.3 销毁会话
12.2.4 创建/扩展图
12.2.5 迭代执行
12.2.6 关闭会话
12.3 剪枝
12.3.1 构建 ClientGraph
12.3.2 基于 Rendezvous
12.3.3 基于 FunctionCallFrame
12.3.4 剪枝算法实现
12.4 分裂
12.4.1 情况 1
12.4.2 情况 2
12.4.3 情况 3
12.4.4 分裂算法实现
12.4.5 回调函数
12.5 执行
12.5.1 输入
12.5.2 并发执行
12.5.3 输出
12.6 设备间通信
12.6.1 SendOp 实现
12.6.2 RecvOp 实现
13 分布式 TensorFlow
13.1 分布式模式
13.1.1 图操作
13.1.2 形式化
13.1.3 领域模型
13.1.4 组建集群
13.2 Master 服务
13.2.1 接口定义
13.2.2 访问服务
13.2.3 RPC 过程
13.2.4 消息定义
13.3 Worker 服务
13.3.1 接口定义
13.3.2 访问服务
13.3.3 RPC 过程
13.3.4 消息定义
13.4 服务器
13.4.1 领域模型
13.4.2 状态机
13.4.3 创建 WorkerCacheInterface
13.4.4 创建 Worker 的 RPC 通道
13.4.5 创建 WorkerInterface
13.5 会话控制
13.5.1 会话协同
13.5.2 生命周期
13.5.3 会话过程
13.6 创建会话
13.6.1 创建 GrpcSession
13.6.2 创建 MasterSession
13.6.3 获取远端设备集
13.6.4 创建 WorkerSession
13.7 迭代执行
13.7.1 启动执行
13.7.2 图分裂:SplitByWorker
13.7.3 注册图
13.7.4 图分裂:SplitByDevice
13.7.5 运行图
13.7.6 Rendzvous
13.7.7 注销图
13.8 关闭会话
第 V 部分 模型训练
14 BP 算法
14.1 TensorFlow 实现
14.1.1 计算梯度
14.1.2 应用梯度
15 数据加载
15.1 数据注入
15.2 数据预加载
15.2.1 使用 Const
15.2.2 使用 Variable
15.2.3 批次预加载
15.3 数据管道
15.3.1 构建文件名队列
15.3.2 读取器
15.3.3 解码器
15.3.4 构建样本队列
15.3.5 输入子图
15.4 数据协同
15.4.1 阶段 1
15.4.2 阶段 2
15.4.3 阶段 3
15.4.4 Pipeline 节拍
16 Saver
16.1 Saver
16.1.1 使用方法
16.1.2 文件功能
16.1.3 模型
17 MonitoredSession
17.1 引入 MonitoredSession
17.1.1 使用方法
17.1.2 使用工厂
17.1.3 装饰器
17.2 生命周期
17.2.1 初始化
17.2.2 执行
17.2.3 关闭
17.3 模型初始化
17.3.1 协调协议
17.3.2 SessionManager
17.3.3 引入工厂
17.3.4 Scaffold
17.3.5 初始化算法
17.3.6 本地变量初始化
17.3.7 验证模型
17.4 异常安全
17.4.1 上下文管理器
17.4.2 停止 QueueRunner
17.5 回调钩子
第 VI 部分 附录
A 代码阅读
A.1 工欲善其事,必先利其器
A.2 力行而后知之真
A.3 发现领域模型
A.4 挖掘系统架构
A.5 细节是魔鬼
A.6 适可而止
A.7 发现她的美
A.8 尝试重构
A.9 形式化
A.10 实例化
A.11 独乐乐,不如众乐乐
B 持续学习
B.1 说文解字
B.1.1 选择
B.1.2 抽象
B.1.3 分享
B.1.4 领悟
B.2 成长之路
B.2.1 消除重复
B.2.2 提炼知识
B.2.3 成为习惯
B.2.4 更新知识
B.2.5 重构自我
B.2.6 专攻术业
下载地址:https://www.wenjiangs.com/wp-content/uploads/2025/02/H8LQi1tXJAdPvOCy.rar
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论