          style.use("ggplot")
  
          self.calcs = data
          self.ylabel = ylabel
          self.colourmaps = ["Reds", "Blues", "Greens", "Purples", "Oranges",
                             "Greys", "copper", "summer", "bone"]
          self.lines = list()
          self.toolbar = None
          self.fig = Figure(figsize=(4, 4), dpi=75)
  
          self.ax1 = self.fig.add_subplot(1, 1, 1)
 
</s> remove     def compile_mask(self, batch):
        """ Compile the mask into training data """
        logger.trace("Compiling Mask: (side: '%s')", self.side)
        mask = batch[-1]
        retval = list()
        for idx in range(len(batch) - 1):
            image = batch[idx]
            retval.append([image, mask])
        return retval

 </s> add  </s> remove         self.model_output_size = model_output_size
 </s> add         self.model_output_shapes = model_output_shapes </s> remove                                             model_output_size,
 </s> add                                             model_output_shapes, </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             mask = [inp for inp in model.inputs if inp.name.startswith("mask")]
            loss_names = ["loss"]
            loss_funcs = [self.loss_function(mask, side, initialize)]
            if mask:
                loss_names.append("mask_loss")
                loss_funcs.append(self.mask_loss_function(side, initialize))
            model.compile(optimizer=optimizer, loss=loss_funcs)

            if len(loss_names) > 1:
                loss_names.insert(0, "total_loss")
 </s> add             mask_input = [inp for inp in model.inputs if inp.name.startswith("mask")]
            loss = Loss(side, model.outputs, mask_input, self.predict)
            model.compile(optimizer=optimizer, loss=loss.funcs)
        self.colourmaps = ["Reds", "Blues", "Greens", "Purples", "Oranges", "Greys", "copper",
                           "summer", "bone", "hot", "cool", "pink", "Wistia", "spring", "winter"]
          style.use("ggplot")
  
          self.calcs = data
          self.ylabel = ylabel
        self.colourmaps = ["Reds", "Blues", "Greens", "Purples", "Oranges", "Greys", "copper",
                           "summer", "bone", "hot", "cool", "pink", "Wistia", "spring", "winter"]
        self.colourmaps = ["Reds", "Blues", "Greens", "Purples", "Oranges", "Greys", "copper",
                           "summer", "bone", "hot", "cool", "pink", "Wistia", "spring", "winter"]
          self.lines = list()
          self.toolbar = None
          self.fig = Figure(figsize=(4, 4), dpi=75)
  
          self.ax1 = self.fig.add_subplot(1, 1, 1)
keep keep keep keep replace replace 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 
lib/gui/display_graph.py