使用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连接MySQL并使用fetchall()方法过滤特殊字符
Mar 13 Python
django 开发忘记密码通过邮箱找回功能示例
Apr 17 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
Dec 10 Python
Django框架会话技术实例分析【Cookie与Session】
May 24 Python
django多种支付、并发订单处理实例代码
Dec 13 Python
如何使用pandas读取txt文件中指定的列(有无标题)
Mar 05 Python
详解Python 中的容器 collections
Aug 17 Python
详解如何在PyCharm控制台中输出彩色文字和背景
Aug 17 Python
python批量生成条形码的示例
Oct 10 Python
python Timer 类使用介绍
Dec 28 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
全国FM电台频率大全 - 13 福建省
2020/03/11 无线电
DedeCMS 核心类TypeLink.class.php摘要笔记
2010/04/07 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
2014/08/06 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
2017/05/29 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
js正则表达式的使用详解
2013/07/09 Javascript
jQuery获得IE版本不准确webbrowser的解决方法
2014/02/23 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
2016/05/23 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
2016/10/31 Javascript
JS实现的添加弹出层并完成锁屏操作示例
2017/04/07 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
React实现轮播效果
2020/08/25 Javascript
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
python中列表元素连接方法join用法实例
2015/04/07 Python
Python实现Linux的find命令实例分享
2017/06/04 Python
基于python的ini配置文件操作工具类
2019/04/24 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
《逃家小兔》教学反思
2014/02/23 职场文书
机械工程及其自动化专业求职信
2014/08/08 职场文书
党的群众路线教育实践活动对照检查材料(个人)
2014/09/24 职场文书
2014年客房部工作总结
2014/11/22 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
幼儿园国培研修日志
2015/11/13 职场文书
Python编写nmap扫描工具
2021/07/21 Python
Java Spring Boot请求方式与请求映射过程分析
2022/06/25 Java/Android