TensorFlow:打开SummaryWriter编写的日志数据

Vee*_*ech 11 tensorflow tensorboard

在关于摘要和TensorBoard的本教程之后,我已经能够使用TensorBoard成功保存和查看数据.是否可以用TensorBoard之外的其他东西打开这些数据?

顺便说一句,我的申请是做政策外学习.我目前正在使用SummaryWriter保存每个状态 - 动作 - 奖励元组.我知道我可以手动存储/训练这些数据,但我认为使用TensorFlow的内置日志记录功能来存储/加载这些数据会很不错.

小智 23

截至2017年3月,该EventAccumulator工具已被移动从Tensorflow核心到Tensorboard后端.您仍然可以使用它从Tensorboard日志文件中提取数据,如下所示:

from tensorboard.backend.event_processing.event_accumulator import EventAccumulator
event_acc = EventAccumulator('/path/to/summary/folder')
event_acc.Reload()
# Show all tags in the log file
print(event_acc.Tags())

# E. g. get wall clock, number of steps and value for a scalar 'Accuracy'
w_times, step_nums, vals = zip(*event_acc.Scalars('Accuracy'))
Run Code Online (Sandbox Code Playgroud)

  • 请注意,默认情况下 `EventAccumulator` 仅从文件加载最多 10000 个数据点,因此除非您设置 `size_guidance`,否则您将无法以这种方式获取所有数据点。请参阅代码:https://github.com/tensorflow/tensorboard/blob/master/tensorboard/backend/event_processing/event_accumulator.py#L186 (3认同)

nom*_*nom 8

很简单,数据实际上可以导出到.csvTensorBoard 中 Events 选项卡下的文件中,例如可以加载到 Python 中的 Pandas 数据帧中。确保选中数据下载链接框。

如需更自动化的方法,请查看 TensorBoard自述文件

如果您想导出数据以在其他地方进行可视化(例如 iPython Notebook),那也是可能的。您可以直接依赖 TensorBoard 用于加载数据的底层类:(用于 python/summary/event_accumulator.py从单次运行python/summary/event_multiplexer.py加载数据)或(用于从多次运行加载数据,并保持其有条理)。这些类加载事件文件组,丢弃由 TensorFlow 崩溃“孤立”的数据,并按标签组织数据。

作为另一种选择,有一个脚本 ( tensorboard/scripts/serialize_tensorboard.py) 将像 TensorBoard 一样加载 logdir,但将所有数据作为 json 写入磁盘而不是启动服务器。这个脚本被设置为制作“假 TensorBoard 后端”以进行测试,所以它的边缘有点粗糙。

  • 在 Tensorflow 1.1 版本中,这些文件(event_accumulator.py/event_multiplexer.py)不存在,它们已经被重构。 (2认同)

Yar*_*tov 5

我认为数据是编码的protobufs RecordReader格式.要从文件中获取序列化字符串,您可以使用py_record_reader或使用TFRecordReader op 构建图形,并将这些字符串反序列化为protobuf使用事件模式.如果你得到一个有效的例子,请更新这个q,因为我们似乎缺少这方面的文档.