          out = list()
          for predictor in self.predictors.values():
              out.extend([K.int_shape(output)[-3:] for output in predictor.outputs])
              break  # Only get output from one autoencoder. Shapes are the same
          # Only return the output shape of the face
          return [tuple(shape) for shape in out]
  
      @property
      def output_shape(self):
          """ The output shape of the model (shape of largest face output) """
 
</s> remove     def largest_output(self):
        """ Return the index of the largest face output """
        max_size = max(shape[0] for shape in self.loss_shapes if shape[2] == 3)
        largest_idx = [idx for idx, shape in enumerate(self.loss_shapes)
                       if shape[0] == max_size and shape[2] == 3][0]
        return largest_idx
 </s> add     def mask_input(self):
        """ Return the mask input or None """
        mask_inputs = [inp for inp in self.inputs if inp.name.startswith("mask")]
        if not mask_inputs:
            return None
        return mask_inputs[0]

    @property
    def mask_shape(self):
        """ Return the mask shape """
        if self.mask_input is None:
            return None
        return K.int_shape(self.mask_input)[1:] </s> remove     def loss_shapes(self):
 </s> add     def selected_loss(self):
        """ Return the selected loss function """
        retval = self.loss_dict[self.config.get("loss_function", "mae")]
        logger.debug(retval)
        return retval

    @property
    def selected_mask_loss(self):
        """ Return the selected mask loss function. Currently returns mse """
        retval = self.loss_dict["mse"]
        logger.debug(retval)
        return retval

    @property
    def output_shapes(self): </s> remove             (batchsize, self.model_input_size, self.model_input_size, 3)))
        # Add the output shapes
 </s> add             (batchsize, self.model_input_size, self.model_input_size, 3)))  # Training Image
        # Target images </s> remove         output_types = ["mask" if shape[-1] == 1 else "face" for shape in self.loss_shapes]
 </s> add         output_types = ["mask" if shape[-1] == 1 else "face" for shape in self.output_shapes]
          out = list()
          for predictor in self.predictors.values():
              out.extend([K.int_shape(output)[-3:] for output in predictor.outputs])
              break  # Only get output from one autoencoder. Shapes are the same

          return [tuple(shape) for shape in out]
  
      @property
      def output_shape(self):
          """ The output shape of the model (shape of largest face output) """
keep keep keep keep replace keep keep keep keep keep
 Fix penalized loss for multiscale decoders 
plugins/train/model/_base.py