如何显示上tensorboard多次运行的平均

问题描述 投票:6回答:3

是否有显示多个不同的运行对tensorflow平均的方法吗?我只能看到他们在同一个图形(通过发送不同运行的路径),但我希望看到在图上的平均

tensorflow tensorboard
3个回答
3
投票

请按照issue 376看到这种进步。这是在上个月取得了一些进展的积极功能请求,但截至目前,有没有办法做你想做的。然而。


3
投票

作为@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)

该解决方案假设如下所示的目录结构:

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

2
投票

由于还没有建立在功能上做到这一点我发布了一个工具:

https://github.com/Spenhouet/tensorboard-aggregator

这个工具可以通过他们的最大值,最小值聚合多个tensorboard运行,均值,中值和标准差。聚集体要么保存在新tensorboard摘要或.csv文件。

© www.soinside.com 2019 - 2024. All rights reserved.