tensorflow 核心流程剖析 1-- 简介

这个博文是什么和不是什么

对于大部分使用者来说,tensorflow就像一个大黑盒,我们平时接触的只是一层python API的封装。
概括来说,python API只是负责搭建好要运行的神经网络模型,即静态模型。
通过python API能看、能改,但是不能运行。

真正运行这个神经网络模型的,是其C++实现的部分,可以看做一个动态模型。
也是这部分,才让tensor真正的flow起来。

不分析的:

要分析的:

  • tensorflow的核心部分:对应c++实现的神经网络模型运行部分。其本质上,是以支持大规模的分布式、并行计算作为设计的基本目标。tensorflow实现这个目标的流程、原理及代码,是作为本文分析的内容。
  • 分析的模块:以下图表示一下。
    tensorflow 核心流程剖析 1-- 简介

适合的读者

  • 系统学习过tensorflow官网的教程,编码实践过一些简单的神经网络模型, 同时想了解和探讨一下tensorflow核心流程的朋友。
  • 对并行软件系统设计感兴趣、且有一定基础的朋友。
  • 愿意去读tensorflow的c++核心代码的朋友:因为本文主要反映的是核心代码的流程,有时您最好结合源代码来看,更容易理解,否则会觉得太过抽象。需要具备c++ 11 的基础。
  • 尝试修改tensrflow核心代码,做出定制化功能的朋友。

后续剖析的内容

  • 神经网络模型(Computation Graph)的创建、优化和分割
  • 神经网络模型的分布式并发执行
  • 运行设备的生成和管理
  • 内存的高效使用
  • Op、Kernel的注册和动态加载机制
  • kernel的并发执行

使用的tf代码版本

r1.1