              The given step :class:`EventData` with the given event data added to it.
          """
          summary = event.summary.value[0]
  
          if summary.tag in ("batch_loss", "batch_total"):  # Pre tf2.3 totals were "batch_total"
              step.timestamp = event.wall_time
              return step
  
          loss = summary.simple_value
          if not loss:
 
</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         self._display = dict(min=show_min, mean=show_mean, max=show_max)
 </s> add         self._display = {"min": show_min, "mean": show_mean, "max": show_max} </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()} </s> remove                mode: Literal["full", "cap_max", "cap_min"] = "full") -> List[int]:
 </s> add                mode: Literal["full", "cap_max", "cap_min"] = "full") -> T.List[int]: </s> remove             if self._backend != "amd":
                self._model.make_predict_function()
 </s> add             self._model.make_predict_function()
        if summary.tag == "batch_loss":
              The given step :class:`EventData` with the given event data added to it.
          """
          summary = event.summary.value[0]
  
        if summary.tag == "batch_loss":
              step.timestamp = event.wall_time
              return step
  
          loss = summary.simple_value
          if not loss:
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 
lib/gui/analysis/event_reader.py