TensorFlow:是否有计算和更新前k精度的指标?

kwo*_*sin 5 metrics machine-learning deep-learning tensorflow

电流tf.contrib.metrics.streaming_accuracy只能计算前1个精度,而不是前k个.作为一种解决方法,这就是我一直在使用的:

tf.reduce_mean(tf.cast(tf.nn.in_top_k(predictions=predictions, targets=labels, k=5), tf.float32))
Run Code Online (Sandbox Code Playgroud)

但是,这并没有给我一种方法来计算每批次平均的流精度,这对于获得稳定的评估准确性非常有用.我目前通过使用其numpy输出手动计算此流式前5精度,但这意味着我将无法在张量板上显示此度量标准.

有没有办法通过创建一个precision_update函数来实现更简单的实现,或者是否有现有的函数已经执行此操作?

谢谢.

P-G*_*-Gn 9

你可以用tf.contrib.metrics.streaming_accuracy最低级别tf.metrics.mean的方式替换你的使用streaming_accuracy- 你会在各自的文档中找到相似之处.

例如(未经测试)

tf.metrics.mean(tf.nn.in_top_k(predictions=predictions, targets=labels, k=5))
Run Code Online (Sandbox Code Playgroud)