使用 python 将张量板(使用 pytorch)数据导出到 csv

Export tensorboard (with pytorch) data into csv with python

我有 Tensorboard 数据,希望它下载数据背后的所有 csv 文件,但我找不到官方的任何东西 documentation. From ,我只找到了这个 7 年前的问题,也是当我使用 PyTorch 时,它是关于 TensorFlow 的。

我们可以手动执行此操作,正如我们在屏幕截图中看到的那样,手动有一个选项。我想知道我们是否可以通过代码做到这一点,还是不可能?因为我有很多数据要处理。

在这个script的帮助下,下面是最短的工作代码,它获取了dataframe中的所有数据,然后你就可以继续玩了。

import traceback
import pandas as pd
from tensorboard.backend.event_processing.event_accumulator import EventAccumulator

# Extraction function
def tflog2pandas(path):
    runlog_data = pd.DataFrame({"metric": [], "value": [], "step": []})
    try:
        event_acc = EventAccumulator(path)
        event_acc.Reload()
        tags = event_acc.Tags()["scalars"]
        for tag in tags:
            event_list = event_acc.Scalars(tag)
            values = list(map(lambda x: x.value, event_list))
            step = list(map(lambda x: x.step, event_list))
            r = {"metric": [tag] * len(step), "value": values, "step": step}
            r = pd.DataFrame(r)
            runlog_data = pd.concat([runlog_data, r])
    # Dirty catch of DataLossError
    except Exception:
        print("Event file possibly corrupt: {}".format(path))
        traceback.print_exc()
    return runlog_data
path="Run1" #folderpath
df=tflog2pandas(path)
#df=df[(df.metric != 'params/lr')&(df.metric != 'params/mm')&(df.metric != 'train/loss')] #delete the mentioned rows
df.to_csv("output.csv")