Rav*_*Ziv 8 tensorflow tensorboard
有没有办法在tensorflow上显示多个不同运行的平均值?我只能在同一个图表上看到它们(通过发送不同运行的路径),但我想在图表上看到它们的平均值
正如@dga 提到的,这还没有实现。这是一些EventAccumulator
用于组合标量 tensorflow 摘要值的代码。这可以扩展以适应其他汇总类型。
import os
from collections import defaultdict
import numpy as np
import tensorflow as tf
from tensorboard.backend.event_processing.event_accumulator import EventAccumulator
def tabulate_events(dpath):
summary_iterators = [EventAccumulator(os.path.join(dpath, dname)).Reload() for dname in os.listdir(dpath)]
tags = summary_iterators[0].Tags()['scalars']
for it in summary_iterators:
assert it.Tags()['scalars'] == tags
out = defaultdict(list)
for tag in tags:
for events in zip(*[acc.Scalars(tag) for acc in summary_iterators]):
assert len(set(e.step for e in events)) == 1
out[tag].append([e.value for e in events])
return out
def write_combined_events(dpath, d_combined, dname='combined'):
fpath = os.path.join(dpath, dname)
writer = tf.summary.FileWriter(fpath)
tags, values = zip(*d_combined.items())
timestep_mean = np.array(values).mean(axis=-1)
for tag, means in zip(tags, timestep_mean):
for i, mean in enumerate(means):
summary = tf.Summary(value=[tf.Summary.Value(tag=tag, simple_value=mean)])
writer.add_summary(summary, global_step=i)
writer.flush()
dpath = '/path/to/root/directory'
d = tabulate_events(dpath)
write_combined_events(dpath, d)
Run Code Online (Sandbox Code Playgroud)
此解决方案假定目录结构如下:
dpath
??? 1
? ??? events.out.tfevents.1518552132.Alexs-MacBook-Pro-2.local
??? 11
? ??? events.out.tfevents.1518552180.Alexs-MacBook-Pro-2.local
??? 21
? ??? events.out.tfevents.1518552224.Alexs-MacBook-Pro-2.local
??? 31
? ??? events.out.tfevents.1518552264.Alexs-MacBook-Pro-2.local
??? 41
??? events.out.tfevents.1518552304.Alexs-MacBook-Pro-2.local
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1438 次 |
最近记录: |