我定义了一个自定义的 RMSE 函数:
def rmse(y_pred, y_true):
return K.sqrt(K.mean(K.square(y_pred - y_true)))
Run Code Online (Sandbox Code Playgroud)
我正在根据 Keras 提供的均方误差对其进行评估:
keras.losses.mean_squared_error(y_true, y_pred)
对于某些(相同的)预测,我分别为 MSE 和 RMSE 指标获得的值是:
mse: 115.7218 - rmse: 8.0966
现在,当我取 MSE 的根时,我得到10.7574,这显然高于自定义 RMSE 函数输出的 RMSE。我一直无法弄清楚为什么会这样,也没有找到有关此特定主题的任何相关帖子。RMSE 函数中是否存在我根本没有看到的错误?或者它是否与 Kerasaxis=-1在 MSE 函数中定义的方式有关(我还没有完全理解其目的)?
这是我调用 RMSE 和 MSE 的地方:
model.compile(loss="mae", optimizer="adam", metrics=["mse", rmse])
所以我希望 MSE 的根与 RMSE 相同。
我最初在 Cross Validated 上问了这个问题,但它被搁置为题外话。