Tensorboard:访问 event_accumulator 标签中的张量对象

问题描述 投票:0回答:4

我正在尝试访问存储在 Tensorboard 文件中的一些数据。我不想在浏览器中使用 Tensorboard GUI 打开它,而是直接在 python 脚本中打开它,以便能够进行进一步的计算。

我当前的代码:

file = # here, filename is provided
ea = event_accumulator.EventAccumulator(event_file[0])
ea.Reload()
print(ea.Tags())

现在,我的标签(ea.Tags())是……。像这样:

{'histograms': [], 'scalars': [], 'tensors': ['observable1', 'observable2' ], ...}

首先有趣的是,我的可观测数据不是保存在“标量”中,而是保存在“张量”中。我现在如何访问这些可观察量? 我希望这两个可观察量中的每一个都给出一个数组/值列表(这就是我感兴趣的),并且可能还有一些与张量相关的数据,例如形状、数据类型等。

我已经尝试使用访问张量

x=ea.Tensors("observable1")
print(x[0])

或类似的,但我被困在那里,因为输出是某物。像这样:

TensorEvent(wall_time=1234567890.987654, step=123, tensor_proto=dtype: DT_FLOAT
tensor_shape {
}
tensor_content: "\123Y\123@"
)

x 的固定长度似乎是 10,这在某种程度上出乎我的意料。有人有主意吗?我在互联网上找到的所有解释都只涉及 Tensorboard 文件中的标量

python tensorflow tensorboard
4个回答
1
投票

前提是之前已经这样写过

from torch.utils.tensorboard import SummaryWriter
tensorboard_writer=SummaryWriter(log_dir=logpath)
tensorboard_writer.add_scalar("loss_val", loss, parameter)

此示例将提取分数:

from tensorboard.backend.event_processing.event_accumulator import EventAccumulator
    
event_acc = EventAccumulator(logpath, size_guidance={"scalars": 0})
event_acc.Reload()

for scalar in event_acc.Tags()["scalars"]:
    w_times, step_nums, vals = zip(*event_acc.Scalars(scalar))

也许写入标量没有成功?


0
投票

这篇文章相当老了,但发布在这里以供将来参考。

例如,要访问

tensor_content
中的
observable1
,请执行

x = ea.Tensors("observable1")[0].tensor_proto.tensor_content[0]

x
将包含您想要的二进制形式的值。


0
投票

根据这个答案,我改变了

ea = event_accumulator.EventAccumulator(event_file[0])

ea = event_accumulator.EventAccumulator(
    event_file[0],
    size_guidance={event_accumulator.TENSORS: 0})
)

我能够获取所有(超过 10 个)记录值。


0
投票

鉴于您的

TensorEvent
dtype=DT_FLOAT
,您可以解析
tensor_proto
中的
tensor_content
二进制数据,如下所示:

from tensorboard.backend.event_processing import event_accumulator
import struct

ea = event_accumulator.EventAccumulator("your_event_file_path")
events = ea.Tensors("observable1")
event_proto = events[0].tensor_proto
value = struct.unpack('f', event_proto.tensor_content)[0]

在您的情况下,内容应解析为

3.3023269176483154

© www.soinside.com 2019 - 2024. All rights reserved.