1、基本概念
在我们实用TensorFlow高阶API estimator时我们需要对模型当前训练或者预测的效果进行评估,这个时候TensorFlow就给我们了一些常用的计算指标,放在metrics当中,包括accuracy、auc等等,
tf.metrics.accuracy(
labels,
predictions,
weights=None,
metrics_collections=None,
updates_collections=None,
name=None
)
常用的传入参数两个 label和predictions
返回值也有两个:
accuracy:Tensor表示准确性,值total除以count.
update_op:适当增加total和count变量并且其值与accuracy匹配的操作.
有很多人不知道这两个值的区别下面具体讲一讲
2、返回值的理解
这里先一句话总结一下:
accuracy返回的是当前第0到N-1轮这一批数据的准确率
update_op返回的是训练过程第0到N轮数据的总的准确率
a)实现原理
下面讲讲是这个操作是怎么实现的,在源代码accuracy的最后一步,调用了mean方法,mean方法中有两个变量定义
total = metric_variable([], dtypes.float32, name='total')
count = metric_variable([], dtypes.float32, name='count')