              the keys being `input_a`, `input_b`, `output`
          """
          logger.debug("Ouputting time-lapse")
          if not self._output_file:
              self._setup(**cast(Dict[str, str], timelapse_kwargs))
  
          logger.debug("Getting time-lapse samples")
          self._samples.images = self._feeder.generate_preview(is_timelapse=True)
          logger.debug("Got time-lapse samples: %s",
                       {side: len(images) for side, images in self._samples.images.items()})
 
</s> remove     def output_timelapse(self, timelapse_kwargs: Dict[Literal["input_a",
                                                              "input_b",
                                                              "output"], str]) -> None:
 </s> add     def output_timelapse(self, timelapse_kwargs: T.Dict[Literal["input_a",
                                                                "input_b",
                                                                "output"], str]) -> None: </s> remove                            images: Dict[Literal["a", "b"], List[str]],
 </s> add                            images: T.Dict[Literal["a", "b"], T.List[str]], </s> remove         iterator = cast(Dict[Literal["a", "b"], Generator[BatchType, None, None]],
                        self._display_feeds["timelapse"])
 </s> add         iterator = T.cast(T.Dict[Literal["a", "b"], T.Generator[BatchType, None, None]],
                          self._display_feeds["timelapse"]) </s> remove     def _get_save_averages(self) -> List[float]:
 </s> add     def _get_save_averages(self) -> T.List[float]: </s> remove         retval: Dict[Literal["a", "b"], List[np.ndarray]] = {}
 </s> add         retval: T.Dict[Literal["a", "b"], T.List[np.ndarray]] = {}
            self._setup(**T.cast(T.Dict[str, str], timelapse_kwargs))
              the keys being `input_a`, `input_b`, `output`
          """
          logger.debug("Ouputting time-lapse")
          if not self._output_file:
            self._setup(**T.cast(T.Dict[str, str], timelapse_kwargs))
  
          logger.debug("Getting time-lapse samples")
          self._samples.images = self._feeder.generate_preview(is_timelapse=True)
          logger.debug("Got time-lapse samples: %s",
                       {side: len(images) for side, images in self._samples.images.items()})
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/trainer/_base.py