一、MeanAbsoluteError类
tf.keras.losses.MeanAbsoluteError(
reduction=losses_utils.ReductionV2.AUTO,
name='mean_absolute_error'
)
下面举几个例子
mae = tf.keras.losses.MeanAbsoluteError()
##左边的参数是y_true,右边是y_pred
loss = mae(([0., 0., 1., 1.],[0., 0., 1., 1.]) ,
([1., 1., 1., 0.],[1., 3., 1., 0.]))
print('Loss: ', loss.numpy())
输出:Loss: 1.0
mae = tf.keras.losses.MeanAbsoluteError( reduction=tf.keras.losses.Reduction.NONE)
loss = mae(([0., 0., 1., 1.],[0., 0., 1., 1.]) ,
([1., 1., 1., 0.],[1., 3., 1., 0.]))
print('Loss: ', loss.numpy())
输出:Loss: [0.75 1.25]
mae = tf.keras.losses.MeanAbsoluteError( reduction=tf.keras.losses.Reduction.SUM)
loss = mae(([0., 0., 1., 1.],[0., 0., 1., 1.]) ,
([1., 1., 1., 0.],[1., 3., 1., 0.]))
print('Loss: ', loss.numpy())
输出:Loss: 2.0
可以看出默认是求平均,可以设置reduction参数来改变其计算结果的表示形式
二、MAE函数
loss=tf.keras.losses.MAE(([0., 0., 1., 1.],[0., 0., 1., 1.]) ,
([1., 1., 1., 0.],[1., 3., 1., 0.]))
print('Loss: ', loss.numpy())
输出:Loss: [0.75 1.25]
它们还可以作为model.compile()的loss参数,如下所示:
model = tf.keras.Model(inputs, outputs)
model.compile(
'sgd',
loss=tf.keras.losses.MeanAbsoluteError())
model = tf.keras.Model(inputs, outputs)
model.compile(
'sgd',
loss=tf.keras.losses.MAE)