『TensorFlow Internals』笔记_源码结构
2024-10-18 22:28:27
零、资料集合
- 知乎专栏:Bob学步
- 知乎提问:如何高效的学习 TensorFlow 代码?.
- 大佬刘光聪(Github,简书)
- 开源书:TensorFlow Internals,强烈推荐(本博客参考书)
- TensorFlow架构与设计:编程模型
- TensorFlow架构与设计:概述
- TensorFlow架构与设计:会话生命周期
- TensorFlow架构与设计:图模块
- TensorFlow架构与设计:OP本质论
- TensorFlow架构与设计:变量初始化
- 大佬姚健(Github)
- 系列文章(图片?):图解tensorflow源码
- 『深度长文』Tensorflow代码解析(一)
- 『深度长文』Tensorflow代码解析(二)
- 『深度长文』Tensorflow代码解析(三):Op/Kernel相关
- 『深度长文』Tensorflow代码解析(四):Graph相关
- 『深度长文』Tensorflow代码解析(五):Session相关
- TensorFlow Kernels Registration 源码解析:TensorFlow的介绍写在paddle的wiki里。
- 网上某大佬博客(强烈推荐)
- TensorFlow 拆包(一):Session.Run()
- TensorFlow 拆包(二):TF 的数据流模型实现以及自动求导
- TensorFlow 拆包(三):Graph 和 Node
- TensorFlow 拆包(四):Device
- TensorFlow 拆包(五):Distributed
- TensorFlow 拆包(六):RDMA
- TensorFlow 拆包(七):Profiling 踩坑 & Benchmark
- TensorFlow 拆包(八):Dynamic Control Flow in Large-Scale Machine Learning
- 知乎某大佬专栏
- 其他
另附:
一、代码获取
克隆源码:
git clone https://github.com/tensorflow/tensorflow.git
切换到r1.4稳定分支:
cd tensorflow
git check r1.4
二、源码结构
tree -d -L 1 ./tensorflow
目录 | 说明 |
---|---|
/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 融
合在一起,并生成更高效的本地机器代码,提升计算图的执行效率。
三、逻辑构架图
最新文章
- Android立体旋转动画实现与封装(支持以X、Y、Z三个轴为轴心旋转)
- 子div设置float后导致父div无法自动撑开的问题
- LoadRunner测试结果分析02 转载至zhangzhe的新浪博客
- redis集群同步迁移方法(二):通过redis-migrate-tool实现
- ROS BY EXAMPLE 1 -- 环境设置与安装
- ubuntu 安装VmTool
- 夺命雷公狗ThinkPHP项目之----企业网站23之网站前台二级分类的跳转(URL跳转到列表页或产品页)
- 只有一个Service或Broadcast Reciver的android应用
- effective c++:virtual函数在构造函数和析构函数中的注意事项
- C#_dropdownlist_2
- 基于前端javascript的搜索功能
- HTTPS 详解
- Redis MSET的极限在哪里
- 极化码的matlab仿真(2)——编码
- 详谈Javascript类与继承
- poj 2425 AChessGame(博弈)
- 使用 Travis CI 自动部署 Hexo 站点至 GitHub Pages
- Jenkins+PowerShell持续集成环境搭建(七)构建触发器
- learning at command AT+CIMI
- (算法)判断字符串中是否包含HelloWorld