[英]Keras metrics with TF backend vs tensorflow metrics
當 Keras 2.x 刪除某些指標時,變更日志表示這樣做是因為它們是“基於批處理的”,因此並不總是准確的。 這是什么意思? tensorflow 中包含的相應指標是否存在相同的缺點? 例如:准確率和召回率指標。
def precision(y_true, y_pred):
"""Precision metric.
Only computes a batch-wise average of precision.
Computes the precision, a metric for multi-label classification of
how many selected items are relevant.
"""
true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
predicted_positives = K.sum(K.round(K.clip(y_pred, 0, 1)))
precision = true_positives / (predicted_positives + K.epsilon())
return precision
如果y_true
包含數據集中的所有標簽並且y_pred
具有對應於所有這些標簽的模型預測,那y_pred
。
問題是人們經常將他們的數據集分成批次,例如通過對 1000 張圖像進行 10 次評估來評估 10000 張圖像。 這對於適應內存限制是必要的。 在這種情況下,您將獲得 10 個不同的精度分數,而無法將它們組合起來。
狀態度量通過將中間值保留在持續整個評估的變量中來解決這個問題。 所以在的情況下, precision
有狀態的指標可能有一個持久計數器true_positives
和predicted_positives
。 TensorFlow 指標是有狀態的,例如tf.metrics.precision 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.