tfmri.losses.F1Loss
tfmri.losses.F1Loss¶
- class F1Loss(epsilon=1e-05, average='macro', class_weights=None, reduction='auto', name='f1_loss')[source]¶
Bases:
tensorflow_mri.python.losses.confusion_losses.TverskyLossF1 loss function (aka Dice loss).
The F1 loss is computed as:
\[L = \left ( 1 - \frac{\mathrm{TP} + \epsilon}{\mathrm{TP} + \frac{1}{2} \mathrm{FP} + \frac{1}{2} \mathrm{FN} + \epsilon} \right )\]Inputs
y_trueandy_predare expected to have shape[..., num_classes], with channelicontaining labels/predictions for classi.y_true[..., i]is 1 if the element represented byy_true[...]is a member of classiand 0 otherwise.y_pred[..., i]is the predicted probability, in the range[0.0, 1.0], that the element represented byy_pred[...]is a member of classi.This class further assumes that inputs
y_trueandy_predhave shape[batch_size, ..., num_classes]. The loss is computed for each batch elementy_true[i, ...]andy_pred[i, ...], and then reduced over this dimension as specified by argumentreduction.This loss works for binary, multiclass and multilabel classification and/or segmentation. In multiclass/multilabel problems, the different classes are combined according to the
averageandclass_weightsarguments. Argumentaveragecan take one of the following values:'micro': Calculate the loss globally by counting the total number of true positives, true negatives, false positives and false negatives.'macro': Calculate the loss for each label, and return their unweighted mean. This does not take label imbalance into account.'weighted': Calculate the loss for each label, and find their average weighted byclass_weights. Ifclass_weightsis None, the classes are weighted by support (the number of true instances for each label). This alters ‘macro’ to account for label imbalance.
- Parameters
epsilon – A float. A smoothing factor. Defaults to 1e-5.
average – A str. The class averaging mode. Valid values are
'micro','macro'and'weighted'. Defaults to'macro'. See above for details on the different modes.class_weights –
A list of float values. The weights for each class. Must have length equal to the number of classes. This parameter is only relevant if
averageis'weighted'. Defaults is None.reduction – A value in tf.keras.losses.Reduction. The type of loss reduction.
name –
A str. The name of the loss instance.
Initializes
Lossclass.- Parameters
reduction –
Type of
tf.keras.losses.Reductionto apply to loss. Default value isAUTO.AUTOindicates that the reduction option will be determined by the usage context. For almost all cases this defaults toSUM_OVER_BATCH_SIZE. When used withtf.distribute.Strategy, outside of built-in training loops such astf.kerascompileandfit, usingAUTOorSUM_OVER_BATCH_SIZEwill raise an error. Please see this custom training [tutorial](https://www.tensorflow.org/tutorials/distribute/custom_training) for more details.
name – Optional name for the instance.