当前位置: 首页 > 编程笔记 >

使用Bazel编译TensorBoard教程

丁兴德
2023-03-14
本文向大家介绍使用Bazel编译TensorBoard教程,包括了使用Bazel编译TensorBoard教程的使用技巧和注意事项,需要的朋友参考一下

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教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 发布这个问题的人似乎和我一样使用了同样的Bazel交叉构建教程,但他们对根本原因得出了非常不同的结论(即,他们声称这是由于输入错误的include路径导致的用户错误)。在我的例子中,所有路径都是正确的,但它们被nsync的构建忽略/重写。我真的需要一些帮助来弄清楚需要什么更改才能用Linaro工具链正确构建nsync。 下面是一个小脚本,它在我的系统上100%地重现了这个问题: 下面是我运行它时得

  • 我想将ant构建迁移到Bazel4.2.1。ant构建使用Eclipse编译器(ECJ-3.27.0)。 在Bazel中声明Java编译器的方法是。 因此,我查看了的输出,并尝试使用vanilla工具链作为灵感()。 显示整个编译器命令行(加上更多构建步骤): 我不知道有哪个Java编译器接受。是否必须以不同的方式传递?

  • 本文向大家介绍ios端ijkplayer编译教程,包括了ios端ijkplayer编译教程的使用技巧和注意事项,需要的朋友参考一下 第一步:打开IJKMediaPlayer,找到Edit Scheme,在Info选项下的Build Configuration中选择Release后关闭窗口。 第二步:分别在模拟器和真机下编译IJKMediaPlayer,并找到模拟器和真机对应的IJKMediaFra

  • 简介 Xiaomi Cloud-ML支持TensorboardService功能,可以使用API创建TensorBoard服务,方便用户使用。 使用TensorBoard服务 使用TensorboardService的流程如下,首先初始化Xiaomi Cloud-ML客户端环境。 cloudml init 然后即可创建TensorBoard服务。 cloudml tensorboard crea

  • 本文向大家介绍RHEL6.5编译安装MySQL5.6.26教程,包括了RHEL6.5编译安装MySQL5.6.26教程的使用技巧和注意事项,需要的朋友参考一下 一、准备编译环境,安装所需依赖包 yum groupinstall 'Development' -y yum install openssl openssl-devel zlib zlib-devel -y yum install read

  • 问题内容: 我已经使用构建了一个简单的可执行程序。 我已经将代码编译成静态二进制程序。 我想反编译输出二进制文件并获取Go源代码。 这有可能吗? 问题答案: 没有工具可以执行此操作,并且由于Go程序已编译为机器代码,因此它们所包含的信息不足,无法将其转换回Go代码。但是,仍然可以使用标准拆卸​​技术。