TensorFlow函數(shù):tf.metrics.precision_at_k

2018-10-12 16:04 更新

tf.metrics.precision_at_k函數(shù)

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

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

計(jì)算與稀疏labels相關(guān)的predictions精度@ k.

如果指定了class_id,我們通過僅考慮class_id在top-k的最高predictions中的批次的條目來計(jì)算精度,并計(jì)算它們當(dāng)中class_id確實(shí)是正確標(biāo)簽的分?jǐn)?shù).如果class_id未指定,我們將計(jì)算精度,因?yàn)樵谂幚項(xiàng)l目預(yù)測(cè)值最高的前k類中,平均一個(gè)類是正確的,并且可以在該條目的標(biāo)簽中找到.

precision_at_k創(chuàng)建兩個(gè)局部變量,true_positive_at_<k>和false_positive_at_<k>,它們被用于計(jì)算精度@K個(gè)頻率.此頻率最終返回為precision_at_<k>:這是一個(gè)冪等操作,簡(jiǎn)單地將true_positive_at_<k>除以總的(true_positive_at_<k>+ false_positive_at_<k>).

為了估計(jì)數(shù)據(jù)流上的度量,該函數(shù)創(chuàng)建一個(gè)update_op操作來更新這些變量并返回precision_at_<k>.在內(nèi)部,top_k操作計(jì)算Tensor,指示頂部k predictions.設(shè)置應(yīng)用于top_k和labels,通過weights計(jì)算加權(quán)的true positives和false positives.然后update_op使用得到的值遞增true_positive_at_<k>和false_positive_at_<k>.

如果weights是None,則權(quán)重默認(rèn)為1,使用權(quán)重0來屏蔽值.

參數(shù):

  • labels:具有形狀[D1,... DN,num_labels]或[D1,... DN]的int64 Tensor或SparseTensor,其中后者暗示num_labels = 1;N> = 1,并且num_labels是關(guān)聯(lián)預(yù)測(cè)的目標(biāo)類的數(shù)量;通常,N = 1并且labels具有形狀[batch_size,num_labels];[D1,... DN]必須匹配predictions.值應(yīng)在[0,num_classes]范圍內(nèi),其中num_classes是predictions的最后一個(gè)維度;超出此范圍的值將被忽略.
  • predictions:具有形狀[D1,... DN,num_classes]的浮點(diǎn)Tensor,其中N> = 1;通常,N = 1并且predictions具有形狀[batch size, num_classes].最終維度包含每個(gè)類的logit值.[D1,... DN]必須匹配labels.
  • k:整數(shù),k表示@k metric.
  • class_id:我們想要二進(jìn)制度量的整數(shù)類ID.這應(yīng)該在[0,num_classes]范圍內(nèi),其中num_classes是predictions的最后一個(gè)維度.如果class_id超出此范圍,則該方法返回NAN.
  • weights:Tensor,其秩為0或n-1,其中n是labels的秩.如果是后者,則必須是可廣播的labels(即,所有維度必須為1或者與相應(yīng)的labels維度相同).
  • metrics_collections:應(yīng)添加值的集合的可選列表.
  • updates_collections:應(yīng)添加更新的集合的可選列表.
  • name:新更新操作的名稱,以及其他從屬操作的命名空間.

返回:

  • precision:標(biāo)量float64 Tensor,值為true_positives除以true_positives和false_positives的值.
  • update_op:適當(dāng)增加true_positives和false_positives變量的操作,其值與precision匹配.

可能引發(fā)的異常:

  • ValueError:如果weights不是None,并且它的形狀與predictions不匹配,或者如果metrics_collections或updates_collections中任意一個(gè)不是一個(gè)列表或元組.
  • RuntimeError:如果啟用了急切執(zhí)行.
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)