tf.keras.losses.MeanSquaredLogarithmicError 损失函数 的用法

均方对数误差

e r r o r = 1 n ∑ i = 1 n ( l o g ( p i + 1 ) − l o g ( a i + 1 ) ) 2 error = \frac{1}{n}\sum_{i=1}^{n}(log(p_{i}+1)-log(a_{i}+1))^{2} error=n1i=1n(log(pi+1)log(ai+1))2

log 减小了损失值

import tensorflow as tf
y_true = [[0., 1.], [0., 0.]]
y_pred = [[1., 1.], [1., 0.]]
# Using 'auto'/'sum_over_batch_size' reduction type.
msle = tf.keras.losses.MeanSquaredLogarithmicError()
msle(y_true, y_pred).numpy()

0.24022643

不使用 log 时

y_true = [[0., 1.], [0., 0.]]
y_pred = [[1., 1.], [1., 0.]]
# Using 'auto'/'sum_over_batch_size' reduction type.
msle = tf.keras.losses.MeanSquaredError()
msle(y_true, y_pred).numpy()
0.5

猜你喜欢

转载自blog.csdn.net/weixin_44493841/article/details/121514057