tf.keras.losses.logcosh

TensorFlow 1 version View source on GitHub

Logarithm of the hyperbolic cosine of the prediction error.

tf.keras.losses.logcosh(
    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.

Usage:

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].