从tensorboard事件文件中删除数据以使其更小

Con*_*tor 7 tensorflow tensorboard

当我激活图像摘要训练模型多天时,我的.tfevent文件很大(> 70GiB).

我不想停用图像摘要,因为它允许我在训练期间可视化网络的进度.然而,一旦网络被训练,我不再需要这些信息(事实上,我甚至不确定是否可以使用张量板可视化以前的图像).

我希望能够从事件文件中删除它们,而不会丢失其他信息,如损失曲线(因为将模型比较在一起很有用).

解决方案是使用两个单独的摘要(一个用于图像,一个用于丢失),但我想知道是否有更好的方法.

ser*_*jon 8

像 Terry 建议的那样,少保存大摘要肯定会更好,但如果您已经有一个很大的事件文件,您仍然可以通过删除一些摘要来减小其大小。

我遇到了这个问题,我保存了很多图像摘要,现在不需要了,所以我写了一个脚本来复制事件文件,同时只留下标量摘要: https://gist.github。 com/serycjon/c9ad58ecc3176d87c49b69b598f4d6c6

重要的是:

for event in tf.train.summary_iterator(event_file_path):
    event_type = event.WhichOneof('what')
    if event_type != 'summary':
        writer.add_event(event)
    else:
        wall_time = event.wall_time
        step = event.step

        # possible types: simple_value, image, histo, audio
        filtered_values = [value for value in event.summary.value if value.HasField('simple_value')]
        summary = tf.Summary(value=filtered_values)

        filtered_event = tf.summary.Event(summary=summary,
                                          wall_time=wall_time,
                                          step=step)
        writer.add_event(filtered_event)
Run Code Online (Sandbox Code Playgroud)

您可以将其用作更复杂内容的基础,例如仅保留每 100 个图像摘要、基于摘要标签进行过滤等。


小智 0

刚刚解决了这个问题,希望还不算太晚。

我的解决方案是每100(或其他值)训练步骤保存一次图像摘要,那么文件.tfevent大小的增长速度就会减慢,最终文件大小会小得多。