使用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的urllib模块显示下载进度示例
Jan 17 Python
python列表的常用操作方法小结
May 21 Python
浅谈python 四种数值类型(int,long,float,complex)
Jun 08 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
Feb 03 Python
分析python动态规划的递归、非递归实现
Mar 04 Python
python3 读写文件换行符的方法
Apr 09 Python
Python unittest单元测试框架总结
Sep 08 Python
python 读取dicom文件,生成info.txt和raw文件的方法
Jan 24 Python
python实现批量注册网站用户的示例
Feb 22 Python
python返回数组的索引实例
Nov 28 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 Python
Django怎么在admin后台注册数据库表
Nov 14 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 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
jQuery操作JSON的CRUD用法实例
2015/02/25 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
Javascript验证方法大全
2015/09/21 Javascript
Node.js包管理器Yarn的入门介绍与安装
2016/10/17 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
为输入框加入数字js校验代码分享
2017/11/02 Javascript
JavaScript实现简单动态进度条效果
2018/04/06 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
详解关于React-Router4.0跳转不置顶解决方案
2019/05/10 Javascript
js尾调用优化的实现
2019/05/23 Javascript
vue穿梭框实现上下移动
2021/01/29 Vue.js
Python获取DLL和EXE文件版本号的方法
2015/03/10 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
JSON文件及Python对JSON文件的读写操作
2018/10/07 Python
python求绝对值的三种方法小结
2019/12/04 Python
Win系统PyQt5安装和使用教程
2019/12/25 Python
动态设置django的model field的默认值操作步骤
2020/03/30 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
Selenium及python实现滚动操作多种方法
2020/07/21 Python
Viking比利时:购买办公用品
2019/10/30 全球购物
软件生产职位结构化面试主要考察要素及面试题库
2015/06/12 面试题
文职个人求职信范文
2013/09/23 职场文书
农药学硕士毕业生自荐信
2013/09/25 职场文书
培训讲师邀请函
2014/01/10 职场文书
人事文员岗位职责
2014/02/16 职场文书
技术总监管理岗位职责
2014/03/09 职场文书
党员大会主持词
2014/04/02 职场文书
体育系毕业生自荐信
2014/06/28 职场文书
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏