使用 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")
我有 Tensorboard 数据,希望它下载数据背后的所有 csv 文件,但我找不到官方的任何东西 documentation. From
我们可以手动执行此操作,正如我们在屏幕截图中看到的那样,手动有一个选项。我想知道我们是否可以通过代码做到这一点,还是不可能?因为我有很多数据要处理。
在这个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")