          assert isinstance(actual, np.ndarray)
          assert actual.shape == (2, 1, 3)
          np.testing.assert_equal(expected, actual)
  
      def test__add_amd_loss_labels(self,
                                    event_parser_instance: _EventParser,
                                    mocker: pytest_mock.MockerFixture) -> None:
          """ Test _add_amd_loss_labels works correctly
  
          Parameters
          ----------
          event_parser_instance: :class:`lib.gui.analysis.event_reader._EventParser`
              The class instance to test
          mocker: :class:`pytest_mock.MockerFixture`
              Mocker for checking Session data
          """
          event_parse = event_parser_instance
  
          # Already collected
          assert not event_parse._cache._loss_labels
          event_parse._cache._loss_labels.extend(["label_a", "label_b"])
          event_parse._add_amd_loss_labels(1)
          assert not event_parse._loss_labels
  
          # New labels
          event_parse._cache._loss_labels = []
          mock_session = mocker.patch("lib.gui.analysis.Session")
          mock_session.get_loss_keys.return_value = ["label_c", "label_d"]
          assert not event_parse._cache._loss_labels
          event_parse._add_amd_loss_labels(1)
          assert event_parse._loss_labels == ["label_c", "label_d"]
  
      def test__process_event(self, event_parser_instance: _EventParser) -> None:
          """ Test _process_event works correctly
  
          Parameters
          ----------
 
</s> remove         # AMD + batch item 2
        monkeypatch.setattr("lib.utils._FS_BACKEND", "amd")
        monkeypatch.setattr(event_parse,
                            "_iterator",
                            iter([self._create_example_event(2, 1., time())]))
        event_parse.cache_events(1)
        assert not event_parse._parse_outputs.called
        assert event_parse._add_amd_loss_labels.called
        assert event_parse._process_event.called
        assert event_parse._cache.cache_data.called

 </s> add  </s> remove     set_backend("amd")
    assert utils._FS_BACKEND == "amd"
 </s> add     set_backend("rocm")
    assert utils._FS_BACKEND == "rocm" </s> remove     file = ('{"test": "param"}')
 </s> add     file = '{"test": "param"}' </s> remove     assert backend.backend == "amd"
 </s> add     assert backend.backend == "cpu" </s> remove     assert ((_BACKEND in ("cpu", "directml") and lib == "tensorflow")
            or (_BACKEND == "amd" and lib == "plaidml"))
 </s> add     assert _BACKEND in ("cpu", "directml") and lib == "tensorflow"
          assert isinstance(actual, np.ndarray)
          assert actual.shape == (2, 1, 3)
          np.testing.assert_equal(expected, actual)
  




























      def test__process_event(self, event_parser_instance: _EventParser) -> None:
          """ Test _process_event works correctly
  
          Parameters
          ----------
keep keep keep keep replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace replace 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/gui/stats/event_reader_test.py