tf.summary.image似乎不适用于估算器预测

时间:2018-09-13 03:55:34

标签: python tensorflow tensorflow-estimator

我想在预测时使用tf.estimator可视化我的输入图像,但是tf.summary.image似乎不保存图像。但是它可以用于训练。

这是我在model_fn中的代码:

...
summary_hook = tf.train.SummarySaverHook(
        save_secs=2,
        output_dir='summary',
        scaffold=tf.train.Scaffold(summary_op=tf.summary.merge_all()))
        #summary_op=tf.summary.merge_all())
tf.summary.histogram("logit",logits)
tf.summary.image('feat', feat)
if mode == tf.estimator.ModeKeys.PREDICT:
    return tf.estimator.EstimatorSpec(mode, predictions=preds, prediction_hooks=[summary_hook])
...

这是我的预测代码:

config = tf.estimator.RunConfig(save_summary_steps=0)
estimator = tf.estimator.Estimator(model_fn=model_fn, model_dir='logs', config=config)
preds = estimator.predict(input_fn=eval_input_fn)

使用tf.train.SummarySaverHook有什么问题吗?

1 个答案:

答案 0 :(得分:2)

我认为您需要在调用merge_all之前将摘要操作(直方图/图像)放置在之前,以便merge_all实际上有一些要合并的东西。

...
tf.summary.histogram("logit",logits)
tf.summary.image('feat', feat)
summary_hook = tf.train.SummarySaverHook(
    save_secs=2,
    output_dir='summary',
    scaffold=tf.train.Scaffold(summary_op=tf.summary.merge_all()))
    #summary_op=tf.summary.merge_all())
if mode == tf.estimator.ModeKeys.PREDICT:
    return tf.estimator.EstimatorSpec(mode, predictions=preds, prediction_hooks=[summary_hook])
...