Keras - 损失和指标计算方式不同?

use*_*802 6 python metric loss neural-network keras

我在Keras有一个模型,我正在优化均方误差.但是,如果我losses.py在度量标准中使用与Keras中相同的代码,则会得到不同的结果.为什么是这样?

作为指标:

def MSE_metric(y_true, y_pred):
    return K.mean(K.square(y_pred, y_true))
Run Code Online (Sandbox Code Playgroud)

对于模型:

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

这导致损失6.07但MSE_metric为0.47

Mar*_*jko 14

请记住 - 如果您使用任何类型的正规化 - 它会影响您的loss.您的实际损失等于:

loss = mse + regularization
Run Code Online (Sandbox Code Playgroud)

这就是你的差异所在.