  
          retval = [(node[0], node[2]) for node in anodes]
          return retval
  
      def _make_inference_model(self, saved_model: keras.models.Model) -> keras.models.Model:
          """ Extract the sub-models from the saved model that are required for inference.
  
          Parameters
          ----------
          saved_model: :class:`keras.models.Model`
 
</s> remove     def configure(self, model: keras.models.Model) -> None:
 </s> add     def configure(self, model: tf.keras.models.Model) -> None: </s> remove             The output of this function must be a keras model generated from
            :class:`plugins.train.model._base.KerasModel`. See Keras documentation for the correct
            structure, but note that parameter :attr:`name` is a required rather than an optional
            argument in Faceswap. You should assign this to the attribute ``self.name`` that is
            automatically generated from the plugin's filename.
 </s> add             See Keras documentation for the correct structure, but note that parameter :attr:`name`
            is a required rather than an optional argument in Faceswap. You should assign this to
            the attribute ``self.name`` that is automatically generated from the plugin's filename. </s> remove     def __init__(self, saved_model: keras.models.Model, switch_sides: bool) -> None:
 </s> add     def __init__(self, saved_model: tf.keras.models.Model, switch_sides: bool) -> None: </s> remove             The output of this function must be a keras model generated from
            :class:`plugins.train.model._base.KerasModel`. See Keras documentation for the correct
            structure, but note that parameter :attr:`name` is a required rather than an optional
            argument in Faceswap. You should assign this to the attribute ``self.name`` that is
            automatically generated from the plugin's filename.
 </s> add             The generated model </s> remove     def _get_predictions(self, feed_a: np.ndarray, feed_b: np.ndarray) -> Dict[str, np.ndarray]:
 </s> add     def _get_predictions(self, feed_a: np.ndarray, feed_b: np.ndarray) -> T.Dict[str, np.ndarray]:
    def _make_inference_model(self, saved_model: tf.keras.models.Model) -> tf.keras.models.Model:
  
          retval = [(node[0], node[2]) for node in anodes]
          return retval
  
    def _make_inference_model(self, saved_model: tf.keras.models.Model) -> tf.keras.models.Model:
          """ Extract the sub-models from the saved model that are required for inference.
  
          Parameters
          ----------
          saved_model: :class:`keras.models.Model`
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/model.py