      shape (4, 128, 128, 3) ready for masking and feeding through the loss functions.
      """
      def __init__(self) -> None:
          logger.debug("Initializing: %s", self.__class__.__name__)
          self._loss_functions: List[compile_utils.LossesContainer] = []
          self._loss_weights: List[float] = []
          self._mask_channels: List[int] = []
          logger.debug("Initialized: %s", self.__class__.__name__)
  
      def add_loss(self,
 
</s> remove         model.save()
 </s> add         model.save(is_exit=True) </s> remove                 model.save()
 </s> add                 model.save(is_exit=False) </s> remove                 model.save()
 </s> add                 model.save(is_exit=False) </s> remove     def _process_gui_triggers(self):
 </s> add     def _process_gui_triggers(self) -> None: </s> remove     def __init__(self, plugin: "ModelBase", model_dir: str, is_predict: bool) -> None:
 </s> add     def __init__(self,
                 plugin: "ModelBase",
                 model_dir: str,
                 is_predict: bool,
                 save_optimizer: Literal["never", "always", "exit"]) -> None:
        super().__init__(name="LossWrapper")
      shape (4, 128, 128, 3) ready for masking and feeding through the loss functions.
      """
      def __init__(self) -> None:
          logger.debug("Initializing: %s", self.__class__.__name__)
        super().__init__(name="LossWrapper")
          self._loss_functions: List[compile_utils.LossesContainer] = []
          self._loss_weights: List[float] = []
          self._mask_channels: List[int] = []
          logger.debug("Initialized: %s", self.__class__.__name__)
  
      def add_loss(self,
keep keep keep add keep keep keep keep keep keep
 Training: Add setting option to save optimizer weights 
lib/model/loss/loss_tf.py