使用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实现Linux中的du命令
Jun 12 Python
Python数据可视化正态分布简单分析及实现代码
Dec 04 Python
用python处理图片之打开\显示\保存图像的方法
May 04 Python
在Pycharm中设置默认自动换行的方法
Jan 16 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
python3人脸识别的两种方法
Apr 25 Python
8种用Python实现线性回归的方法对比详解
Jul 10 Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 Python
django 使用 PIL 压缩图片的例子
Aug 16 Python
Python模块 _winreg操作注册表
Feb 05 Python
pycharm 对代码做静态检查操作
Jun 09 Python
Python实现FTP文件定时自动下载的步骤
Dec 19 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
Amazon Prime Video平台《无限住人 -IMMORTAL-》2020年开始TV放送!
2020/03/06 日漫
php设置编码格式的方法
2013/03/05 PHP
PHP在线生成二维码(google api)的实现代码详解
2013/06/04 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
Microsoft Ajax Minifier 压缩javascript的方法
2010/03/05 Javascript
jQuery JSON的解析方式分享
2011/04/05 Javascript
js关闭浏览器窗口及检查浏览器关闭事件
2013/09/03 Javascript
Javascript 命名空间模式
2013/11/01 Javascript
js判断元素是否隐藏的方法
2014/06/09 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
javascript的BOM
2016/05/03 Javascript
jQuery Validate验证表单时多个name相同的元素只验证第一个的解决方法
2016/12/24 Javascript
浅析Visual Studio Code断点调试Vue
2018/02/27 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
Vue事件修饰符native、self示例详解
2019/07/09 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
Python如何实现强制数据类型转换
2019/11/22 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
KIKO比利时官网:意大利彩妆品牌
2017/07/23 全球购物
党员自我评价分享
2013/12/13 职场文书
上班睡觉检讨书
2014/01/09 职场文书
关于学习的演讲稿
2014/05/10 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
上帝也疯狂观后感
2015/06/09 职场文书
基层党建工作简报
2015/07/21 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server