我尝试生成要在张量板上显示的图像摘要。这在渴望的执行环境中起作用。
现在,我尝试使用eval_metric_ops
返回执行操作的命令以在计算图执行期间计算度量。为此,我依靠tf.py_func
进行指标计算和绘图。该功能签名是
tf.py_func(
func,
inp,
Tout,
stateful=True,
name=None
)
其中Tout
是函数的返回类型。我设法使其适用于简单的指标(浮点值)。据我了解,我需要为摘要定义一个string
返回类型,将在重建我的图像后对其进行解析。
这是阻止点。
我使用以下内容构建摘要:
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序列化为可迭代的字符串/字节/无论可解释为字符串Tensor的方式,之后都可以将其解析回图像Summary。
谢谢。
答案 0 :(得分:1)
对我感到羞耻。
与tensorflow中的许多其他类一样,Summary由协议缓冲区消息定义,因此实现了SerializeToString()
。
因此,仅返回summ.SerializeToString()
即可!