  
  
  _PARAMS = ["use_icnr_init", "use_convaware_init", "use_reflect_padding"]
  _VALUES = list(product([True, False], repeat=len(_PARAMS)))
  _IDS = ["{}[{}]".format("|".join([_PARAMS[idx] for idx, b in enumerate(v) if b]),
                          get_backend().upper()) for v in _VALUES]
  
  
  @pytest.mark.parametrize(_PARAMS, _VALUES, ids=_IDS)
  def test_blocks(use_icnr_init, use_convaware_init, use_reflect_padding):
      """ Test for all blocks contained within the NNBlocks Class """
 
</s> remove _IDS = ["{}[{}]".format("|".join([_PARAMS[idx] for idx, b in enumerate(v) if b]),
                        get_backend().upper()) for v in _VALUES]
 </s> add _IDS = [f"{'|'.join([_PARAMS[idx] for idx, b in enumerate(v) if b])}[{get_backend().upper()}]"
        for v in _VALUES] </s> remove         masks3: Union[List[np.ndarray], np.ndarray] = []
 </s> add         masks3: T.Union[T.List[np.ndarray], np.ndarray] = [] </s> remove         feeds: Dict[Literal["a", "b"], np.ndarray] = {}
 </s> add         feeds: T.Dict[Literal["a", "b"], np.ndarray] = {} </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         shapes = [cast(Tuple[None, int, int, int], K.int_shape(output))
 </s> add         shapes = [T.cast(T.Tuple[None, int, int, int], K.int_shape(output))
_IDS = [f"{'|'.join([_PARAMS[idx] for idx, b in enumerate(v) if b])}[{get_backend().upper()}]"
        for v in _VALUES]
  
  
  _PARAMS = ["use_icnr_init", "use_convaware_init", "use_reflect_padding"]
  _VALUES = list(product([True, False], repeat=len(_PARAMS)))
_IDS = [f"{'|'.join([_PARAMS[idx] for idx, b in enumerate(v) if b])}[{get_backend().upper()}]"
        for v in _VALUES]
_IDS = [f"{'|'.join([_PARAMS[idx] for idx, b in enumerate(v) if b])}[{get_backend().upper()}]"
        for v in _VALUES]
  
  
  @pytest.mark.parametrize(_PARAMS, _VALUES, ids=_IDS)
  def test_blocks(use_icnr_init, use_convaware_init, use_reflect_padding):
      """ Test for all blocks contained within the NNBlocks Class """
keep keep keep keep replace 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/nn_blocks_test.py