  
  @pytest.mark.parametrize(["loss_func", "output_shape"], _PARAMS, ids=_IDS)
  def test_loss_output(loss_func, output_shape):
      """ Basic shape tests for loss functions. """
      if get_backend() == "amd" and isinstance(loss_func, losses.GMSDLoss):
          pytest.skip("GMSD Loss is not currently compatible with PlaidML")
      y_a = K.variable(np.random.random((2, 16, 16, 3)))
      y_b = K.variable(np.random.random((2, 16, 16, 3)))
      objective_output = loss_func(y_a, y_b)
      if get_backend() == "amd":
          assert K.eval(objective_output).shape == output_shape
 
</s> remove         if isinstance(loss_func, losses.GMSDLoss):
            pytest.skip("GMSD Loss is not currently compatible with PlaidML")
 </s> add         if isinstance(loss_func, losses.FocalFrequencyLoss):
            pytest.skip("FocalFrequencyLoss Loss is not currently compatible with PlaidML") </s> remove            (losses.GMSDLoss(), (2, 1, 1)),
 </s> add            (losses.GMSDLoss(**_KWARGS), (2, 1, 1)),
  
  @pytest.mark.parametrize(["loss_func", "output_shape"], _PARAMS, ids=_IDS)
  def test_loss_output(loss_func, output_shape):
      """ Basic shape tests for loss functions. """


      y_a = K.variable(np.random.random((2, 16, 16, 3)))
      y_b = K.variable(np.random.random((2, 16, 16, 3)))
      objective_output = loss_func(y_a, y_b)
      if get_backend() == "amd":
          assert K.eval(objective_output).shape == output_shape
keep keep keep keep replace replace keep keep keep keep keep
 Loss updates
  - Split Loss to own package
  - Add Focal Frequency Loss (Nvidia only)
  - Enable GMSD for AMD 
tests/lib/model/losses_test.py