阅读(7.4k) 书签 (0)

TensorFlow函数:tf.metrics.average_precision_at_k

2018-09-17 13:53 更新

tf.metrics.average_precision_at_k函数

tf.metrics.average_precision_at_k(
    labels,
    predictions,
    k,
    weights=None,
    metrics_collections=None,
    updates_collections=None,
    name=None
)

定义在:tensorflow/python/ops/metrics_impl.py.

计算与稀疏labels相关的predictions的平均精度@k.

average_precision_at_k创建两个局部变量,average_precision_at_<k>/total和average_precision_at_<k>/max,被用来计算频率.这个频率被最终返回为average_precision_at_<k>:一个幂等操作,简单地将average_precision_at_<k>/total除以average_precision_at_<k>/max.

为了估计数据流上的度量,该函数创建一个update_op操作来更新这些变量并返回precision_at_<k>.在内部,top_k操作计算Tensor,指示最高k predictions.设置应用于top_k和labels的操作来计算按weights加权的true positives和false positives的weights.然后update_op使用这些值递增true_positive_at_<k>和false_positive_at_<k>.

如果weights是None,则权重默认为1,使用权重0来屏蔽值.

参数:

  • labels:int64 Tensor或SparseTensor,具有形状[D1,... DN,num_labels]或[D1,... DN],其中后者暗示num_labels = 1.N> = 1和num_labels是关联预测的目标类的数量.通常,N = 1和labels具有形状[batch_size,num_labels].[D1,... DN]必须匹配predictions.值应在[0,num_classes]范围内,其中num_classes是predictions的最后一个维度.超出此范围的值将被忽略.
  • predictions:浮动Tensor具有形状[D1,... DN,num_classes],其中N> = 1.通常,N = 1并且predictions具有形状[batch size, num_classes].最终维度包含每个类的logit值.[D1,... DN]必须匹配labels.
  • k:整数,k代表@k metric.这将计算范围[1,k]的平均精度,如上所述.
  • weights:Tensor,秩为0或n-1,其中n是labels的秩.如果是后者,则必须是可广播的labels(即,所有维度必须是1或与相应的labels维度相同).
  • metrics_collections:应添加值的可选集合列表.
  • updates_collections:应添加更新的可选集合列表.
  • name:新更新操作的名称,以及其他从属操作的命名空间.

返回:

  • mean_average_precision:具有平均精度值的标量float64张量.
  • update:适当增加变量的操作,其值与metric匹配.

可能引发的异常:

  • ValueError:如果k无效.
  • RuntimeError:如果启用了急切执行.