最近何かとお世話になっているTensorboardですが、こちらはGoogleからオープンソースで提供されているので、内容を自由に改変していくことができます。
※ライセンスはApache 2.0です
ということで、何を血迷ったか、Tensorboard自体の実装を弄ってみたいと思います。
機械学習とは直接関係無いですので、その点ご了承下さい。
Tensorboard実装雑感
中を見てる感じ、フロントエンドはTypeScript ( .ts ファイル)で書かれているようですね。
なるほど、TypeScript全くわからん。
このへんで、すでに企画倒れの匂いがプンプンしてきましたが、ここは頑張ってやってみることにしましょう。
どうやら複雑な処理系はPythonで書いてあるようで、可視化の部分はTypeScriptの模様。 ビルドにはGoogleお手製のbazelが使われていて、bazelのコマンドを叩くとすぐビルドできるようになっています。
とりあえずビルド
何はともあれビルドしてみたいと思います。
ビルドの手順自体はご丁寧に記載されているので、こちらを参考に進めます。
https://github.com/tensorflow/tensorboard/blob/master/DEVELOPMENT.md
まず仮想環境の準備です。
$ virtualenv tf $ source tf/bin/activate (tf)$ pip install --upgrade pip (tf)$ pip install tf-nightly
ビルドはこれだけ。これはちょっと時間かかります。
(tf)$ bazel build tensorboard
Embedding Projectorを起動させてみます。
この辺を見る感じ、Embedding ProjectorはTensorflow自体とは切り離して起動できるようです。
起動させるとこんな感じでした。
bazel run tensorboard/plugins/projector/vz_projector:devserver
そんでもってアクセスしてみます。
http://localhost:6006/index.html
いつもとは違いますね。 TensorBoard組み込みではなく公開されている方のEmbedding Projectorなんですね。
なんとなく書き換え
そこにhtmlのコードがあるんだから、適当にいじればいい感じに改編できるのでは?
とか思ったのでやってみます。 そんなに大々的に改変するとバグるので、簡単目にいじろうかと。
とりあえず、初回アクセス時に画面右側の検索窓に初期値を入れてみたいと思います。 なんとなく試行錯誤すること丸3日。←
起動すると"airport"で自動検索されるようになりましたとさ。
感想
TypeScriptっていうか、JavaScriptむっっっっっっず!! 自分はフロントエンドエンジニアは、しばらくなれそうにないっす。。。
何はともあれ、自分専用TensorBoardに書き換えられることはわかったので、めでたしめでたし。
TypeScriptを使えればもうちょっといろいろ拡張できそうですが、機械学習関係では無いのでこのへんで退散!