              A list of names for the losses to be applied to the model
          """
          # TODO Use output names if/when these are fixed upstream
          split_outputs = [outputs[:len(outputs) // 2], outputs[len(outputs) // 2:]]
          retval = []
          for side, side_output in zip(("a", "b"), split_outputs):
              output_names = [output.name for output in side_output]
              output_shapes = [K.int_shape(output)[1:] for output in side_output]
              output_types = ["mask" if shape[-1] == 1 else "face" for shape in output_shapes]
              logger.debug("side: %s, output names: %s, output_shapes: %s, output_types: %s",
 
</s> remove 
        Returns
        -------
        list
            A list of names for the losses to be applied to the model
 </s> add  </s> remove             retval.extend(["{}_{}{}".format(name, side,
                                            "" if output_types.count(name) == 1
                                            else "_{}".format(idx))
                           for idx, name in enumerate(output_types)])
        logger.debug(retval)
        return retval
 </s> add             self._names.extend(["{}_{}{}".format(name, side,
                                                 "" if output_types.count(name) == 1
                                                 else "_{}".format(idx))
                                for idx, name in enumerate(output_types)])
        logger.debug(self._names) </s> remove         Returns
        -------
        list
            A list of loss functions to apply to the model
 </s> add         Adds the loss functions to the :attr:`functions` dictionary.

        Parameters
        ----------
        output_names: list
            The output names from the model </s> remove         mask_loss = self._loss_dict[self._config["mask_loss_function"]]
        loss_funcs = []
        for name in self._names:
 </s> add         for name, output_name in zip(self._names, output_names): </s> remove     @classmethod
    def _get_loss_names(cls, outputs):
        """ Name the losses based on model output
 </s> add     def _get_loss_names(self, outputs):
        """ Name the losses based on model output.

        This is used for correct naming in the state file, for display purposes only.

        Adds the loss names to :attr:`names`
              A list of names for the losses to be applied to the model
          """
          # TODO Use output names if/when these are fixed upstream
          split_outputs = [outputs[:len(outputs) // 2], outputs[len(outputs) // 2:]]

          for side, side_output in zip(("a", "b"), split_outputs):
              output_names = [output.name for output in side_output]
              output_shapes = [K.int_shape(output)[1:] for output in side_output]
              output_types = ["mask" if shape[-1] == 1 else "face" for shape in output_shapes]
              logger.debug("side: %s, output names: %s, output_shapes: %s, output_types: %s",
keep keep keep keep replace keep keep keep keep keep
 training - Use explicit loss dictionaries to map to outputs 
plugins/train/model/_base.py