[英]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.