Python
TensorFlow

tensorflowのscalar_summaryのログを展開する

More than 1 year has passed since last update.

Tensorflow.SummaryWriterで書き出されるログファイルはtensorboardで開くことで中身を確認できる.しかし自分のプログラム内で自由に使いたい場合はログファイルを自前で扱えるような形で展開する必要がある.tensorboardではtensorflow.python.summary.event_accumulator.EventAccumulatorという関数を使っているようなので,これを流用すれば比較的簡単に取り出すことが可能.

parse_scalar.py
from tensorflow.python.summary.event_accumulator import EventAccumulator
import numpy as np

def scalar2arrays(scalarEvents):
    """
    converts scalarEvent to set of numpy.array
    """
    wall_times = []
    steps = []
    values = []

    for event in scalarEvents:
        wall_times.append(event.wall_time)
        steps.append(event.step)
        values.append(event.value)

    return np.array(wall_times), np.array(steps), np.array(values)

accumulator = EventAccumulator('filename-of-event-file')
accumulator.Reload() # load event files

wall_times, steps, values = scalar2arrays(accumulator.Scalars('name-of-summary'))

lossをmatplotlibでプロットし直すことができるようなった.