AGU/get_metrics.py
2020-05-26 22:10:33 +02:00

36 lines
1.2 KiB
Python

import tensorflow as tf
import pandas as pd
from glob import glob, fnmatch
from argparse import ArgumentParser
parser = ArgumentParser(description="Extract metrics from TF logs.")
parser.add_argument('--log', '-d', dest="pattern", default="./eval/event*", help="Glob pattern for TF event logs.")
parser.add_argument('--output', '-o', dest="output", default="./metrics.csv", help="Name of output csv file.")
parser.add_argument('metric', default=['*'], nargs='*', type=str, help="Metrics to extract");
args = parser.parse_args()
def extract_metrics(path):
runlog = pd.DataFrame(columns=['metric', 'value'])
for e in tf.train.summary_iterator(path):
for v in e.summary.value:
if any([fnmatch.fnmatch(v.tag, pattern) for pattern in args.metric]):
runlog = runlog.append({
'metric': v.tag,
'value':v.simple_value
}, ignore_index=True)
return runlog
metrics = pd.DataFrame()
for path in glob(args.pattern):
try:
metrics = metrics.append(extract_metrics(path))
except:
print(f'Event file corrupted: {path}, skipping...')
print(metrics)
metrics.to_csv(args.output)