😃

論文用にtensoraboradのlogをpandasのデータフレームに変換するライブラリ

2021/08/22に公開

論文を書くとき提案手法のhyper parameterの依存性を調べるためにhyparparamterとmetricの図を書くことがよくある
実験のlogはtensorbaord logに出力しているので、tensorboard logを集めていい感じにpandasのdata frameにしてくれると便利そう。

作ったもの

https://github.com/MasanoriYamada/tensorboardpy

使い方

以下のようにtensor boardのlogがある場合

runs
├── 0
│   └── events.out.tfevents.xxx.0
├── 1
│   └── events.out.tfevents..xxx.1
├── 2
│   └── events.out.tfevents.xxx.2
├── 3
│   └── events.out.tfevents.xxx.3
└── 4
    └── events.out.tfevents.xxx.4

dirを指定すると再帰的にevent fileを探して1つのdata frameにまとめます
読み込むのは add_scalarとhparamsの情報です。

from tensorboardpy import logdir
df = logdir('path/tensorboard_logdir')

読み込んだlogが以下のような場合
image.png

image.png

以下のようなdataframeが生成されます。
image.png

便利関数

このままでは、hyparparamterの組み合わせに対して、epoch(step)が複数存在するので、metricに対してmaxやminなどのルールに従いdataframeを整形します。
例えば、各hyperparametrのセットに対してtrain/accがmaxのstepだけ抜き出してくるなど

image.png

Discussion