Open12
TensorBoard Pluginの調査
作っているもの
まだ、鋭意開発中の段階だけど、強化学習のモデルの評価を可視化したい。
特に、獲得した報酬は複数回の学習結果を統合した分布を確認したい。
(一種の疑似乱数シミュレーションなので、多数回実行して統計的に判断)
構造
- バックエンド: Python
- フロントエンド: JavaScript (es module)
フロントエンド
フロントエンドの JavaScript は以下のスクショのように呼ばれる。
render()
をエクスポートしてやる必要あり。(ファイル名自体は、コンフィグで変更可能)
(おそらく)コンテンツセキュリティポリシー (CSP) の制約がかけてあり、index.js の中からCDNホストのスクリプトを読み込めなかった。
つまり、サードパーティ製のライブラリもバンドル(?)せよということだと理解した。
(本当に字義通り再配布になってしまうので、今まで避けてきたのですが。。。)
バックエンド
-
TBPlugin
を継承したクラスを実装 - 起動時パラメータオプションが必要であれば、
TBLoader
を継承したクラスを実装
エントリーポイント
setup.py のエントリーポイントの仕組みを使うことで、TensorBoardは動的にプラグインを発見する
TensorBoard plugin の告知 (2017年)
公開されているplugin
Googler製の What-If-Tool
NVIDIA製の深層学習のプロファイリング
所感
ニーズと技術保有者が一致しないために流行らないと感じる。。。
TensorBoardであれこれしたい人の多くはPythonを使っていて、ES ModuleのWebアプリ(の一部)を作ることに長けていないのではないだろうか?
多くの場合、完全に0からiframeの中をデザインしたいのではなく、グラフの表示を変えたり、前処理を加えたりということだけがしたいのではないかと思うが、自由度と開発量が非常に多い。
つまずいたところ
- データの読み込みが非同期かつ遅い
- データが欠損してる?と思ったが読み込みが終わっていなかっただけだった