              The amount of mask propagation. Default: `1.0`
  
          Returns
          -------
          tuple
              (n_true, n_pred): The ground truth and predicted value tensors with the mask applied
          """
          if mask_channel == -1:
              logger.debug("No mask to apply")
              return y_true[..., :3], y_pred[..., :3]
  
 
</s> remove         y_true: tensor or variable
            The ground truth value
        y_pred: tensor or variable
            The predicted value
 </s> add         y_true: :class:`tensorflow.Tensor`
            The ground truth batch of images, with any required masks stacked on the end
        y_pred: :class:`tensorflow.Tensor`
            The batch of model predictions </s> remove         tensor
            The final loss value
 </s> add         :class:`tensorflow.Tensor`
            The final weighted loss </s> remove         function: :class:`keras.losses.Loss`
 </s> add         function: :class:`tf.keras.losses.Loss` </s> remove         If a mask is being applied to the loss, then the appropriate mask is extracted from y_true
        and added as the 4th channel being passed to the penalized loss function.
 </s> add         If masks are being applied to the loss function inputs, then they should be included as
        additional channels at the end of :param:`y_true`, so that they can be split off and
        applied to the actual inputs to the selected loss function(s). </s> remove             self._names.extend(["{}_{}{}".format(name, side,
                                                 "" if output_types.count(name) == 1
                                                 else f"_{idx}")
                                for idx, name in enumerate(output_types)])
 </s> add             for idx, name in enumerate(output_types):
                suffix = "" if output_types.count(name) == 1 else f"_{idx}"
                self._names.append(f"{name}_{side}{suffix}")
        tf.Tensor
            The ground truth batch of images, with the required mask applied
        tf.Tensor
            The predicted batch of images with the required mask applied
              The amount of mask propagation. Default: `1.0`
  
          Returns
          -------
        tf.Tensor
            The ground truth batch of images, with the required mask applied
        tf.Tensor
            The predicted batch of images with the required mask applied
        tf.Tensor
            The ground truth batch of images, with the required mask applied
        tf.Tensor
            The predicted batch of images with the required mask applied
          """
          if mask_channel == -1:
              logger.debug("No mask to apply")
              return y_true[..., :3], y_pred[..., :3]
  
keep keep keep keep replace replace keep keep keep keep keep
 bugfix: distibuted training with dssim 
lib/model/losses_tf.py