               losses.GradientLoss(),
               losses.LaplacianPyramidLoss(),
               losses.LDRFLIPLoss(),
               losses.LInfNorm(),
               losses.LogCosh() if get_backend() == "amd" else k_losses.logcosh,
               k_losses.mean_absolute_error,
               k_losses.mean_squared_error,
               losses.MSSIMLoss()]
  _LWIDS = ["DSSIMObjective", "FocalFrequencyLosse", "GeneralizedLoss", "GMSDLoss", "GradientLoss",
            "LaplacianPyramidLoss", "LInfNorm", "LDRFlipLoss", "logcosh", "mae", "mse", "MS-SSIM"]
 
</s> remove             cls_probs, roi_probs, pts_probs = self.predict(
                feed_batch,
                batch_size=128 if get_backend() == "amd" else None)
 </s> add             cls_probs, roi_probs, pts_probs = self.predict(feed_batch) </s> remove         lr_key = "lr" if get_backend() == "amd" else "learning_rate"
        self._kwargs[lr_key] = learning_rate

 </s> add         self._kwargs["learning_rate"] = learning_rate </s> remove         self._inputs: List[keras.layers.Layer] = []
        self._names: List[str] = []
        self._funcs: Dict[str, Callable] = {}

        logcosh = losses.LogCosh() if get_backend() == "amd" else k_losses.logcosh
        self._loss_dict = dict(ffl=LossClass(function=losses.FocalFrequencyLoss),
                               flip=LossClass(function=losses.LDRFLIPLoss,
                                              kwargs=dict(color_order=color_order)),
                               gmsd=LossClass(function=losses.GMSDLoss),
                               l_inf_norm=LossClass(function=losses.LInfNorm),
                               laploss=LossClass(function=losses.LaplacianPyramidLoss),
                               logcosh=LossClass(function=logcosh,
                                                 init=False),
                               lpips_alex=LossClass(function=losses.LPIPSLoss,
                                                    kwargs=dict(trunk_network="alex")),
                               lpips_squeeze=LossClass(function=losses.LPIPSLoss,
                                                       kwargs=dict(trunk_network="squeeze")),
                               lpips_vgg16=LossClass(function=losses.LPIPSLoss,
                                                     kwargs=dict(trunk_network="vgg16")),
                               ms_ssim=LossClass(function=losses.MSSIMLoss),
                               mae=LossClass(function=k_losses.mean_absolute_error,
                                             init=False),
                               mse=LossClass(function=k_losses.mean_squared_error,
                                             init=False),
                               pixel_gradient_diff=LossClass(function=losses.GradientLoss),
                               ssim=LossClass(function=losses.DSSIMObjective),
                               smooth_loss=LossClass(function=losses.GeneralizedLoss))
 </s> add         self._inputs: T.List[tf.keras.layers.Layer] = []
        self._names: T.List[str] = []
        self._funcs: T.Dict[str, T.Callable] = {}

        self._loss_dict = {"ffl": LossClass(function=losses.FocalFrequencyLoss),
                           "flip": LossClass(function=losses.LDRFLIPLoss,
                                             kwargs={"color_order": color_order}),
                           "gmsd": LossClass(function=losses.GMSDLoss),
                           "l_inf_norm": LossClass(function=losses.LInfNorm),
                           "laploss": LossClass(function=losses.LaplacianPyramidLoss),
                           "logcosh": LossClass(function=k_losses.logcosh, init=False),
                           "lpips_alex": LossClass(function=losses.LPIPSLoss,
                                                   kwargs={"trunk_network": "alex"}),
                           "lpips_squeeze": LossClass(function=losses.LPIPSLoss,
                                                      kwargs={"trunk_network": "squeeze"}),
                           "lpips_vgg16": LossClass(function=losses.LPIPSLoss,
                                                    kwargs={"trunk_network": "vgg16"}),
                           "ms_ssim": LossClass(function=losses.MSSIMLoss),
                           "mae": LossClass(function=k_losses.mean_absolute_error, init=False),
                           "mse": LossClass(function=k_losses.mean_squared_error, init=False),
                           "pixel_gradient_diff": LossClass(function=losses.GradientLoss),
                           "ssim": LossClass(function=losses.DSSIMObjective),
                           "smooth_loss": LossClass(function=losses.GeneralizedLoss)} </s> remove                               autoclip,
 </s> add                               self.config["autoclip"], </s> remove _TRAIN_ARGS = (1, 1) if os.environ.get("FACESWAP_BACKEND", "cpu").lower() == "amd" else (4, 4)
 </s> add 
             k_losses.logcosh,  # pylint:disable=no-member
               losses.GradientLoss(),
               losses.LaplacianPyramidLoss(),
               losses.LDRFLIPLoss(),
               losses.LInfNorm(),
             k_losses.logcosh,  # pylint:disable=no-member
               k_losses.mean_absolute_error,
               k_losses.mean_squared_error,
               losses.MSSIMLoss()]
  _LWIDS = ["DSSIMObjective", "FocalFrequencyLosse", "GeneralizedLoss", "GMSDLoss", "GradientLoss",
            "LaplacianPyramidLoss", "LInfNorm", "LDRFlipLoss", "logcosh", "mae", "mse", "MS-SSIM"]
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 
tests/lib/model/losses_test.py