linux python源码目录结构,TensorFlow0.8源码阅读 -- 代码目录结构讲解

TensorFlow0.8发布以来受到了大量机器学习领域爱好者的关注,目前其项目在github上的follow人数在同类项目中排名第一。作为google的第一个开源项目,TensorFlow的源码结构较为清晰,相关的代码注释覆盖较全。本文首先从代码结构入手,分析TesnsorFlow的各个模块构成。

根目录结构的相关介绍

以下是TensorFlow项目根目录下的文件结构(目前以TensorFlow-0.8为例)

bf27527fe3c8f29a389c0f339d607290.png

以下是对根目录下的几个核心文件和目录的相关介绍:

目录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 下的相关目录和文件

e0a0f3a7484ea3061e7a713ec48666ba.png

以下是对该目录下的几个重要目录的简单介绍:

目录core 该目录为tensorflow的C++源码的核心存放地点,接下来我们会对该目录中存放的各个模块进行简要介绍。

目录core 中的C++逻辑实现的。这样做的好处是利用了python较方便的编程特性和C++较高效的执行效率。

目录tensorboard tensorborad是tensorflow中非常有特色的一个模块,该模块可以用于生成模型训练中实时生成图表,用于监控模型的训练程度。

目录models 该目录下存放这多个使用pyton实现的模型实例。

目录contrib 该目录下存放有其他项目贡献者添加的相关贡献代码,由于tensorflow受关注程度较高,目前该目录正急剧膨胀。

其他

目前来看tensorflow中很多模块正处于刚开始起步的阶段,很多逻辑还有待完善(如当前支持的模型较少、很多方法还未实现等)。

本文接下来会对核心目录core 中的文件结构进行简要的介绍。

core目录结构的相关介绍

core目录是tensorflow源码中最核心的一个目录,其代码逻辑主要为C++开发实现。

以下为该目录的代码组织结构

2282738b6b6bf720397b03e149b422b8.png

以下是对该目录下的几个主要模块(目录)的功能介绍

目录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并添加到该目录。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-07/133215.htm0b1331709591d260c1c78e86d0c51c18.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在VirtualBox里复制VDI文件[转]

原文地址:http://blog.sina.com.cn/s/blog_591a2c940100aree.html 在VirtualBox的快速修复界面里,可以随时生成当前状态的备份。当生成了备份之后,会在Snapshots目录下创建一个新的VDI文件,之后对当前状态所做的一切操作都将针对最新的VDI文件…

软件开发重要性_在软件开发中考虑时间的重要性

软件开发重要性by Crunch Tech通过Crunch Tech 在软件开发中考虑时间的重要性 (The importance of time to think in Software Development) Modern Technology teams operate in a fast-paced environment. With a Technology team of only 35 people, we average over 50 re…

自动登录360,百度

方便登录,写的小工具 1 import win.ui;2 import web.ui;3 /*DSG{{*/4 var winform ..win.form(text"AAuto Form";right599;bottom399)5 winform.add(6 button{cls"button";text"百度";left41;top25;right163;bottom59;z1};7 button2…

arm linux 开机电路_【技术角度看问题之一】ARM到底是个啥?

【小宅按】近期公司推出来基于ARM芯片的服务器,本文就一些基本概念,比如ARM, ARM64, ARMv8, ARM7,ARMv7, 64位等让人费解的概念进行了粗浅地分析,涉及的关键字已用粗体标出。文中观点仅仅是一家之言,拙劣之…

leetcode77. 组合(回溯)

给定两个整数 n 和 k&#xff0c;返回 1 … n 中所有可能的 k 个数的组合。 示例: 输入: n 4, k 2 输出: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] 代码 class Solution {List<List<Integer>> cListnew ArrayList<>();public List<List<I…

linux系统配置脚本,Linux系统配置脚本开机自启

在日常使用过程中&#xff0c;当有时候需要运行开机自启脚本&#xff0c;同时想看到输出结果的时候&#xff0c;不免就需要将系统配置为免密登录模式&#xff0c;本文主要介绍再init3模式(多用户命令行界面)&#xff0c;运行开机自启脚本及输出脚本指令运行数据结果。本文使用的…

WPF多线程UI更新

前言 在WPF中&#xff0c;在使用多线程在后台进行计算限制的异步操作的时候&#xff0c;如果在后台线程中对UI进行了修改&#xff0c;则会出现一个错误&#xff1a;&#xff08;调用线程无法访问此对象&#xff0c;因为另一个线程拥有该对象。&#xff09;这是很常见的一个错误…

iOS------App之间传递数据的几种方式

UIDocumentInteractionController UIActivityViewController Shared Keychain Access Custom URL Scheme Web Service iCloud API UIPasteboard 参考 http://enharmonichq.com/sharing-data-locally-between-ios-apps/http://stackoverflow.com/questions/9425706/share-data-b…

了解如何使用Vue.js CLI

Interested in learning Vue.js? Get my ebook at vuehandbook.com有兴趣学习Vue.js吗&#xff1f; 在vuehandbook.com上获取我的电子书 One of them is the Vue Command Line Interface (CLI).其中之一是Vue命令行界面(CLI)。 Note: There is a huge rework of the CLI goin…

rabbitmq学习——队列

public class Send { public static final String routingKey "wuqidi_task_durable"; /*工作队列 也叫任务队列 目的是将任务发送到队列中 由工作者进行处理 在后台的多个工作者中 任务是共享的*/ public static void main(String[] args) throws Exception{ Conne…

python 战舰_简单Python战舰

我最近开始学习python&#xff0c;并决定尝试制作我的第一个项目。我正在尝试做一个战舰游戏&#xff0c;随机放置两个3块长的船在一块板上。但效果不太好。我为2号飞船做了一个临时的循环&#xff0c;它应该检查一下旁边的两个空间是否空闲&#xff0c;然后在那里建立自己的空…

leetcode面试题 08.12. 八皇后(回溯)

设计一种算法&#xff0c;打印 N 皇后在 N N 棋盘上的各种摆法&#xff0c;其中每个皇后都不同行、不同列&#xff0c;也不在对角线上。这里的“对角线”指的是所有的对角线&#xff0c;不只是平分整个棋盘的那两条对角线。 注意&#xff1a;本题相对原题做了扩展 示例: 输…

linux 进入redis 数据库,Linux下Redis数据库的安装方法与自动启动脚本分享

安装Redis(1) 下载Rediswget http://redis.googlecode.com/files/redis-2.2.11.tar.gztar xzvf redis-2.2.11.tar.gz(2) 编译并安装Redismake && make install(3) 复制并修改配置文件cp redis.conf /etc/redis.confvi /etc/redis.conf注意修改以下几项&#xff1a;daem…

Flutter 36: 图解自定义 View 之 Canvas (三)

小菜继续学习 Canvas 的相关方法&#xff1a; drawVertices 绘制顶点 小菜上次没有整理 drawVertices 的绘制方法&#xff0c;这次补上&#xff1b;Vertice 即顶点&#xff0c;通过绘制多个顶点&#xff0c;在进行连线&#xff0c;多用于 3D 模型中&#xff1b; drawVertices 包…

sphinx 项目根目录_如何使用Sphinx工具记录Django项目

sphinx 项目根目录I recently visited a company where I had a nice talk with one of its employees. We talked about technology and programming. Then we touched the subject of project documentation. Specifically how React does it automatically but Django doesn…

程序员必知之浮点数运算原理详解

导读&#xff1a;浮点数运算是一个非常有技术含量的话题&#xff0c;不太容易掌握。许多程序员都不清楚使用操作符比较float/double类型的话到底出现什么问题。 许多人使用float/double进行货币计算时经常会犯错。这篇文章是这一系列中的精华&#xff0c;所有的软件开发人员都应…

axure选中后横线切换_3、开关状态切换 —— Axure实用交互

写在开头:开关的制作在几乎所有原型设计中都会用到&#xff0c;所以美观自然的交互开关可以给你的原型设计加分不少。本次开关设计主要用到的是逻辑为&#xff1a;选中状态的切换首先&#xff0c;来看一下演示动画开始原型设计一、创建元件首先需要打开Axure软件&#xff0c;并…

Django框架——模型(数据库操作)

-- models.py-- ORM(object-relation mapping) 实现数据模型与数据库的解耦&#xff1b;# 对象&#xff0c;关系&#xff0c;映射&#xff1b;1.根 据对象的类型生成表结构&#xff1b;2.将对象、列表的操作&#xff0c;转换为sql语句&#xff1b;3.将sql查询到的结果转换为对象…

leetcode140. 单词拆分 II(回溯+记忆化)

给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict&#xff0c;在字符串中增加空格来构建一个句子&#xff0c;使得句子中所有的单词都在词典中。返回所有这些可能的句子。 说明&#xff1a; 分隔时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 …

#loj 3058 [HNOI2019] 白兔之舞

单位根反演思博题 模数是乱给的记得整个任意模数ntt k为p-1的约数意味着一定存在k次单位根&#xff0c;设g是p的原根则\(w_{k}^{1}g^{\frac{k-1}{p}}\) 既然k次单位根存在自然考虑单位根反演了 设\(f(i)\)表示跳了i步并且停在了第二维为y的顶点的方案数 设\(st\)表示初始向量而…