使用Bazel编译TensorBoard教程


Posted in Python onFebruary 15, 2020

1.TensorBoard

Tensorboard是一套用于查看和理解TensorFlow运行情况的工具,有时可能现有的功能并不能满足我们当前的需求,那么则需要我们对Tensorboard进行定制化开发,定制化的第一步就是编译源码。

TensorBoard已在github上开源,我们可以通过https://github.com/tensorflow/tensorboard获取到完整的代码。包括TensorBoard在内,Google的很多项目都是使用Bazel进行编译的,接下来我们进行相关环境的安装。

2.Bazel

Bazel类似于Make、Maven、Gradle,是一款开源的编译和测试工具。它使用一种人类可读的高级构建语言。Bazel支持多种开发语言,并且可以为不同平台进行构建。同时,Bazel支持跨越多用户、多仓库的大型代码库。

Bazel的安装可参考https://docs.bazel.build/versions/master/install-ubuntu.html,本文以Ubuntu为例介绍Bazel的安装过程。

1)通过安装包方式安装

首先,安装所需的包

sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python

在Github下载Bazel的安装包,Linux下需要下载 bazel-<version>-installer-linux-x86_64.sh

修改安装包的权限,运行安装包

chmod +x bazel-<version>-installer-linux-x86_64.sh
./bazel-<version>-installer-linux-x86_64.sh --user

增加环境变量

export PATH="$PATH:$HOME/bin"

也可以放入~/.bashrc中

vim ~/.bashrc
source ~/.bashrc

2)使用apt仓库

安装JDK 8,建议通过官网安装,或者安装openjdk

sudo apt-get install openjdk-8-jdk

增加仓库源

echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -

安装bazel

sudo apt-get update && sudo apt-get install bazel

安装之后,可以通过upgrade直接更新到最新版本

sudo apt-get upgrade bazel

3.代码编译

由于使用tensorboard需要python3,我们将linux自带的python切换为python3

echo alias python=python3 >> ~/.bashrc
source ~/.bashrc

在github中将代码下载下来,或者通过git直接拉取

git@github.com:tensorflow/tensorboard.git

用高版本bazel编译tensorboard存在一个bug,虽然官方已经修复但是没有发布release,因此修改我们手动修改。

修改WORKSPACE,搜索io_bazel_rules_closure,修改为

http_archive(
 name = "io_bazel_rules_closure",
 sha256 = "b29a8bc2cb10513c864cb1084d6f38613ef14a143797cea0af0f91cd385f5e8c",
 strip_prefix = "rules_closure-0.8.0",
 urls = [
 "https://mirror.bazel.build/github.com/bazelbuild/rules_closure/archive/0.8.0.tar.gz",
 "https://github.com/bazelbuild/rules_closure/archive/0.8.0.tar.gz", # 2018-05-09
 ],
)

打开终端,进入项目目录下,输入

bazel build tensorboard:tensorboard

看到 Build completed successfully 说明编译成功

然后输入

./bazel-bin/tensorboard/tensorboard --logdir <path>

看到 TensorBoard 1.10.0 at http://host:6006 (Press CTRL+C to quit) 说明启动成功

打开浏览器,输入localhost:6006就可以看到我们编译好的TensorBoard了。

至此,TensorBoard的编译已经完成,接下来就可以进行自定义的开发了,注意要遵循Apache License 2.0许可喔~

以上这篇使用Bazel编译TensorBoard教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中if __name__ == '__main__'作用解析
Jun 29 Python
Python3 Random模块代码详解
Dec 04 Python
python中Apriori算法实现讲解
Dec 10 Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 Python
Python3实现的反转单链表算法示例
Mar 08 Python
python+openCV利用摄像头实现人员活动检测
Jun 22 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
Aug 28 Python
Pyqt5自适应布局实例
Dec 13 Python
python 普通克里金(Kriging)法的实现
Dec 19 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
Python requests模块cookie实例解析
Apr 14 Python
Python定义一个Actor任务
Jul 29 Python
TensorBoard 计算图的可视化实现
Feb 15 #Python
TensorBoard 计算图的查看方式
Feb 15 #Python
pycharm 更改创建文件默认路径的操作
Feb 15 #Python
PyCharm刷新项目(文件)目录的实现
Feb 14 #Python
浅谈Pycharm最有必要改的几个默认设置项
Feb 14 #Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 #Python
python图形开发GUI库pyqt5的基本使用方法详解
Feb 14 #Python
You might like
laravel中的一些简单实用功能
2018/11/03 PHP
php查询内存信息操作示例
2019/05/09 PHP
一些常用的JS功能函数代码
2009/06/23 Javascript
JQuery 获得绝对,相对位置的坐标方法
2010/02/09 Javascript
基于jquery的3d效果实现代码
2011/03/23 Javascript
JS实现简单的Canvas画图实例
2013/07/04 Javascript
基于javascript 闭包基础分享
2013/07/10 Javascript
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
js中符号转意问题示例探讨
2013/08/19 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
js实时获取并显示当前时间的方法
2015/07/31 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
ES6下React组件的写法示例代码
2017/05/04 Javascript
AngularJS中controller控制器继承的使用方法
2017/11/03 Javascript
JS实现select选中option触发事件操作示例
2018/07/13 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
Python属性和内建属性实例解析
2020/01/14 Python
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
介绍一下如何优化MySql
2016/12/20 面试题
什么是Web Service?
2012/07/25 面试题
优秀员工自荐信范文
2013/10/05 职场文书
平面设计自荐信
2013/10/07 职场文书
优秀实习自我鉴定
2013/12/04 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
爱与责任师德演讲稿
2014/08/26 职场文书
上课迟到检讨书300字
2014/10/15 职场文书
地方课程教学计划
2015/01/19 职场文书
失职检讨书大全
2015/01/26 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
离婚纠纷代理词
2015/05/23 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
Python selenium的这三种等待方式一定要会!
2021/06/10 Python