TensorFlow:为什么RMSE计算与MAE相似

时间:2018-09-13 21:35:40

标签: tensorflow keras loss-function

我很难理解为什么我的自定义RMSE损失函数与MAE具有相同的值。

我有一个模型,我会使用loss ='mae'训练一次,并使用自定义函数训练一次:

def root_mean_squared_error(y_true, y_pred):
        return keras.sqrt(keras.mean(keras.square(y_pred - y_true),axis=-1)) 

(我知道进行sqrt并没有实际好处,而只是为了掌握我所做的事情)。 我的问题是,当我使用自定义函数时,得到的输出表明损耗值等于MAE。 例如,这是示例输出:

  

/ 1 [==============================]-0s 173ms / step-损耗:0.0450-   均方误差:0.0091-均误差:0.0450纪元96/100   1/1 [=============================]-0s 169ms / step-损耗:0.0449-   mean_squared_error:0.0091-mean_absolute_error:0.0449纪元97/100   1/1 [=============================]-0s 172ms /步-损耗:0.0448-   mean_squared_error:0.0091-mean_absolute_error:0.0448纪元98/100   1/1 [=============================]-0s 166ms / step-损耗:0.0447-   均方误差:0.0091-均误差:0.0447时代99/100   1/1 [=============================]-0s 170ms / step-损耗:0.0447-   mean_squared_error:0.0091-mean_absolute_error:0.0447

MAE不应与RMSE相同。 另一个奇怪的事情是我期望RMSE是sqrt(MSE),但是从上面看到的数字来看,它不是。

尽管它没有添加更多信息,但这是我的编译行:

model.compile(optimizer = Adam(lr = 1e-4), loss = root_mean_squared_error, metrics=['mse', 'mae'])

编辑: 我的训练数据和目标数据是具有1个通道的单色图像(因此张量形状为(None,256,256,1)

0 个答案:

没有答案