Tensorboard 通过脚本提取标量
Tensorboard extract scalar by a script
我想通过脚本提取我的标量,因为我有很多测试运行。
基于此我可以得到一个板的所有tf摘要。我什至可以将损失的标签分开:
<class 'tensorflow.core.framework.summary_pb2.Value'>
tag: "training_loss"
simple_value: 0.0590251199901104
但似乎每个损失值都保存为summary_pb2.Value
。我可以提取每个损失单值,但我没有找到有关这些单值的步数或时间的信息,因此我可以对它们进行排序(它们也有相同的标签)。不幸的是,这没有很好的记录,有人知道我如何获得这些信息吗?
我会使用 EventAccumulator
:
您可以将模型目录传递给 _load_run()
函数。
from tensorboard.backend.event_processing import event_accumulator
import numpy as np
def _load_run(path):
event_acc = event_accumulator.EventAccumulator(path)
event_acc.Reload()
data = {}
for tag in sorted(event_acc.Tags()["scalars"]):
x, y = [], []
for scalar_event in event_acc.Scalars(tag):
x.append(scalar_event.step)
y.append(scalar_event.value)
data[tag] = (np.asarray(x), np.asarray(y))
return data
print(_load_run("/models/vae/run_1"))
希望对您有所帮助!
我想通过脚本提取我的标量,因为我有很多测试运行。
基于此
<class 'tensorflow.core.framework.summary_pb2.Value'>
tag: "training_loss"
simple_value: 0.0590251199901104
但似乎每个损失值都保存为summary_pb2.Value
。我可以提取每个损失单值,但我没有找到有关这些单值的步数或时间的信息,因此我可以对它们进行排序(它们也有相同的标签)。不幸的是,这没有很好的记录,有人知道我如何获得这些信息吗?
我会使用 EventAccumulator
:
您可以将模型目录传递给 _load_run()
函数。
from tensorboard.backend.event_processing import event_accumulator
import numpy as np
def _load_run(path):
event_acc = event_accumulator.EventAccumulator(path)
event_acc.Reload()
data = {}
for tag in sorted(event_acc.Tags()["scalars"]):
x, y = [], []
for scalar_event in event_acc.Scalars(tag):
x.append(scalar_event.step)
y.append(scalar_event.value)
data[tag] = (np.asarray(x), np.asarray(y))
return data
print(_load_run("/models/vae/run_1"))
希望对您有所帮助!