parameters: (op, grad)
return_statement: return dx, dm, dv, db, dg
docstring: 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)))
docstring_summary: Return the gradients for the 5 inputs of BatchNormWithGlobalNormalization.
docstring_tokens: Return the gradients for the 5 inputs of BatchNormWithGlobalNormalization .
function: def _BatchNormWithGlobalNormalizationGrad(op, 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
function_tokens: def _BatchNormWithGlobalNormalizationGrad ( op , grad ) : 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