               k_losses.logcosh,  # pylint:disable=no-member
               k_losses.mean_absolute_error,
               k_losses.mean_squared_error,
               losses.MSSIMLoss()]
  _LWIDS = ["DSSIMObjective", "FocalFrequencyLosse", "GeneralizedLoss", "GMSDLoss", "GradientLoss",
            "LaplacianPyramidLoss", "LInfNorm", "LDRFlipLoss", "logcosh", "mae", "mse", "MS-SSIM"]
  _LWIDS = [f"{loss}[{get_backend().upper()}]" for loss in _LWIDS]
  
  
  @pytest.mark.parametrize("loss_func", _LWPARAMS, ids=_LWIDS)
 
</s> remove             self._backup.backup_model(self._filename)
            # pylint:disable=protected-access
            self._backup.backup_model(self._plugin.state._filename)
 </s> add             self._backup.backup_model(self.filename)
            self._backup.backup_model(self._plugin.state.filename) </s> remove         if "[saved models]" not in output.strip().lower():
 </s> add         t_output = output.strip().lower()
        if "[saved model]" not in t_output or t_output.endswith("[saved model]"):
            # Not a saved model line or saving the model for a reason other than standard saving </s> remove         msg = "[Saved optimizer state for Snapshot]" if force_save_optimizer else "[Saved models]"
 </s> add         msg = "[Saved optimizer state for Snapshot]" if force_save_optimizer else "[Saved model]" </s> remove         if not all(os.path.isfile(os.path.join(self.model_dir, fname))
 </s> add         if not all(os.path.isfile(os.path.join(self.io.model_dir, fname)) </s> remove             model = self._io._load()  # pylint:disable=protected-access
 </s> add             model = self.io.load()
_LWIDS = ["DSSIMObjective", "FocalFrequencyLoss", "GeneralizedLoss", "GMSDLoss", "GradientLoss",
               k_losses.logcosh,  # pylint:disable=no-member
               k_losses.mean_absolute_error,
               k_losses.mean_squared_error,
               losses.MSSIMLoss()]
_LWIDS = ["DSSIMObjective", "FocalFrequencyLoss", "GeneralizedLoss", "GMSDLoss", "GradientLoss",
            "LaplacianPyramidLoss", "LInfNorm", "LDRFlipLoss", "logcosh", "mae", "mse", "MS-SSIM"]
  _LWIDS = [f"{loss}[{get_backend().upper()}]" for loss in _LWIDS]
  
  
  @pytest.mark.parametrize("loss_func", _LWPARAMS, ids=_LWIDS)
keep keep keep keep replace keep keep keep keep keep
 Learning Rate finder (#1341)

* Add LR Finder support structure

* Move trainer.Feeder to lib.training.generator

* Expose model.io

* Add lr_finder

* Update docs and locales

* Pre-PR fixups
  - Fix training graph not displaying
  - CI fixes
  - Switch lr finder progress to tqdm
  - Exit lr finder early on NaN
  - Display lr finder progress in GUI 
tests/lib/model/losses_test.py