簡體   English   中英

Keras - 損失和度量的計算方式不同?

[英]Keras - Loss and Metric calculated differently?

我在 Keras 中有一個模型,我正在優化均方誤差。 但是,如果我在度量標准中使用與來自losses.py相同的代碼,我會得到不同的結果。 這是為什么?

作為一個指標:

def MSE_metric(y_true, y_pred):
    return K.mean(K.square(y_pred, y_true))

對於模型:

model.compile(optimizer=SGD(lr=0.01, momntum=0.9), loss='MSE', metrics=[MSE_metric])

這導致損失為 6.07,但 MSE_metric 為 0.47

請記住 - 如果您使用任何類型的正則化 - 它會影響您的loss 您的實際損失等於:

loss = mse + regularization

這就是您的差異的來源。

馬爾欽是對的。 在這里,我探討了正則化和分批的效果。 兩者都會影響日志中記錄的訓練損失,但正則化的影響最大。 始終建議在擬合模型后使用 model.evaluate 計算指標。 如果想在訓練期間查看“實際”損失,一個技巧是將驗證集設置為與訓練集(或訓練集的子集,如果數據過多)相同。 與訓練損失不同,驗證指標只是在擬合模型上進行評估。

暫無
暫無

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

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