将“tf.Summary”对象序列化为“string”张量
Serializing a `tf.Summary` object to `string` Tensor
我尝试生成要在 tensorboard 中显示的图像摘要。这在急切的执行环境中有效。
现在,我尝试使用 eval_metric_ops
返回操作字典来计算计算图执行期间的指标。为此,我依靠 tf.py_func
来进行指标计算和绘图。这个函数签名是
tf.py_func(
func,
inp,
Tout,
stateful=True,
name=None
)
其中 Tout
是函数的返回类型。我设法让它适用于简单的指标(浮点值)。据我所知,我需要为我的摘要定义一个 string
返回类型,它将在 rebuild 我的图像之后被解析。
这里是阻塞点
我用以下方法构建我的摘要:
summ = tf.Summary(value=[
tf.Summary.Value(
tag=metric_name,
image=tf.Summary.Image(
encoded_image_string=encode_image_array_as_png_str(
self._last_metrics[metric_name])))])
按原样返回,我得到:W tensorflow/core/framework/op_kernel.cc:1306] Unimplemented: Unsupported object type Summary
返回 str(summ)
得到:WARNING:tensorflow:Skipping summary for ..., cannot parse string to Summary
.
我还尝试用以下方法构建它:
tf.summary.image(
name,
tensor,
max_outputs=3,
collections=None,
family=None
)
但这给出了:W tensorflow/core/framework/op_kernel.cc:1306] Unimplemented: Unsupported object type Tensor
你知道如何将 Summary 序列化为 string/bytes iterable/whatever 可以解释为字符串 Tensor,之后可以将其解析回图像 Summary。
谢谢。
真丢人。
与 tensorflow 中的许多其他 类 一样,Summary 由 Protocol Buffer 消息定义,因此实现 SerializeToString()
。
因此,只需返回 summ.SerializeToString()
即可!
我尝试生成要在 tensorboard 中显示的图像摘要。这在急切的执行环境中有效。
现在,我尝试使用 eval_metric_ops
返回操作字典来计算计算图执行期间的指标。为此,我依靠 tf.py_func
来进行指标计算和绘图。这个函数签名是
tf.py_func(
func,
inp,
Tout,
stateful=True,
name=None
)
其中 Tout
是函数的返回类型。我设法让它适用于简单的指标(浮点值)。据我所知,我需要为我的摘要定义一个 string
返回类型,它将在 rebuild 我的图像之后被解析。
这里是阻塞点
我用以下方法构建我的摘要:
summ = tf.Summary(value=[
tf.Summary.Value(
tag=metric_name,
image=tf.Summary.Image(
encoded_image_string=encode_image_array_as_png_str(
self._last_metrics[metric_name])))])
按原样返回,我得到:W tensorflow/core/framework/op_kernel.cc:1306] Unimplemented: Unsupported object type Summary
返回 str(summ)
得到:WARNING:tensorflow:Skipping summary for ..., cannot parse string to Summary
.
我还尝试用以下方法构建它:
tf.summary.image(
name,
tensor,
max_outputs=3,
collections=None,
family=None
)
但这给出了:W tensorflow/core/framework/op_kernel.cc:1306] Unimplemented: Unsupported object type Tensor
你知道如何将 Summary 序列化为 string/bytes iterable/whatever 可以解释为字符串 Tensor,之后可以将其解析回图像 Summary。
谢谢。
真丢人。
与 tensorflow 中的许多其他 类 一样,Summary 由 Protocol Buffer 消息定义,因此实现 SerializeToString()
。
因此,只需返回 summ.SerializeToString()
即可!