code: def test_group_normalization(
      self,
      use_cpu_only,
      backend,
      rank,
      groups,
      axis,
      epsilon,
      center,
      scale,
  ):
      tensorflow_addons = pytest.importorskip("tensorflow_addons")
      from tensorflow_addons.layers import GroupNormalization
  
      shape = np.random.randint(low=2, high=4, size=rank)
      shape[-1] = (
          shape[-1] * groups
      )  # groups must be a multiple of channels
      model = tf.keras.Sequential(
          [
              GroupNormalization(
                  batch_input_shape=shape,
                  groups=groups,
                  axis=axis,
                  epsilon=epsilon,
                  center=center,
                  scale=scale,
              )
          ]
      )
      run_compare_tf_keras(
          model,
          [random_gen(shape, rand_min=-1, rand_max=1)],
          use_cpu_only=use_cpu_only,
          backend=backend,
          atol=1e-3,
          rtol=1e-4,
      )
  
imports: import random
  from coremltools.converters.mil import testing_reqs
  from coremltools.converters.mil.frontend.tensorflow2.test.testing_utils import run_compare_tf_keras
  from coremltools.converters.mil.testing_reqs import *
label_desc: Use image node_id 5 for calling the TestNormalization obj's underlying member method code with example usage: obj.test_group_normalization(use_cpu_only, backend, rank, groups, axis, epsilon, center, scale) without return types