【问题标题】:Understanding tf.metrics and slims streaming metric了解 tf.metrics 和 slims 流指标
【发布时间】:2018-01-23 11:28:39
【问题描述】:

我不确定我是否正确理解 tf.metrics 和 tf.contrib.slim.metrics。

这是程序的一般流程:

# Setup of the neural network...

# Adding some metrics
dict_metrics[name] = compute_metric_and_update_op()

# Getting a list of all metrics and updates
names_to_values, names_to_updates = slim.metrics.aggregate_metric_map(dict_metrics)

# Calling tf.slim evaluate
slim.evaluation.evaluation_loop(eval_op=list(names_to_updates.values()), ...)

假设我想计算准确度。我有两个选择: a) 计算所有批次中所有图像中所有像素的准确度 b) 计算一张图像中所有像素的精度,并取所有批次中所有图像的所有精度的平均值。

对于 a) 版本,我会这样写:

name = "slim/accuracy_metric"
dict_metrics[name] = slim.metrics.streaming_accuracy(
    labels, predictions, weights=weights, name=name)

应该相当于:

name = "accuracy_metric"
accuracy, update_op = tf.metrics.accuracy(
    labels, predictions, weights=weights, name=name)
dict_metrics[name] = (accuracy, update_op)

而且,加上这一行应该是没有意义的,甚至是错误的

dict_metrics["stream/" + name] = slim.metrics.streaming_mean(accuracy)

因为我从 tf.metrics.accuracy 获得的准确度已经通过 update_op 计算了所有批次。对吗?

如果我选择b),我可以达到这样的效果:

accuracy = my_own_compute_accuracy(labels, predictions)
dict_metrics["stream/accuracy_own"] = \
    slim.metrics.streaming_mean(accuracy)

其中 my_own_compute_accuracy() 计算标签和预测张量的符号精度,但不返回任何更新操作。事实上,这个版本是计算单张图片还是单批次的准确率?基本上,如果我将批量大小设置为完整数据集的大小,那么这个指标是否与 slim.metrics.streaming_accuracy 的输出相匹配?

最后,如果我添加两次相同的更新操作,它会被调用两次吗?

谢谢!

【问题讨论】:

    标签: tensorflow tf-slim


    【解决方案1】:

    是的,苗条的流式精度计算整个数据集的每批精度的平均值(如果您只做一个 epoch)。

    对于您的准确性功能,这取决于您如何实现它。

    【讨论】:

    • 如果我让它运行多个 epoch 会发生什么?我需要重置变量吗? tf.slim 会为我解决这个问题吗?准确率的实现很简单:acc = tf.equals(label*weights, prediction)/tf.reduce_sum(weights)
    • 如果您运行多个 epoch,您将获得所有 epoch 的平均值,而不是当前 epoch 的平均值。我认为 slim 不会为您解决这个问题。这些指标旨在用于评估而非训练。
    • 我正在使用 slim.evaluation.evaluate_loop 函数,它会在新检查点可用时立即加载。我猜它也会重置计数器?
    • 是的,它还会重置计数器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 2013-08-26
    • 2012-03-09
    相关资源
    最近更新 更多