當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python tf.keras.metrics.Precision用法及代碼示例


計算關於標簽的預測精度。

繼承自:MetricLayerModule

用法

tf.keras.metrics.Precision(
    thresholds=None, top_k=None, class_id=None, name=None, dtype=None
)

參數

  • thresholds (可選)[0, 1] 中的浮點值或浮點閾值的 python 列表/元組。將閾值與預測值進行比較以確定預測的真值(即,高於閾值的是true,低於閾值的是false)。為每個閾值生成一個度量值。如果既沒有設置閾值也沒有設置 top_k,則默認使用 thresholds=0.5 計算精度。
  • top_k (可選)默認取消設置。一個 int 值,指定在計算精度時要考慮的 top-k 預測。
  • class_id (可選)我們想要二進製度量的整數類 ID。這必須在半開區間 [0, num_classes) 中,其中 num_classes 是預測的最後一個維度。
  • name (可選)指標實例的字符串名稱。
  • dtype (可選)度量結果的數據類型。

該指標創建兩個局部變量,true_positivesfalse_positives,用於計算精度。該值最終返回為 precision ,這是一個冪等運算,隻需將 true_positives 除以 true_positivesfalse_positives 的總和。

如果 sample_weightNone ,則權重默認為 1。使用 0 的 sample_weight 來屏蔽值。

如果設置了top_k,我們將計算精度,因為在批次條目的預測值最高的top-k 類中,一個類的平均頻率是正確的,並且可以在該條目的標簽中找到。

如果指定了class_id,我們通過僅考慮批次中class_id 高於閾值和/或top-k 最高預測的條目來計算精度,並計算其中class_id 為確實是一個正確的標簽。

單機使用:

m = tf.keras.metrics.Precision()
m.update_state([0, 1, 1, 1], [1, 0, 1, 1])
m.result().numpy()
0.6666667
m.reset_state()
m.update_state([0, 1, 1, 1], [1, 0, 1, 1], sample_weight=[0, 0, 1, 0])
m.result().numpy()
1.0
# With top_k=2, it will calculate precision over y_true[:2] and y_pred[:2]
m = tf.keras.metrics.Precision(top_k=2)
m.update_state([0, 0, 1, 1], [1, 1, 1, 1])
m.result().numpy()
0.0
# With top_k=4, it will calculate precision over y_true[:4] and y_pred[:4]
m = tf.keras.metrics.Precision(top_k=4)
m.update_state([0, 0, 1, 1], [1, 1, 1, 1])
m.result().numpy()
0.5

compile() API 的用法:

model.compile(optimizer='sgd',
              loss='mse',
              metrics=[tf.keras.metrics.Precision()])

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.keras.metrics.Precision。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。