簡體   English   中英

帶有 TF 后端的 Keras 指標與 tensorflow 指標

[英]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_positivespredicted_positives TensorFlow 指標是有狀態的,例如tf.metrics.precision

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM