Computes the Dice loss value between y_true and y_pred.
Inherits From: Loss
tf.keras.losses.Dice(
reduction='sum_over_batch_size',
name='dice',
axis=None,
dtype=None
)
loss = 1 - (2 * sum(y_true * y_pred)) / (sum(y_true) + sum(y_pred))
Args |
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.
|
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)
Methods
call
View source
call(
y_true, y_pred
)
from_config
View source
@classmethod
from_config(
config
)
get_config
View source
get_config()
__call__
View source
__call__(
y_true, y_pred, sample_weight=None
)
Call self as a function.