码迷,mamicode.com
首页 > 其他好文 > 详细

Tensorflow[目录结构]

时间:2018-05-29 20:38:23      阅读:239      评论:0      收藏:0      [点我收藏+]

标签:1.7   不同   util   文件夹   article   not   compile   analysis   tun   


1 - Tensorflow源码目录结构

基于2018年5月28日github的tensorflow源码,即1.8版本

技术分享图片

第一层

tensorflow: 核心代码目录。
third_party:第三方库,包括:eigen3,fft2d,hadoop,mkl,probuf ,kafka,mpi,tensorRT,nccl,grpc等等。
tools:只有两个文件 bazel.rc 和 tf_env_collect.sh。
util/python:存放用到的 python 工具,不过当前版本其中只有一个BUILD文件。

tensorflow

c:
cc:
compiler:
contrib:存放有其他项目贡献者添加的相关贡献代码,非核心官方代码
core:这是 tensorflow 的核心代码模块.
docs_str:以md呈现的帮助文档
examples:以jupyter notebook呈现的例子文档
g3doc:为空,都迁移到docs_str
go,java,python:主要的第三方 API,其中python是最全的接口
stream_executor:tensorflow 流图的并行计算执行,核心代码。
tools:
user_ops:

tensorflow/core:Core 目录是代码最核心的部分,包含 框架、图、会话、runtime 最核心的部分

api_def:
common_runtime:公共运行库,包含 会话(session)、线程(thread),内存管理(memory), 设备调度(device)等基本运行库。
debug:
distributed_runtime:分布式运行库,与上面类似,作为分布式情况下的运行库,提供运行支撑。
example:
framework:框架基础模块定义,主要是通用组件的结构格式定义;
graph:计算流图相关基础操作(类结构),包括 拆分、合并、执行 等操作,被外面的 executor 调用;
kernels:核心操作定义,像常用的运算 matmul,sigmoid 等操作;
lib:基础库用于内部调用,包括 hash、io、jpeg、math 等;
ops:对 kernel 下的op进行注册和对外声明;
platform: 针对不同平台的依赖
profiler:
protobuf:Google 的传输交换模块,用于传输时的数据序列化;
public:
user_ops:
util:

2 - Tensorflow运行目录结构

上述是基于tensorflow的源码进行目录结构展示,而我们通常使用的时候,是基于编译后的,即所谓运行的目录。基于tensorflow_gpu 1.7,采用命令

tree -L 1 -F -C tensorflow

对centos系统中"Anaconda3/lib/python3.6/site-packages"下面的tensorflow进行目录展示

技术分享图片

图2.1 tensorflow一级目录结构

其中,contrib较为特殊,其中涉及的部分较多
技术分享图片 技术分享图片

图2.2 tensorflow/contrib一级目录结构

技术分享图片 技术分享图片 技术分享图片 技术分享图片

图2.3 tensorflow中其他子目录的一级目录结构

当我们运行

import tensorflow as tf

会自动执行"tensorflow/_init_.py"该文件,而该文件中有如图所示的一行代码,会自动将tensorflow/python下的py文件都导入进来

技术分享图片

然而tensorflow/python同时会自动运行tensorflow/python/_init_.py
技术分享图片

从而在顶层空间中会有keras等变量,可以直接通过tf.keras进行访问,而其对应的就是tensorflow/python/keras文件夹。当然该初始化文件中还有部分是导入tensorflow/core的
技术分享图片

所以,我们通常直接访问tf.xxx都是在访问tensorflow/python和tensorflow/core等下面的部分;当然因为tensorflow/_init_.py下面有如

del python
del core

等代码,从而,我们在不显式导入的基础上,只是访问

tensorflow/python/{keras,layers,...}
tensorflow/contrib
tensorflow/tools

这三个部分的文件夹路径

参考文献:

Tensorflow[目录结构]

标签:1.7   不同   util   文件夹   article   not   compile   analysis   tun   

原文地址:https://www.cnblogs.com/shouhuxianjian/p/9086994.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!