Logarithm of the hyperbolic cosine of the prediction error.
tf.keras.losses.log_cosh( y_true, y_pred )
log(cosh(x))
is approximately equal to (x ** 2) / 2
for small x
and to abs(x) - log(2)
for large x
. This means that 'logcosh' works mostly like the mean squared error, but will not be so strongly affected by the occasional wildly incorrect prediction.
y_true = np.random.random(size=(2, 3)) y_pred = np.random.random(size=(2, 3)) loss = tf.keras.losses.logcosh(y_true, y_pred) assert loss.shape == (2,) x = y_pred - y_true assert np.allclose( loss.numpy(), np.mean(x + np.log(np.exp(-2. * x) + 1.) - math_ops.log(2.), axis=-1), atol=1e-5)
Args | |
---|---|
y_true | Ground truth values. shape = [batch_size, d0, .. dN] . |
y_pred | The predicted values. shape = [batch_size, d0, .. dN] . |
Returns | |
---|---|
Logcosh error values. shape = [batch_size, d0, .. dN-1] . |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/keras/losses/log_cosh