              model = multi_gpu_model(model, self.gpus)
          self.predictors[side] = model
          if not self.state.inputs:
              self.store_input_shapes(model)
          if not self.output_shape:
              self.set_output_shape(model)
  
      def store_input_shapes(self, model):
          """ Store the input and output shapes to state """
          logger.debug("Adding input shapes to state for model")
          inputs = {tensor.name: K.int_shape(tensor)[-3:] for tensor in model.inputs}
 
</s> remove     def set_output_shape(self, model):
        """ Set the output shape for use in training and convert """
        logger.debug("Setting output shape")
        out = [K.int_shape(tensor)[-3:] for tensor in model.outputs]
        if not out:
            raise ValueError("No outputs found! Check your model.")
        self.output_shape = tuple(out[0])
        logger.debug("Added output shape: %s", self.output_shape)

 </s> add  </s> remove         inputs = [Input(shape=self.input_shape, name="face")]
        if self.config.get("mask_type", None):
            mask_shape = self.config["output_size"], self.config["output_size"], 1
            inputs.append(Input(shape=mask_shape, name="mask"))

 </s> add  </s> remove         inputs = [Input(shape=self.input_shape, name="face")]
        if self.config.get("mask_type", None):
            mask_shape = (self.input_shape[:2] + (1, ))
            inputs.append(Input(shape=mask_shape, name="mask"))

 </s> add  </s> remove         self.build_autoencoders()
 </s> add         inputs = self.get_inputs()
        self.build_autoencoders(inputs)
              model = multi_gpu_model(model, self.gpus)
          self.predictors[side] = model
          if not self.state.inputs:
              self.store_input_shapes(model)


  
      def store_input_shapes(self, model):
          """ Store the input and output shapes to state """
          logger.debug("Adding input shapes to state for model")
          inputs = {tensor.name: K.int_shape(tensor)[-3:] for tensor in model.inputs}
keep keep keep keep replace replace keep keep keep keep keep
 Model Structure Changes

Standardize inputs for AutoEncoders
Name outputs from AutoEncoders
Name layers in nn_blocks.py 
plugins/train/model/_base.py