Tensorflow的核心代码在core模块中,56w行的代码量让人望而生畏,熟悉了bazel工具之后,发现BUILD文件是理清代码结构的很好的资源,但使用bazel query语法提取出来//tensorflow/core:tensorflow目标包含了9k多个依赖关系,即便画出了依赖关系图,可读性也非常差。由于目前仅关心核心实现,平台依赖和测试相关的目标暂时不用理会,这样剩余的依赖关系就会大量减少,笔者整理了一份,并用graphviz进行可视化,结果如下。

请注意,我做出了以下取舍,第一,舍弃了平台依赖性相关的目标,第二,舍弃了测试相关目标,第三,舍弃了对第三方库的依赖,第四,对相似目标进行了整合,比如xx_op中用xx表示具体操作名称,在image_format_internal中,使用image_format来代替gif、jpeg、png等。

另外,推荐一个bazel query命令,用于查找两个目标之间的依赖路径,bazel query "somepath(//tensorflow/core:tensorflow, //tensorflow/core:framework_internal)" --output graph | dot -Tpng -o framework_internal.png,得到的结果如下:

最新文章

  1. 【转】通过Hibernate将数据 存入oracle数据库例子
  2. 25个实用的jQuery技巧和解决方案
  3. 常用open api
  4. 数组API
  5. linux 下 oracle 11g r2 的卸载
  6. Nginx 日志文件切割
  7. [svn]svn: E155015: 提交失败(细节如下) 解决办法
  8. ViewPager使用 -------滑动图片
  9. android注解[Jake Wharton Butter Knife]
  10. Chrome插件开发 尝试2
  11. Word Search 解答
  12. 如何彻底解决jsp页面中文乱码及数据库乱码
  13. JavaEE session机制
  14. cocos2d Android.mk自动添加类
  15. 电脑如何防蹭网?使用防蹭网功能杜绝未知设备连接WiFi
  16. 关于ComponentName组件名称的使用
  17. 【BZOJ4715】囚人的旋律
  18. 200. Number of Islands(DFS)
  19. Shell 文件测试运算符
  20. Android典型界面设计(4)——使用ActionBar+Fragment实现tab切换

热门文章

  1. JVM学习六:堆分析
  2. 项目架构(结构)搭建:主流结构(UITabBarController + 导航控制器)
  3. 《Effective Python》笔记——第2章 函数
  4. Byobu安装与使用
  5. netty系列之:JVM中的Reference count原来netty中也有
  6. [TJOI2013] 奖学金
  7. HashTable源码学习
  8. 今天你花里胡哨了吗 --- 定制属于自己的linux ssh迎宾信息
  9. 日行一算(Table-文字输出)
  10. 【Python自动化Excel】pandas操作Excel的“分分合合”