一、代码获取

切换到r1.4稳定分支:

cd tensorflow

git check r1.4

二、源码结构

tree -d -L 1 ./tensorflow

tensorflow连接blas tensorflow internals_python

 

目录

说明

/c

C++ API,也是一些 Python API 与 C 层的接口部分

/cc

 

/compiler

即时编译的工具内容

/contrib

一些额外的库,大部分由第三方添加,其中一些正式确定的内容会移出去

/core

TensorFlow 的核心运行时代码

/core/distributed_runtime

分布式运行时代码

/core/framework

运行时中相对最底层的架构部分,涉及到很多基础结构的定义、与 Protobuf 的结合部分等等

/core/graph

运行时中对计算图的定义和处理

/core/kernels

计算图中 Op 的核心计算部分(即 Op 的 Kernel 函数)

/core/lib

运行时中调用的其他库的接口?

/core/ops

C 部分的 Op 分成两个部分,核心计算函数在前面的 /kernels 目录中,这里存的是 Op 面向上层 Python 运行时的注册部分内容。

详见 TensorFlow 拆包(三):Graph 和 Node

/core/platform

针对不同平台的额外内容

/core/profiler

运行时的调优工具?

/core/protobuf

Protobuf 的定义

/core/util

其他的一些工具

/python

TensorFlow Python 部分的运行时和 API

重点文件夹如下:

core

内核的源码,C++实现。

python

接口API,python实现。

contrib

第三方库,实验性,当 contrib 标准化,并从 中,并正式对外发布。

stream_executor

提速组件,并行化、分布式相关。

compiler

优化计算图,主要优化OP的分解组合方式,找到尽可能好的图构建方式,能够分析运行时的计算图,将多个 OP 融
合在一起,并生成更高效的本地机器代码,提升计算图的执行效率。

三、逻辑构架图

tensorflow连接blas tensorflow internals_python_02