                         for side, avg in zip(("a", "b"), save_averages)]
              msg += f" - Average loss since last save: {', '.join(lossmsg)}"
          logger.info(msg)
  
      def _get_save_averages(self) -> List[float]:
          """ Return the average loss since the last save iteration and reset historical loss """
          logger.debug("Getting save averages")
          if not all(loss for loss in self._history):
              logger.debug("No loss in history")
              retval = []
 
</s> remove     def _collate_and_store_loss(self, loss: List[float]) -> List[float]:
 </s> add     def _collate_and_store_loss(self, loss: T.List[float]) -> T.List[float]: </s> remove     def add_history(self, loss: List[float]) -> None:
 </s> add     def add_history(self, loss: T.List[float]) -> None: </s> remove     def _set_loss_functions(self, output_names: List[str]):
 </s> add     def _set_loss_functions(self, output_names: T.List[str]): </s> remove     kwargs: Dict[str, Any] = field(default_factory=dict)
 </s> add     kwargs: T.Dict[str, T.Any] = field(default_factory=dict) </s> remove         if get_backend() == "amd":
            # We can't log the graph in Tensorboard logs for AMD so need to obtain from state file
            loss_keys = {int(sess_id): [name for name in session["loss_names"] if name != "total"]
                         for sess_id, session in self._state["sessions"].items()}
        else:
            assert self._tb_logs is not None
            loss_keys = {sess_id: list(logs.keys())
                         for sess_id, logs
                         in self._tb_logs.get_loss(session_id=session_id).items()}
 </s> add         assert self._tb_logs is not None
        loss_keys = {sess_id: list(logs.keys())
                     for sess_id, logs
                     in self._tb_logs.get_loss(session_id=session_id).items()}
    def _get_save_averages(self) -> T.List[float]:
                         for side, avg in zip(("a", "b"), save_averages)]
              msg += f" - Average loss since last save: {', '.join(lossmsg)}"
          logger.info(msg)
  
    def _get_save_averages(self) -> T.List[float]:
          """ Return the average loss since the last save iteration and reset historical loss """
          logger.debug("Getting save averages")
          if not all(loss for loss in self._history):
              logger.debug("No loss in history")
              retval = []
keep keep keep keep replace keep keep keep keep keep
 Remove plaidML support (#1325)

* Remove PlaidML reference from readme files

* Remove AMD option from installers

* remove amd requirements and update setup.py

* remove plaidml test from CI workflow

* gpustats: remove plaidml backend

* plaid removals:
  - faceswap.py - python version check
  - setup.cfg - plaidml typing ignore
  - lib.keras_utils - All plaid code
  - lib.launcher.py - All plaidml checks and configuration

* remove tf2.2 specific code from GUI event reader

* lib.model - remove all plaidml implementations

* plugins.extract - remove plaidml code

* plugins.train remove plaidml code

* lib.convert - remove plaidml code

* tools.model: remove plaidml code

* Remove plaidML tests from unit tests

* remove plaidml_utils and docsting cleanups

* Remove plaidML refs from configs

* fix keras imports 
plugins/train/model/_base/io.py