code: def _BatchNormWithGlobalNormalizationGrad(op: ops.Operation, grad):
      """Return the gradients for the 5 inputs of BatchNormWithGlobalNormalization.
  
      We do not backprop anything for the mean and var intentionally as they are
      not being trained with backprop in the operation.
  
      Args:
        op: The BatchNormOp for which we need to generate gradients.
        grad: Tensor.  The gradients passed to the BatchNormOp.
  
      Returns:
        dx: Backprop for input, which is (grad * (g * rsqrt(v + epsilon)))
        dm: Backprop for mean, which is
            sum_over_rest(grad * g) * (-1 / rsqrt(v + epsilon))
        dv: Backprop for variance, which is
            sum_over_rest(grad * g * (x - m)) * (-1/2) * (v + epsilon) ^ (-3/2)
        db: Backprop for beta, which is grad reduced in all except the
            last dimension.
        dg: Backprop for gamma, which is (grad * ((x - m) * rsqrt(v + epsilon)))
      """
      (
          dx,
          dm,
          dv,
          db,
          dg,
      ) = gen_nn_ops.batch_norm_with_global_normalization_grad(
          op.inputs[0],
          op.inputs[1],
          op.inputs[2],
          op.inputs[4],
          grad,
          op.get_attr("variance_epsilon"),
          op.get_attr("scale_after_normalization"),
      )
      return dx, dm, dv, db, dg
  
imports: import functools
  import itertools
  import operator
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import array_ops_stack
  from tensorflow.python.ops import gen_nn_ops
  from tensorflow.python.ops import math_ops
label_desc: Use image node_id 49 for calling a global function with example usage: _BatchNormWithGlobalNormalizationGrad(op, grad) and returns: dx,  dm,  dv,  db,  dg