使用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判断文件和文件夹是否存在的方法
May 21 Python
python统计文本字符串里单词出现频率的方法
May 26 Python
简单谈谈python的反射机制
Jun 28 Python
Python实现单词翻译功能
Jun 06 Python
python实现字符串中字符分类及个数统计
Sep 28 Python
python3实现名片管理系统
Nov 29 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
PyQt5 QTableView设置某一列不可编辑的方法
Jun 25 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
pytorch模型存储的2种实现方法
Feb 14 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
Jun 11 Python
Python绘制散乱的点构成的图的方法
Apr 21 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
PHP中ini_set与ini_get用法实例
2014/11/04 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
google地图的路线实现代码
2009/08/20 Javascript
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
在linux中使用包管理器安装node.js
2015/03/13 Javascript
jQuery仿天猫实现超炫的加入购物车
2015/05/04 Javascript
在JavaScript中处理字符串之link()方法的使用
2015/06/08 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
jquery取消事件冒泡的三种方法(推荐)
2016/05/28 Javascript
sencha ext js 6 快速入门(必看)
2016/06/01 Javascript
浅谈bootstrap源码分析之tab(选项卡)
2016/06/06 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
python数组复制拷贝的实现方法
2015/06/09 Python
Django自定义分页与bootstrap分页结合
2021/02/22 Python
Python爬虫实现爬取京东手机页面的图片(实例代码)
2017/11/30 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
Python线程池模块ThreadPoolExecutor用法分析
2018/12/28 Python
python2.7 安装pip的方法步骤(管用)
2019/05/05 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
python3.7添加dlib模块的方法
2020/07/01 Python
Photobook澳大利亚:制作相片书,婚礼卡,旅行相簿
2017/01/12 全球购物
Booking.com缤客中国:全球酒店在线预订网站
2020/05/03 全球购物
素质拓展感言
2014/01/29 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
2019年幼儿园家长接送责任书
2019/10/29 职场文书
golang中的空接口使用详解
2021/03/30 Python
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python