繁体   English   中英

eval_metric_ops在张量板上的家族下显示

[英]eval_metric_ops display under family on tensorboard

使用tensorflow 1.3中的标量摘要,我现在可以定义一个``家庭'',这将有助于在同一张量板选项卡下将相关指标分组。 例如,如果我在下面定义了两个汇总标量:

precision = precision(labels, predictions)
recall = recall(labels, predictions)

然后,可以通过执行以下操作将它们显示在tensorboard的单个选项卡下:

tf.summary.scalar('precision', precision, family = 'precision/recall')
tf.summary.scalar('recall', recall, family = 'precision/recall')

我想使用eval_metric_ops作为评估摘要来重复这种行为,但是我找不到设法做到这一点的方法。 例如,我想要一个在同一标量标签下具有tf.metrics.precision和tf.metrics.recall的标签。 有什么方法可以控制用于eval_metric_ops的选项卡名称吗?

我正在ML引擎实验功能中运行此程序,因此首选可传递给tf.estimator.EstimatorSpec的常规解决方案。

对于固定的估算器,我认为没有任何方法可以控制内置指标的系列。 但是您可以使用tf.train.SummarySaverHooktf.contrib.learn.Experiment添加一个添加附加度量作为eval_hook参数的tf.train.SummarySaverHook ,您将能够控制这些新定义的钩子的族。

使用自定义估算器,除了将钩子添加到返回的EstimatorSpec evaluation_hooks中之外,您将执行其他操作,以便可以正常指定度量标准系列。

如果您正在编写自定义估算器,则可以使用斜杠分隔的前缀作为度量标准键来控制它们在Tensorboard中显示的族。

具体来说,如果您使用键my_family/accuracy发出指标,则如下所示:

def model_fn(features, labels, mode):

  if mode == tf.estimator.ModeKeys.EVAL:

    accuracy = ...
    loss = ...

    return tf.estimator.EstimatorSpec(
        tf.estimator.ModeKeys.EVAL,
        loss=loss,
        eval_metric_ops={'my_family/accuracy': tf.metrics.mean(accuracy)},
    )

  else:
    ...

accuracy指标将作为张量板中my_family系列的一部分出现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM