1. 程式人生 > 程式設計 >使用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直接拉取

[email protected]: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教程就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。