          self.verify_output = False
          self.model = self.load_model()
          self.predictor = self.model.converter(self.args.swap_model)
          self.queues = dict()
  
          self.thread = MultiThread(self.predict_faces, thread_count=1)
          self.thread.start()
          logger.debug("Initialized %s: (out_queue: %s)", self.__class__.__name__, self.out_queue)
 
</s> remove             "loss": re.compile(r"([a-zA-Z_]+):.*?(\d+\.\d+)"),
 </s> add             "loss": re.compile(r"[\W]+(\d+)?[\W]+([a-zA-Z\s]*)[\W]+?(\d+\.\d+)"), </s> remove         logger.debug("Initializing %s: (input_size: %s, output_size: %s, coverage_ratio: %s, "
                     "config: %s)", self.__class__.__name__, input_size, output_size,
 </s> add         logger.debug("Initializing %s: (input_size: %s, output_shapes: %s, coverage_ratio: %s, "
                     "config: %s)", self.__class__.__name__, input_size, output_shapes, </s> remove                      self.__class__.__name__, model_input_size, model_output_size,
 </s> add                      self.__class__.__name__, model_input_size, model_output_shapes, </s> remove                                             model_output_size,
 </s> add                                             model_output_shapes, </s> remove     def __init__(self, model_input_size, model_output_size, training_opts, config):
        logger.debug("Initializing %s: (model_input_size: %s, model_output_shape: %s, "
 </s> add     def __init__(self, model_input_size, model_output_shapes, training_opts, config):
        logger.debug("Initializing %s: (model_input_size: %s, model_output_shapes: %s, "
        self.output_indices = {"face": self.model.largest_face_index,
                               "mask": self.model.largest_mask_index}
          self.verify_output = False
          self.model = self.load_model()
        self.output_indices = {"face": self.model.largest_face_index,
                               "mask": self.model.largest_mask_index}
          self.predictor = self.model.converter(self.args.swap_model)
          self.queues = dict()
  
          self.thread = MultiThread(self.predict_faces, thread_count=1)
          self.thread.start()
          logger.debug("Initialized %s: (out_queue: %s)", self.__class__.__name__, self.out_queue)
keep add keep keep keep keep keep keep
 Training: Add Multi-Output Support

- Name output nodes of models
- Add support for multiple outputs in models and in training
- Update loss output format for cli and gui
- Sort graphs tabs on training
- Fix analysis graph for new loss names
- Multi output support in convert 
scripts/convert.py