code: def gconvbn(*args, **kwargs):
      scope = kwargs.pop("scope", None)
      with tf.variable_scope(scope):
          x = sconv2d(*args, **kwargs)
          c = args[-1]
          infilters = (
              int(x.shape[-1])
              if tf_later_than("2")
              else x.shape[-1].value
          )
          f = infilters // c
          g = f // c
          kernel = np.zeros((1, 1, f * c, f), np.float32)
          for i in range(f):
              start = (i // c) * c * c + i % c
              end = start + c * c
              kernel[:, :, start:end:c, i] = 1.0
          x = conv2d_primitive(
              x,
              tf.constant(kernel),
              strides=[1, 1, 1, 1],
              padding="VALID",
              name="gconv",
          )
          return batch_norm(x)
  
imports: from __future__ import absolute_import
  import numpy
  import tensorflow
  from .ops import conv2d_primitive
  from .ops import leaky_relu
  from .ops import relu
  from .ops import relu6
  from .ops import reshape
  from .ops import swish
  from .utils import arg_scope
  from .utils import remove_commons
  from .version_utils import tf_later_than
label_desc: Use image node_id 8 for calling a global function with example usage: gconvbn() and returns: batch_norm