TensorFlow0.8源码阅读 -- 代码目录结构讲解
2016-05-27 22:16
399 查看
TensorFlow0.8发布以来受到了大量机器学习领域爱好者的关注,目前其项目在github上的follow人数在同类项目中排名第一。作为google的第一个开源项目,TensorFlow的源码结构较为清晰,相关的代码注释覆盖较全。本文首先从代码结构入手,分析TesnsorFlow的各个模块构成。
当前源码的部分注释和相关分析文章可以在爱毛桃 网站上进行查看
以下是对根目录下的几个核心文件和目录的相关介绍:
目录tensorflow 该目录下存放着tensorflow的核心代码
目录google 该目录下存放着protobuf的相关代码,该目录通过在
目录third_party/tools/util 目前这三个目录中的文件较少,还未看出其相关作用,可能会在接下来的项目发展中变得更加完善。
文件configure 该文件用于配置tensorflow的安装环境,运行该文件并完成tensorflow的安装环境配置后,运行
由于目录google 的作用仅为提供protobuf的通信支持,当前我们主要对目录tensorflow的相关结构进行分析。
以下是对该目录下的几个重要目录的简单介绍:
目录core 该目录为tensorflow的C++源码的核心存放地点,接下来我们会对该目录中存放的各个模块进行简要介绍。
目录python 该目录下存放了tensorflow使用python编写的相关代码,个人感觉该部分代码主要是使用python封装了相关的机器学习算法,但最终的计算操作是通过调用目录core 中的C++逻辑实现的。这样做的好处是利用了python较方便的编程特性和C++较高效的执行效率。
目录tensorboard tensorborad是tensorflow中非常有特色的一个模块,该模块可以用于生成模型训练中实时生成图表,用于监控模型的训练程度。关于tensorboard的相关介绍可以点击 这里
目录models 该目录下存放这多个使用pyton实现的模型实例。
目录contrib 该目录下存放有其他项目贡献者添加的相关贡献代码,由于tensorflow受关注程度较高,目前该目录正急剧膨胀。以下是一个关于该目录下scikit flow的相关介绍。
其他
目前来看tensorflow中很多模块正处于刚开始起步的阶段,很多逻辑还有待完善(如当前支持的模型较少、很多方法还未实现等)。
本文接下来会对核心目录core 中的文件结构进行简要的介绍。
以下为该目录的代码组织结构
以下是对该目录下的几个主要模块(目录)的功能介绍
目录common_runtime 该目录下包含了tensorflow中session执行的通用逻辑流程。
目录distributed_runtime tensorflow 与分布式相关的执行逻辑。
目录graph tensorflow图相关操作的逻辑。由于tensorflow中的数据计算本质上是一个图状结构的计算流程,该过程中存在将图进行切分并且并行化执行的可能性。该目录下的代码逻辑即为对图数据进行结构化定义并进行拆分的相关内容。
目录framework 该目录下对tensorflow进行计算过程中的通用组件进行了定义和实现。
目录kernels 对tensorflow中各个单步操作的具体实现。 该目录中共有约470个文件,其中414个文件和op相关,该目录下包含了大量的tensorflow中单步操作的实现方式。(如
目录ops 对
目录models 实现了几个tensorflow支持的计算模型,该部分代码由python实现。
目录client/public tensorflow对外api的定义和实现
目录util/lib 一些公用的调用方法。
目录protobuf tensorflow下各个模块间进行数据传输的数据结构定义,通过proto进行配置实现。
目录user_ops 用户可进行编写自己的op并添加到该目录。
当前源码的部分注释和相关分析文章可以在爱毛桃 网站上进行查看
根目录结构的相关介绍
以下是TensorFlow项目根目录下的文件结构(目前以TensorFlow-0.8为例)以下是对根目录下的几个核心文件和目录的相关介绍:
目录tensorflow 该目录下存放着tensorflow的核心代码
目录google 该目录下存放着protobuf的相关代码,该目录通过在
git clone命令后添加
--recurse-submodules可以下载得到。protobuf主要用于tensorflow中的各模块通信。
目录third_party/tools/util 目前这三个目录中的文件较少,还未看出其相关作用,可能会在接下来的项目发展中变得更加完善。
文件configure 该文件用于配置tensorflow的安装环境,运行该文件并完成tensorflow的安装环境配置后,运行
bazel build -c opt //tensorflow/cc:tutorials_example_trainer即可完成代码的编译工作。(注 需要先安装bazel)
由于目录google 的作用仅为提供protobuf的通信支持,当前我们主要对目录tensorflow的相关结构进行分析。
tensorflow目录结构的相关介绍
以下是目录tensorflow 下的相关目录和文件以下是对该目录下的几个重要目录的简单介绍:
目录core 该目录为tensorflow的C++源码的核心存放地点,接下来我们会对该目录中存放的各个模块进行简要介绍。
目录python 该目录下存放了tensorflow使用python编写的相关代码,个人感觉该部分代码主要是使用python封装了相关的机器学习算法,但最终的计算操作是通过调用目录core 中的C++逻辑实现的。这样做的好处是利用了python较方便的编程特性和C++较高效的执行效率。
目录tensorboard tensorborad是tensorflow中非常有特色的一个模块,该模块可以用于生成模型训练中实时生成图表,用于监控模型的训练程度。关于tensorboard的相关介绍可以点击 这里
目录models 该目录下存放这多个使用pyton实现的模型实例。
目录contrib 该目录下存放有其他项目贡献者添加的相关贡献代码,由于tensorflow受关注程度较高,目前该目录正急剧膨胀。以下是一个关于该目录下scikit flow的相关介绍。
其他
目前来看tensorflow中很多模块正处于刚开始起步的阶段,很多逻辑还有待完善(如当前支持的模型较少、很多方法还未实现等)。
本文接下来会对核心目录core 中的文件结构进行简要的介绍。
core目录结构的相关介绍
core目录是tensorflow源码中最核心的一个目录,其代码逻辑主要为C++开发实现。以下为该目录的代码组织结构
以下是对该目录下的几个主要模块(目录)的功能介绍
目录common_runtime 该目录下包含了tensorflow中session执行的通用逻辑流程。
目录distributed_runtime tensorflow 与分布式相关的执行逻辑。
目录graph tensorflow图相关操作的逻辑。由于tensorflow中的数据计算本质上是一个图状结构的计算流程,该过程中存在将图进行切分并且并行化执行的可能性。该目录下的代码逻辑即为对图数据进行结构化定义并进行拆分的相关内容。
目录framework 该目录下对tensorflow进行计算过程中的通用组件进行了定义和实现。
目录kernels 对tensorflow中各个单步操作的具体实现。 该目录中共有约470个文件,其中414个文件和op相关,该目录下包含了大量的tensorflow中单步操作的实现方式。(如
Variable())
目录ops 对
kernel/下的op进行注册和对外声明。
目录models 实现了几个tensorflow支持的计算模型,该部分代码由python实现。
目录client/public tensorflow对外api的定义和实现
目录util/lib 一些公用的调用方法。
目录protobuf tensorflow下各个模块间进行数据传输的数据结构定义,通过proto进行配置实现。
目录user_ops 用户可进行编写自己的op并添加到该目录。
相关文章推荐
- TensorFlow 的简单例子
- 用Python从零实现贝叶斯分类器的机器学习的教程
- My Machine Learning
- 机器学习---学习首页 3ff0
- Spark机器学习(一) -- Machine Learning Library (MLlib)
- 反向传播(Backpropagation)算法的数学原理
- 关于SVM的那点破事
- 也谈 机器学习到底有没有用 ?
- TensorFlow人工智能引擎入门教程之九 RNN/LSTM循环神经网络长短期记忆网络使用
- TensorFlow人工智能引擎入门教程之十 最强网络 RSNN深度残差网络 平均准确率96-99%
- TensorFlow人工智能入门教程之十一 最强网络DLSTM 双向长短期记忆网络(阿里小AI实现)
- TensorFlow人工智能引擎入门教程之十二 Caffe转换tensorflow并 跨平台调用
- TensorFlow人工智能入门教程之十三 RCNN 区域卷积网络(视频侦测分析人脸侦测区域检测 )
- TensorFlow人工智能引擎入门教程所有目录
- 如何用70行代码实现深度神经网络算法
- 量子计算机编程原理简介 和 机器学习
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)
- 人工智能扫盲漫谈篇 & 2018年1月新课资源推荐
- 人工智能唐宇迪老师专题团购~史无前例最低优惠~