論文を書くとき提案手法のhyper parameterの依存性を調べるためにhyparparamterとmetricの図を書くことがよくある
実験のlogはtensorbaord logに出力しているので、tensorboard logを集めていい感じにpandasのdata frameにしてくれると便利そう。
作ったもの
使い方
以下のように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')
便利関数
このままでは、hyparparamterの組み合わせに対して、epoch(step)が複数存在するので、metricに対してmaxやminなどのルールに従いdataframeを整形します。
例えば、各hyperparametrのセットに対してtrain/accがmaxのstepだけ抜き出してくるなど