Open12

TensorBoard Pluginの調査

山田(ymd)山田(ymd)

TensorFlow の可視化ツールの TensorBoard には plugin の仕組みが用意されている。

このスクラップでは、TensorBoardのpluginについてまとめていく

https://github.com/tensorflow/tensorboard/blob/javascript/ADDING_A_PLUGIN.md

山田(ymd)山田(ymd)

作っているもの

まだ、鋭意開発中の段階だけど、強化学習のモデルの評価を可視化したい。
特に、獲得した報酬は複数回の学習結果を統合した分布を確認したい。
(一種の疑似乱数シミュレーションなので、多数回実行して統計的に判断)

https://gitlab.com/ymd_h/rlfw

山田(ymd)山田(ymd)

構造

  • バックエンド: Python
  • フロントエンド: JavaScript (es module)
山田(ymd)山田(ymd)

フロントエンド

フロントエンドの JavaScript は以下のスクショのように呼ばれる。
render() をエクスポートしてやる必要あり。(ファイル名自体は、コンフィグで変更可能)

(おそらく)コンテンツセキュリティポリシー (CSP) の制約がかけてあり、index.js の中からCDNホストのスクリプトを読み込めなかった。
つまり、サードパーティ製のライブラリもバンドル(?)せよということだと理解した。
(本当に字義通り再配布になってしまうので、今まで避けてきたのですが。。。)

山田(ymd)山田(ymd)

バックエンド

  • TBPlugin を継承したクラスを実装
  • 起動時パラメータオプションが必要であれば、TBLoader を継承したクラスを実装
山田(ymd)山田(ymd)

所感

ニーズと技術保有者が一致しないために流行らないと感じる。。。

TensorBoardであれこれしたい人の多くはPythonを使っていて、ES ModuleのWebアプリ(の一部)を作ることに長けていないのではないだろうか?

多くの場合、完全に0からiframeの中をデザインしたいのではなく、グラフの表示を変えたり、前処理を加えたりということだけがしたいのではないかと思うが、自由度と開発量が非常に多い。

山田(ymd)山田(ymd)

つまずいたところ

  • データの読み込みが非同期かつ遅い
    • データが欠損してる?と思ったが読み込みが終わっていなかっただけだった