首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Tensorflow摘要中获取CSV

从Tensorflow摘要中获取CSV
EN

Stack Overflow用户
提问于 2017-06-04 09:31:34
回答 1查看 1.2K关注 0票数 2

我有一些非常大的tensorflow摘要。如果这些文件是用张卡绘制的,我可以从它们下载CSV文件。

然而,使用拉伸板来绘制这些图需要很长时间。我在医生们中发现,有一种方法可以直接在Python中读取摘要。此方法为summary_iterator,可用于以下几个方面:

代码语言:javascript
复制
import tensorflow as tf

for e in tf.train.summary_iterator(path to events file):
    print(e)

我可以使用这个方法直接创建CSV文件吗?如果是的话,我怎样才能做到呢?这样可以节省很多时间。

EN

回答 1

Stack Overflow用户

发布于 2017-06-04 10:28:26

一种可能的方法是这样做:

代码语言:javascript
复制
from tensorboard.backend.event_processing import event_accumulator      
import numpy as np
import pandas as pd
import sys

def create_csv(inpath, outpath):
    sg = {event_accumulator.COMPRESSED_HISTOGRAMS: 1,
          event_accumulator.IMAGES: 1,
          event_accumulator.AUDIO: 1,
          event_accumulator.SCALARS: 0,
          event_accumulator.HISTOGRAMS: 1}
    ea = event_accumulator.EventAccumulator(inpath, size_guidance=sg)
    ea.Reload()
    scalar_tags = ea.Tags()['scalars']
    df = pd.DataFrame(columns=scalar_tags)
    for tag in scalar_tags:
        events = ea.Scalars(tag)
        scalars = np.array(map(lambda x: x.value, events))
        df.loc[:, tag] = scalars
    df.to_csv(outpath)

if __name__ == '__main__':
    args = sys.argv
    inpath = args[1]
    outpath = args[2]
    create_csv(inpath, outpath)

请注意,这段代码将把整个事件文件加载到内存中,所以最好在集群上运行。有关EventAccumulatorEventAccumulator参数的信息,请参阅这个问题

另外一个改进可能是不仅存储每个标量的value,而且还存储step

注意,TF的最新版本更新了代码片段。用于TF < 1.1的使用以下导入:

代码语言:javascript
复制
from tensorflow.tensorboard.backend.event_processing import event_accumulator as eva
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44352640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档