python - 如何正确使用 tf.data.TFRecordDataset 从 tf.summary 解析数据?
问题描述
连续多天,我试图解析 TensorBoard 日志以用于我自己的目的。我通过创建作家来创造这些
w = tf.summary.create_file_writer(...)
然后使用记录数据
with w.as_default():
tf.summary.foo(...)
这会产生一个events.out.tfevents
我想在 Python 中解析的文件。我已经在某种程度上实现了这一点,尽管使用summary_iterator
from以一种非常老套的方式tensorflow.python.summary
,但根据TF 2.5.0
,这已被弃用,这样做的预期方式显然是:
tf_record_iterator (from tensorflow.python.lib.io.tf_record) is deprecated and will be removed in a future version.
Instructions for updating:
Use eager execution and:
`tf.data.TFRecordDataset(path)`
所以我开始寻求使用 处理事件文件tf.data.TFRecordDataset
,但我被卡住了。我尝试了多种解码功能,例如
def decode_fn(record_bytes):
return tf.io.parse_raw(record_bytes)
def decode_fn(record_bytes):
return tf.io.parse_tensor(record_bytes)
...
但它们都需要另一个参数,即结果dtype
,这是我无法事先指定的(日志包含多个dtypes
,str
并且float
是最常见的。
有没有人解决过这个问题?我很高兴看到解决方案。Tensorboard 团队使用 API 提供对这些日志的解码,但您必须将日志上传到他们的云中,这是一个可怕的、令人作呕的解决方案。
解决方案
推荐阅读
- python - 为什么 pandas Dataframe 允许将字符串列与时间戳列进行比较?什么是逻辑
- android - 我应该使用什么版本的 firebase 和 google maps?
- python - 在 `str.format()` 中使用多个 if 条件
- batch-file - 将批处理脚本输出写入隐藏文件夹?
- macos - 在 Macos 中监视调用 dylib 的参数
- django - 如何通过单击按钮打开模板
- php - 如何从数组中获取值?
- python - python3 将颜色代码转换为不同的类型,而我不想这样做
- typescript - 使用 nest.js 运行 docker 命令
- php - 使用队列将数据插入表中