tf.keras.losses.Dice

Computes the Dice loss value between y_true and y_pred.

Inherits From: Loss

Formula:

loss = 1 - (2 * sum(y_true * y_pred)) / (sum(y_true) + sum(y_pred))

reduction Type of reduction to apply to the loss. In almost all cases this should be "sum_over_batch_size". Supported options are "sum", "sum_over_batch_size", "mean", "mean_with_sample_weight" or None. "sum" sums the loss, "sum_over_batch_size" and "mean" sum the loss and divide by the sample size, and "mean_with_sample_weight" sums the loss and divides by the sum of the sample weights. "none" and None perform no aggregation. Defaults to "sum_over_batch_size".
name Optional name for the loss instance.
axis Tuple for which dimensions the loss is calculated. Defaults to None.
dtype The dtype of the loss's computations. Defaults to None, which means using keras.backend.floatx(). keras.backend.floatx() is a "float32" unless set to different value (via keras.backend.set_floatx()). If a keras.DTypePolicy is provided, then the compute_dtype will be utilized.

Dice loss value.

Example:

y_true = [[[[1.0], [1.0]], [[0.0], [0.0]]],
          [[[1.0], [1.0]], [[0.0], [0.0]]]]
y_pred = [[[[0.0], [1.0]], [[0.0], [1.0]]],
          [[[0.4], [0.0]], [[0.0], [0.9]]]]
axis = (1, 2, 3)
loss = keras.losses.Dice(axis=axis, reduction=None)(y_true, y_pred)
assert loss.shape == (2,)
loss
array([0.5, 0.75757575], shape=(2,), dtype=float32)
loss = keras.losses.Dice()(y_true, y_pred)
assert loss.shape == ()
loss
array(0.6164384, shape=(), dtype=float32)
y_true = np.array(y_true)
y_pred = np.array(y_pred)
loss = keras.losses.Dice(axis=axis, reduction=None)(y_true, y_pred)
assert loss.shape == (2,)
loss
array([0.5, 0.75757575], shape=(2,), dtype=float32)

dtype

Methods

call

View source

from_config

View source

get_config

View source

__call__

View source

Call self as a function.