          return True
  
      def _get_strategy(self,
                        strategy: Literal["default", "central-storage", "mirrored"]
                        ) -> Optional[tf.distribute.Strategy]:
          """ If we are running on Nvidia backend and the strategy is not ``None`` then return
          the correct tensorflow distribution strategy, otherwise return ``None``.
  
          Notes
          -----
 
</s> remove     def strategy_scope(self) -> ContextManager:
 </s> add     def strategy_scope(self) -> T.ContextManager: </s> remove     def _get_detected_faces(self, filename: str, image: np.ndarray) -> List[DetectedFace]:
 </s> add     def _get_detected_faces(self, filename: str, image: np.ndarray) -> T.List[DetectedFace]: </s> remove     managers. To enable the code to be more readable, we handle strategies the same way for Nvidia
    and AMD backends. PlaidML does not support strategies, but we need to still create a context
    manager so that we don't need branching logic.
 </s> add     managers. </s> remove                 inputs: Dict[str, List[keras.models.Model]]
            ) -> Dict[str, Union[List[keras.models.Model], keras.models.Model]]:
 </s> add                 inputs: T.Dict[str, T.List[keras.models.Model]]
            ) -> T.Dict[str, T.Union[T.List[keras.models.Model], keras.models.Model]]: </s> remove 
        Notes
        -----
        Clip-norm is ballooning VRAM usage, which is not expected behavior and may be a bug in
        Keras/Tensorflow.

        PlaidML has a bug regarding the clip-norm parameter See:
        https://github.com/plaidml/plaidml/issues/228. We workaround by simply not adding this
        parameter for AMD backend users.
 </s> add 
                      ) -> T.Optional[tf.distribute.Strategy]:
          return True
  
      def _get_strategy(self,
                        strategy: Literal["default", "central-storage", "mirrored"]
                      ) -> T.Optional[tf.distribute.Strategy]:
          """ If we are running on Nvidia backend and the strategy is not ``None`` then return
          the correct tensorflow distribution strategy, otherwise return ``None``.
  
          Notes
          -----
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/settings.py