                  raise
  
          self._plugin.state.save()
  
          msg = "[Saved optimizer state for Snapshot]" if force_save_optimizer else "[Saved models]"
          if save_averages:
              lossmsg = [f"face_{side}: {avg:.5f}"
                         for side, avg in zip(("a", "b"), save_averages)]
              msg += f" - Average loss since last save: {', '.join(lossmsg)}"
          logger.info(msg)
 
</s> remove                 self._plugin.model.save(self._filename, include_optimizer=False)
 </s> add                 self._plugin.model.save(self.filename, include_optimizer=False) </s> remove         inputs = [Input(shape=shape, name=f"face_in_{side}")
 </s> add         inputs = [keras.layers.Input(shape=shape, name=f"face_in_{side}") </s> remove         mode = "indeterminate" if self._command in ("effmpeg", "train") else "determinate"
 </s> add         mode: T.Literal["indeterminate",
                        "determinate"] = ("indeterminate" if self._command in ("effmpeg", "train")
                                          else "determinate") </s> remove                 msg = (f"Unable to load the model from '{self._filename}'. This may be a "
 </s> add                 msg = (f"Unable to load the model from '{self.filename}'. This may be a " </s> remove                 msg = (f"Unable to load the model from '{self._filename}'. This may be a "
 </s> add                 msg = (f"Unable to load the model from '{self.filename}'. This may be a "
        msg = "[Saved optimizer state for Snapshot]" if force_save_optimizer else "[Saved model]"
                  raise
  
          self._plugin.state.save()
  
        msg = "[Saved optimizer state for Snapshot]" if force_save_optimizer else "[Saved model]"
          if save_averages:
              lossmsg = [f"face_{side}: {avg:.5f}"
                         for side, avg in zip(("a", "b"), save_averages)]
              msg += f" - Average loss since last save: {', '.join(lossmsg)}"
          logger.info(msg)
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 
plugins/train/model/_base/io.py